Merge pull request #448 from frederikja163/GL_SHADER_BINARY_FORMATS
GL_SHADER_BINARY_FORMATS included in shader binary format
diff --git a/extensions/ARB/ARB_indirect_parameters.txt b/extensions/ARB/ARB_indirect_parameters.txt
index 0dc05dc..f7024c6 100644
--- a/extensions/ARB/ARB_indirect_parameters.txt
+++ b/extensions/ARB/ARB_indirect_parameters.txt
@@ -36,8 +36,8 @@
Version
- Last Modified Date: 23 October 2017
- Revision: 4
+ Last Modified Date: 11 November 2020
+ Revision: 5
Number
@@ -139,7 +139,7 @@
void MultiDrawArraysIndirectCountARB(enum mode,
const void *indirect,
intptr drawcount,
- intptr maxdrawcount,
+ sizei maxdrawcount,
sizei stride);
behaves similarly to MultiDrawArraysIndirect, except that <drawcount>
@@ -218,3 +218,6 @@
3 06/20/2013 pdaniell Modify the <indirect> parameter type to
const void *.
4 10/23/2017 nhaehnle Add COMMAND_BARRIER_BIT language.
+ 5 11/11/2020 pdaniell Fix the type of the maxdrawcount parameter
+ of MultiDrawArraysIndirectCountARB to be
+ sizei making it consistent in the extension.
diff --git a/extensions/EXT/EXT_disjoint_timer_query.txt b/extensions/EXT/EXT_disjoint_timer_query.txt
index 9c30452..d31619a 100644
--- a/extensions/EXT/EXT_disjoint_timer_query.txt
+++ b/extensions/EXT/EXT_disjoint_timer_query.txt
@@ -33,7 +33,7 @@
Version
- Version 8, December 11, 2019
+ Version 9, November 20, 2020
Number
@@ -477,7 +477,7 @@
(2) This example uses QueryCounter.
- GLint queries[1];
+ GLint queries[2];
GLint available = 0;
GLint disjointOccurred = 0;
/* Timer queries can contain more than 32 bits of data, so always
@@ -485,20 +485,24 @@
GLuint64 timeStart, timeEnd, timeElapsed = 0;
/* Create a query object. */
- glGenQueries(1, queries);
+ glGenQueries(2, queries);
/* Clear disjoint error */
glGetIntegerv(GL_GPU_DISJOINT_EXT, &disjointOccurred);
+ /* Query current timestamp before drawing */
+ glQueryCounterEXT(queries[0], GL_TIMESTAMP_EXT);
+
/* Draw full rendertarget of objects */
- glQueryCounterEXT(queries[0], GL_TIMESTAMP_EXT);
+ /* Query current timestamp after drawing */
+ glQueryCounterEXT(queries[1], GL_TIMESTAMP_EXT);
/* Do some other work so you don't stall waiting for available */
/* Wait for the query result to become available */
while (!available) {
- glGetQueryObjectiv(queries[0], GL_QUERY_RESULT_AVAILABLE, &available);
+ glGetQueryObjectiv(queries[1], GL_QUERY_RESULT_AVAILABLE, &available);
}
/* Check for disjoint operation. */
@@ -507,15 +511,18 @@
/* If a disjoint operation occurred, continue without reading the the
values */
if (!disjointOccurred) {
+ /* Get timestamp for when rendertarget started. */
+ glGetQueryObjectui64vEXT(queries[0], GL_QUERY_RESULT, &timeStart);
/* Get timestamp for when rendertarget finished. */
- glGetQueryObjectui64vEXT(queries[0], GL_QUERY_RESULT, &timeElapsed);
+ glGetQueryObjectui64vEXT(queries[1], GL_QUERY_RESULT, &timeEnd);
+ /* See how much time the rendering took in nanoseconds. */
+ timeElapsed = timeEnd - timeStart;
/* Do something useful with the time if a disjoint operation did
not occur. Note that care should be taken to use all
significant bits of the result, not just the least significant
32 bits. */
-
- AdjustObjectLODBasedOnDrawTime(i, timeElapsed);
+ AdjustObjectLODBasedOnDrawTime(timeElapsed);
}
(3) This example demonstrates how to measure the latency between GL
@@ -538,7 +545,7 @@
glGetIntegerv(GL_GPU_DISJOINT_EXT, &disjointOccurred);
/* Queue a query to find out when the frame finishes on the GL */
- glQueryCounterEXT(GL_TIMESTAMP_EXT, endFrameQuery);
+ glQueryCounterEXT(endFrameQuery, GL_TIMESTAMP_EXT);
/* Get the current GL time without stalling the GL */
glGetIntegerv(GL_TIMESTAMP_EXT, &flushTime);
@@ -754,6 +761,8 @@
will not be set.
Revision History
+ Revision 9, 2020/11/20 (xndcn)
+ - Minor fix of code sample
Revision 8, 2019/12/11 (Jon Leech)
- Add actual spec language defining GetInteger64vEXT (github
OpenGL-Registry issue 326)
diff --git a/xml/gl.xml b/xml/gl.xml
index e98d227..0641893 100644
--- a/xml/gl.xml
+++ b/xml/gl.xml
@@ -19133,7 +19133,7 @@
<param><ptype>GLuint</ptype> <name>monitor</name></param>
<param><ptype>GLenum</ptype> <name>pname</name></param>
<param><ptype>GLsizei</ptype> <name>dataSize</name></param>
- <param len="dataSize"><ptype>GLuint</ptype> *<name>data</name></param>
+ <param len="dataSize / 4"><ptype>GLuint</ptype> *<name>data</name></param>
<param len="1"><ptype>GLint</ptype> *<name>bytesWritten</name></param>
</command>
<command>
@@ -20746,7 +20746,7 @@
<param group="MapTarget"><ptype>GLenum</ptype> <name>target</name></param>
<param group="MapQuery"><ptype>GLenum</ptype> <name>query</name></param>
<param><ptype>GLsizei</ptype> <name>bufSize</name></param>
- <param len="COMPSIZE(bufSize)"><ptype>GLdouble</ptype> *<name>v</name></param>
+ <param len="bufSize / 8"><ptype>GLdouble</ptype> *<name>v</name></param>
</command>
<command>
<proto>void <name>glGetnMapfv</name></proto>
@@ -20804,7 +20804,7 @@
<proto>void <name>glGetnPixelMapfvARB</name></proto>
<param group="PixelMap"><ptype>GLenum</ptype> <name>map</name></param>
<param><ptype>GLsizei</ptype> <name>bufSize</name></param>
- <param len="COMPSIZE(bufSize)"><ptype>GLfloat</ptype> *<name>values</name></param>
+ <param len="bufSize / 4"><ptype>GLfloat</ptype> *<name>values</name></param>
</command>
<command>
<proto>void <name>glGetnPixelMapuiv</name></proto>
@@ -20885,35 +20885,35 @@
<param class="program"><ptype>GLuint</ptype> <name>program</name></param>
<param><ptype>GLint</ptype> <name>location</name></param>
<param><ptype>GLsizei</ptype> <name>bufSize</name></param>
- <param len="bufSize"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <param len="bufSize / 8"><ptype>GLdouble</ptype> *<name>params</name></param>
</command>
<command>
<proto>void <name>glGetnUniformdvARB</name></proto>
<param class="program"><ptype>GLuint</ptype> <name>program</name></param>
<param><ptype>GLint</ptype> <name>location</name></param>
<param><ptype>GLsizei</ptype> <name>bufSize</name></param>
- <param len="bufSize"><ptype>GLdouble</ptype> *<name>params</name></param>
+ <param len="bufSize / 8"><ptype>GLdouble</ptype> *<name>params</name></param>
</command>
<command>
<proto>void <name>glGetnUniformfv</name></proto>
<param class="program"><ptype>GLuint</ptype> <name>program</name></param>
<param><ptype>GLint</ptype> <name>location</name></param>
<param><ptype>GLsizei</ptype> <name>bufSize</name></param>
- <param len="bufSize"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <param len="bufSize / 4"><ptype>GLfloat</ptype> *<name>params</name></param>
</command>
<command>
<proto>void <name>glGetnUniformfvARB</name></proto>
<param class="program"><ptype>GLuint</ptype> <name>program</name></param>
<param><ptype>GLint</ptype> <name>location</name></param>
<param><ptype>GLsizei</ptype> <name>bufSize</name></param>
- <param len="bufSize"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <param len="bufSize / 4"><ptype>GLfloat</ptype> *<name>params</name></param>
</command>
<command>
<proto>void <name>glGetnUniformfvEXT</name></proto>
<param class="program"><ptype>GLuint</ptype> <name>program</name></param>
<param><ptype>GLint</ptype> <name>location</name></param>
<param><ptype>GLsizei</ptype> <name>bufSize</name></param>
- <param len="bufSize"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <param len="bufSize / 4"><ptype>GLfloat</ptype> *<name>params</name></param>
<alias name="glGetnUniformfv"/>
</command>
<command>
@@ -20921,7 +20921,7 @@
<param class="program"><ptype>GLuint</ptype> <name>program</name></param>
<param><ptype>GLint</ptype> <name>location</name></param>
<param><ptype>GLsizei</ptype> <name>bufSize</name></param>
- <param len="bufSize"><ptype>GLfloat</ptype> *<name>params</name></param>
+ <param len="bufSize / 4"><ptype>GLfloat</ptype> *<name>params</name></param>
<alias name="glGetnUniformfv"/>
</command>
<command>
@@ -20929,28 +20929,28 @@
<param class="program"><ptype>GLuint</ptype> <name>program</name></param>
<param><ptype>GLint</ptype> <name>location</name></param>
<param><ptype>GLsizei</ptype> <name>bufSize</name></param>
- <param len="bufSize"><ptype>GLint64</ptype> *<name>params</name></param>
+ <param len="bufSize / 8"><ptype>GLint64</ptype> *<name>params</name></param>
</command>
<command>
<proto>void <name>glGetnUniformiv</name></proto>
<param class="program"><ptype>GLuint</ptype> <name>program</name></param>
<param><ptype>GLint</ptype> <name>location</name></param>
<param><ptype>GLsizei</ptype> <name>bufSize</name></param>
- <param len="bufSize"><ptype>GLint</ptype> *<name>params</name></param>
+ <param len="bufSize / 4"><ptype>GLint</ptype> *<name>params</name></param>
</command>
<command>
<proto>void <name>glGetnUniformivARB</name></proto>
<param class="program"><ptype>GLuint</ptype> <name>program</name></param>
<param><ptype>GLint</ptype> <name>location</name></param>
<param><ptype>GLsizei</ptype> <name>bufSize</name></param>
- <param len="bufSize"><ptype>GLint</ptype> *<name>params</name></param>
+ <param len="bufSize / 4"><ptype>GLint</ptype> *<name>params</name></param>
</command>
<command>
<proto>void <name>glGetnUniformivEXT</name></proto>
<param class="program"><ptype>GLuint</ptype> <name>program</name></param>
<param><ptype>GLint</ptype> <name>location</name></param>
<param><ptype>GLsizei</ptype> <name>bufSize</name></param>
- <param len="bufSize"><ptype>GLint</ptype> *<name>params</name></param>
+ <param len="bufSize / 4"><ptype>GLint</ptype> *<name>params</name></param>
<alias name="glGetnUniformiv"/>
</command>
<command>
@@ -20958,7 +20958,7 @@
<param class="program"><ptype>GLuint</ptype> <name>program</name></param>
<param><ptype>GLint</ptype> <name>location</name></param>
<param><ptype>GLsizei</ptype> <name>bufSize</name></param>
- <param len="bufSize"><ptype>GLint</ptype> *<name>params</name></param>
+ <param len="bufSize / 4"><ptype>GLint</ptype> *<name>params</name></param>
<alias name="glGetnUniformiv"/>
</command>
<command>
@@ -20966,28 +20966,28 @@
<param class="program"><ptype>GLuint</ptype> <name>program</name></param>
<param><ptype>GLint</ptype> <name>location</name></param>
<param><ptype>GLsizei</ptype> <name>bufSize</name></param>
- <param len="bufSize"><ptype>GLuint64</ptype> *<name>params</name></param>
+ <param len="bufSize / 8"><ptype>GLuint64</ptype> *<name>params</name></param>
</command>
<command>
<proto>void <name>glGetnUniformuiv</name></proto>
<param class="program"><ptype>GLuint</ptype> <name>program</name></param>
<param><ptype>GLint</ptype> <name>location</name></param>
<param><ptype>GLsizei</ptype> <name>bufSize</name></param>
- <param len="bufSize"><ptype>GLuint</ptype> *<name>params</name></param>
+ <param len="bufSize / 4"><ptype>GLuint</ptype> *<name>params</name></param>
</command>
<command>
<proto>void <name>glGetnUniformuivARB</name></proto>
<param class="program"><ptype>GLuint</ptype> <name>program</name></param>
<param><ptype>GLint</ptype> <name>location</name></param>
<param><ptype>GLsizei</ptype> <name>bufSize</name></param>
- <param len="bufSize"><ptype>GLuint</ptype> *<name>params</name></param>
+ <param len="bufSize / 4"><ptype>GLuint</ptype> *<name>params</name></param>
</command>
<command>
<proto>void <name>glGetnUniformuivKHR</name></proto>
<param class="program"><ptype>GLuint</ptype> <name>program</name></param>
<param><ptype>GLint</ptype> <name>location</name></param>
<param><ptype>GLsizei</ptype> <name>bufSize</name></param>
- <param len="bufSize"><ptype>GLuint</ptype> *<name>params</name></param>
+ <param len="bufSize / 4"><ptype>GLuint</ptype> *<name>params</name></param>
<alias name="glGetnUniformuiv"/>
</command>
<command>