glthread: add/update count and marshal fields for many GL functions
authorMarek Olšák <marek.olsak@amd.com>
Wed, 19 Feb 2020 04:13:50 +0000 (23:13 -0500)
committerMarge Bot <eric+marge@anholt.net>
Fri, 6 Mar 2020 01:06:14 +0000 (01:06 +0000)
Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3948>

24 files changed:
src/mapi/glapi/gen/AMD_performance_monitor.xml
src/mapi/glapi/gen/ARB_ES2_compatibility.xml
src/mapi/glapi/gen/ARB_base_instance.xml
src/mapi/glapi/gen/ARB_bindless_texture.xml
src/mapi/glapi/gen/ARB_direct_state_access.xml
src/mapi/glapi/gen/ARB_draw_elements_base_vertex.xml
src/mapi/glapi/gen/ARB_draw_indirect.xml
src/mapi/glapi/gen/ARB_get_program_binary.xml
src/mapi/glapi/gen/ARB_sampler_objects.xml
src/mapi/glapi/gen/ARB_separate_shader_objects.xml
src/mapi/glapi/gen/ARB_shader_subroutine.xml
src/mapi/glapi/gen/ARB_shading_language_include.xml
src/mapi/glapi/gen/ARB_vertex_attrib_64bit.xml
src/mapi/glapi/gen/ARB_vertex_type_2_10_10_10_rev.xml
src/mapi/glapi/gen/EXT_direct_state_access.xml
src/mapi/glapi/gen/EXT_external_objects.xml
src/mapi/glapi/gen/EXT_gpu_shader4.xml
src/mapi/glapi/gen/EXT_transform_feedback.xml
src/mapi/glapi/gen/EXT_window_rectangles.xml
src/mapi/glapi/gen/GL3x.xml
src/mapi/glapi/gen/KHR_debug.xml
src/mapi/glapi/gen/NV_vdpau_interop.xml
src/mapi/glapi/gen/es_EXT.xml
src/mapi/glapi/gen/gl_API.xml

index 785ea076c6f882fe8abb3434ad09c8c2a99358fb..24d177c5a852e6c6d8f6c10ce6e764354597277b 100644 (file)
@@ -48,7 +48,7 @@
 
     <function name="DeletePerfMonitorsAMD" es2="2.0">
         <param name="n" type="GLsizei"/>
-        <param name="monitors" type="GLuint *"/>
+        <param name="monitors" type="GLuint *" count="n"/>
     </function>
 
     <function name="SelectPerfMonitorCountersAMD" es2="2.0">
@@ -56,7 +56,7 @@
         <param name="enable" type="GLboolean"/>
         <param name="group" type="GLuint"/>
         <param name="numCounters" type="GLint"/>
-        <param name="counterList" type="GLuint *"/>
+        <param name="counterList" type="GLuint *" count="numCounters"/>
     </function>
 
     <function name="BeginPerfMonitorAMD" es2="2.0">
index c96e71c44f287a8ee435663bc4bf3cc3043f344b..f1112ac57be0d768d713cd5fd10507ab2dc1fcd9 100644 (file)
@@ -30,9 +30,9 @@
 
     <function name="ShaderBinary" es2="2.0">
         <param name="n" type="GLsizei"/>
-        <param name="shaders" type="const GLuint *"/>
+        <param name="shaders" type="const GLuint *" count="n"/>
         <param name="binaryformat" type="GLenum"/>
-        <param name="binary" type="const GLvoid *"/>
+        <param name="binary" type="const GLvoid *" count="length"/>
         <param name="length" type="GLsizei"/>
     </function>
 
index e3bbcd198e83779b787d6fc4ba67fac6180f9ed1..92892c290784ae24119fd71a7f8c25cb375f7d74 100644 (file)
@@ -8,8 +8,7 @@
 
 <category name="GL_ARB_base_instance" number="107">
 
-  <function name="DrawArraysInstancedBaseInstance" exec="dynamic" marshal="draw"
-            marshal_fail="_mesa_glthread_is_non_vbo_draw_elements(ctx)">
+  <function name="DrawArraysInstancedBaseInstance" exec="dynamic" marshal="draw">
     <param name="mode" type="GLenum"/>
     <param name="first" type="GLint"/>
     <param name="count" type="GLsizei"/>
index 762cadf6fea1144ee0e76d9e24298662fc061a84..2de4493c6c0315283b4a9d42de55a70bc504f7f5 100644 (file)
@@ -53,7 +53,7 @@
    <function name="UniformHandleui64vARB">
       <param name="location" type="GLint" />
       <param name="count" type="GLsizei" />
-      <param name="value" type="const GLuint64 *" />
+      <param name="value" type="const GLuint64 *" count="count"/>
    </function>
 
    <function name="ProgramUniformHandleui64ARB">
@@ -66,7 +66,7 @@
       <param name="program" type="GLuint" />
       <param name="location" type="GLint" />
       <param name="count" type="GLsizei" />
-      <param name="value" type="const GLuint64 *" />
+      <param name="value" type="const GLuint64 *" count="count"/>
    </function>
 
    <function name="IsTextureHandleResidentARB" no_error="true">
@@ -86,7 +86,7 @@
 
    <function name="VertexAttribL1ui64vARB" exec="dynamic">
       <param name="index" type="GLuint" />
-      <param name="v" type="const GLuint64EXT *" />
+      <param name="v" type="const GLuint64EXT *" count="1"/>
    </function>
 
    <function name="GetVertexAttribLui64vARB">
index 84ba14153d179bc14ff8690cf14bb1dca2ee3482..42ed70a76336a3c883ae3992ce477604badfd075 100644 (file)
    <function name="NamedFramebufferDrawBuffers" no_error="true">
       <param name="framebuffer" type="GLuint" />
       <param name="n" type="GLsizei" />
-      <param name="bufs" type="const GLenum *" />
+      <param name="bufs" type="const GLenum *" count="n"/>
    </function>
 
    <function name="NamedFramebufferReadBuffer" no_error="true">
    <function name="InvalidateNamedFramebufferData">
       <param name="framebuffer" type="GLuint" />
       <param name="numAttachments" type="GLsizei" />
-      <param name="attachments" type="const GLenum *" />
+      <param name="attachments" type="const GLenum *" count="numAttachments"/>
    </function>
 
    <function name="InvalidateNamedFramebufferSubData">
       <param name="framebuffer" type="GLuint" />
       <param name="numAttachments" type="GLsizei" />
-      <param name="attachments" type="const GLenum *" />
+      <param name="attachments" type="const GLenum *" count="numAttachments"/>
       <param name="x" type="GLint" />
       <param name="y" type="GLint" />
       <param name="width" type="GLsizei" />
       <param name="vaobj" type="GLuint" />
       <param name="first" type="GLuint" />
       <param name="count" type="GLsizei" />
-      <param name="buffers" type="const GLuint *" />
-      <param name="offsets" type="const GLintptr *" />
-      <param name="strides" type="const GLsizei *" />
+      <param name="buffers" type="const GLuint *" count="count"/>
+      <param name="offsets" type="const GLintptr *" count="count"/>
+      <param name="strides" type="const GLsizei *" count="count"/>
    </function>
 
    <function name="VertexArrayAttribFormat">
index 2f1a93dc8a7cbdcc9f9899d93eeb7eb5cc80af6a..9f18cacd1e65692a7e648eb35b17612a72912416 100644 (file)
     <function name="MultiDrawElementsBaseVertex" exec="dynamic" marshal="draw"
               marshal_fail="_mesa_glthread_is_non_vbo_draw_elements(ctx)">
         <param name="mode" type="GLenum"/>
-        <param name="count" type="const GLsizei *"/>
+        <param name="count" type="const GLsizei *" count="primcount"/>
         <param name="type" type="GLenum"/>
-        <param name="indices" type="const GLvoid * const *"/>
+        <param name="indices" type="const GLvoid * const *" count="(sizeof(GLvoid *) * primcount)"/>
         <param name="primcount" type="GLsizei"/>
-        <param name="basevertex" type="const GLint *"/>
+        <param name="basevertex" type="const GLint *" count="primcount"/>
     </function>
 
     <function name="DrawElementsInstancedBaseVertex" es2="3.2" exec="dynamic" marshal="draw"
index b4399f1e8b658a0e65aa82dbe2527931b2e7cd01..c17b4337baa2cf3de3863a7b7e22f060232f20b6 100644 (file)
@@ -8,12 +8,16 @@
     <enum name="DRAW_INDIRECT_BUFFER"                   value="0x8F3F"/>
     <enum name="DRAW_INDIRECT_BUFFER_BINDING"           value="0x8F43"/>
 
-    <function name="DrawArraysIndirect" exec="dynamic" es2="3.1">
+    <function name="DrawArraysIndirect" exec="dynamic" es2="3.1"
+              marshal="draw"
+              marshal_fail="_mesa_glthread_is_non_vbo_draw_arrays_indirect(ctx)">
         <param name="mode" type="GLenum"/>
         <param name="indirect" type="const GLvoid *"/>
     </function>
 
-    <function name="DrawElementsIndirect" exec="dynamic" es2="3.1">
+    <function name="DrawElementsIndirect" exec="dynamic" es2="3.1"
+              marshal="draw"
+              marshal_fail="_mesa_glthread_is_non_vbo_draw_elements_indirect(ctx)">
         <param name="mode" type="GLenum"/>
         <param name="type" type="GLenum"/>
         <param name="indirect" type="const GLvoid *"/>
 
 <category name="GL_ARB_multi_draw_indirect" number="133">
 
-    <function name="MultiDrawArraysIndirect" exec="dynamic">
+    <function name="MultiDrawArraysIndirect" exec="dynamic" marshal="draw"
+              marshal_fail="_mesa_glthread_is_non_vbo_draw_arrays_indirect(ctx)">
         <param name="mode" type="GLenum"/>
         <param name="indirect" type="const GLvoid *"/>
         <param name="primcount" type="GLsizei"/>
         <param name="stride" type="GLsizei"/>
     </function>
 
-    <function name="MultiDrawElementsIndirect" exec="dynamic">
+    <function name="MultiDrawElementsIndirect" exec="dynamic" marshal="draw"
+              marshal_fail="_mesa_glthread_is_non_vbo_draw_elements_indirect(ctx)">
         <param name="mode" type="GLenum"/>
         <param name="type" type="GLenum"/>
         <param name="indirect" type="const GLvoid *"/>
index c521c04de428181c06ffd1e08596363b2ce3975f..00fede82d19b49785971dfba1395929da72221f0 100644 (file)
@@ -22,7 +22,7 @@
     <function name="ProgramBinary" es2="3.0">
         <param name="program" type="GLuint"/>
         <param name="binaryFormat" type="GLenum"/>
-        <param name="binary" type="const GLvoid *"/>
+        <param name="binary" type="const GLvoid *" count="length"/>
         <param name="length" type="GLsizei"/>
     </function>
 
index e10984b3f7623ea053d857f644a402bc7ea27ed6..b8fdd125e2462894c5537816e311a3da2c250824 100644 (file)
@@ -14,7 +14,7 @@
 
     <function name="DeleteSamplers" es2="3.0" no_error="true">
       <param name="count" type="GLsizei"/>
-      <param name="samplers" type="const GLuint *"/>
+      <param name="samplers" type="const GLuint *" count="count"/>
     </function>
 
     <function name="IsSampler" es2="3.0">
index 2273b4875d76a07678398fd7d475cd3ebf7ee8e3..c9737e74a06bffaec90651b3a1132543539e6253 100644 (file)
@@ -35,7 +35,7 @@
       </function>
       <function name="DeleteProgramPipelines" es2="3.1">
          <param name="n" type="GLsizei" />
-         <param name="pipelines" type="const GLuint *" />
+         <param name="pipelines" type="const GLuint *" count="n"/>
       </function>
       <function name="GenProgramPipelines" es2="3.1" no_error="true">
          <param name="n" type="GLsizei" />
index 8a7d08c7f713755355168edf81b902214643ecf1..9c537e4d20b98188c1db14b546567363e113aa82 100644 (file)
@@ -50,7 +50,7 @@
     <function name="UniformSubroutinesuiv">
         <param name="shadertype" type="GLenum"/>
         <param name="count" type="GLsizei"/>
-        <param name="indices" type="const GLuint *"/>
+        <param name="indices" type="const GLuint *" count="count"/>
     </function>
 
     <function name="GetUniformSubroutineuiv">
index c305a7e2294492e1f47375a9eda4e5b7dd497e9e..acfe39ac1b9ff36075562d9d6e12418ad6274f55 100644 (file)
@@ -6,13 +6,13 @@
    <function name="NamedStringARB">
       <param name="type" type="GLenum" />
       <param name="namelen" type="GLint" />
-      <param name="name" type="const GLchar *" />
+      <param name="name" type="const GLchar *" count="namelen"/>
       <param name="stringlen" type="GLint" />
-      <param name="string" type="const GLchar *" />
+      <param name="string" type="const GLchar *" count="stringlen"/>
    </function>
    <function name="DeleteNamedStringARB">
       <param name="namelen" type="GLint" />
-      <param name="name" type="const GLchar *" />
+      <param name="name" type="const GLchar *" count="namelen"/>
    </function>
    <function name="CompileShaderIncludeARB">
       <param name="shader" type="GLuint" />
    </function>
    <function name="IsNamedStringARB">
       <param name="namelen" type="GLint" />
-      <param name="name" type="const GLchar *" />
+      <param name="name" type="const GLchar *" count="namelen"/>
       <return type="GLboolean"/>
    </function>
    <function name="GetNamedStringARB">
       <param name="namelen" type="GLint" />
-      <param name="name" type="const GLchar *" />
+      <param name="name" type="const GLchar *" count="namelen"/>
       <param name="bufSize" type="GLsizei" />
       <param name="stringlen" type="GLint *" />
-      <param name="string" type="GLchar *" />
+      <param name="string" type="GLchar *" count="stringlen"/>
    </function>
    <function name="GetNamedStringivARB">
       <param name="namelen" type="GLint" />
-      <param name="name" type="const GLchar *" />
+      <param name="name" type="const GLchar *" count="namelen"/>
       <param name="pname" type="GLenum" />
       <param name="params" type="GLint *" />
    </function>
index 4d66ee50c80662139575be63edee6d116e306d1a..d96729be3acd519c13c50843a3c168a593bd3ffb 100644 (file)
 
     <function name="VertexAttribL1dv">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLdouble *"/>
+        <param name="v" type="const GLdouble *" count="1"/>
     </function>
 
     <function name="VertexAttribL2dv">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLdouble *"/>
+        <param name="v" type="const GLdouble *" count="2"/>
     </function>
 
     <function name="VertexAttribL3dv">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLdouble *"/>
+        <param name="v" type="const GLdouble *" count="3"/>
     </function>
 
     <function name="VertexAttribL4dv">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLdouble *"/>
+        <param name="v" type="const GLdouble *" count="4"/>
     </function>
 
-    <function name="VertexAttribLPointer" no_error="true">
+    <function name="VertexAttribLPointer" no_error="true" marshal="async"
+              marshal_fail="_mesa_glthread_is_non_vbo_vertex_attrib_pointer(ctx)">
         <param name="index" type="GLuint"/>
         <param name="size" type="GLint"/>
         <param name="type" type="GLenum"/>
index 92ec6e167cbf7400ee4722730352f4f19a1d0c0c..df225b911091732040c5219a5cfbfec111f524ae 100644 (file)
 
     <function name="VertexP2uiv" deprecated="3.1" exec="dynamic">
         <param name="type" type="GLenum"/>
-        <param name="value" type="const GLuint *"/>
+        <param name="value" type="const GLuint *" count="1"/>
     </function>
 
     <function name="VertexP3uiv" deprecated="3.1" exec="dynamic">
         <param name="type" type="GLenum"/>
-        <param name="value" type="const GLuint *"/>
+        <param name="value" type="const GLuint *" count="1"/>
     </function>
 
     <function name="VertexP4uiv" deprecated="3.1" exec="dynamic">
         <param name="type" type="GLenum"/>
-        <param name="value" type="const GLuint *"/>
+        <param name="value" type="const GLuint *" count="1"/>
     </function>
 
     <function name="TexCoordP1ui" deprecated="3.1" exec="dynamic">
 
     <function name="TexCoordP1uiv" deprecated="3.1" exec="dynamic">
         <param name="type" type="GLenum"/>
-        <param name="coords" type="const GLuint *"/>
+        <param name="coords" type="const GLuint *" count="1"/>
     </function>
 
     <function name="TexCoordP2uiv" deprecated="3.1" exec="dynamic">
         <param name="type" type="GLenum"/>
-        <param name="coords" type="const GLuint *"/>
+        <param name="coords" type="const GLuint *" count="1"/>
     </function>
 
     <function name="TexCoordP3uiv" deprecated="3.1" exec="dynamic">
         <param name="type" type="GLenum"/>
-        <param name="coords" type="const GLuint *"/>
+        <param name="coords" type="const GLuint *" count="1"/>
     </function>
 
     <function name="TexCoordP4uiv" deprecated="3.1" exec="dynamic">
         <param name="type" type="GLenum"/>
-        <param name="coords" type="const GLuint *"/>
+        <param name="coords" type="const GLuint *" count="1"/>
     </function>
 
     <function name="MultiTexCoordP1ui" deprecated="3.1" exec="dynamic">
     <function name="MultiTexCoordP1uiv" deprecated="3.1" exec="dynamic">
         <param name="texture" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="coords" type="const GLuint *"/>
+        <param name="coords" type="const GLuint *" count="1"/>
     </function>
 
     <function name="MultiTexCoordP2uiv" deprecated="3.1" exec="dynamic">
         <param name="texture" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="coords" type="const GLuint *"/>
+        <param name="coords" type="const GLuint *" count="1"/>
     </function>
 
     <function name="MultiTexCoordP3uiv" deprecated="3.1" exec="dynamic">
         <param name="texture" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="coords" type="const GLuint *"/>
+        <param name="coords" type="const GLuint *" count="1"/>
     </function>
 
     <function name="MultiTexCoordP4uiv" deprecated="3.1" exec="dynamic">
         <param name="texture" type="GLenum"/>
         <param name="type" type="GLenum"/>
-        <param name="coords" type="const GLuint *"/>
+        <param name="coords" type="const GLuint *" count="1"/>
     </function>
 
     <function name="NormalP3ui" deprecated="3.1" exec="dynamic">
 
     <function name="NormalP3uiv" deprecated="3.1" exec="dynamic">
         <param name="type" type="GLenum"/>
-        <param name="coords" type="const GLuint *"/>
+        <param name="coords" type="const GLuint *" count="1"/>
     </function>
 
     <function name="ColorP3ui" deprecated="3.1" exec="dynamic">
 
     <function name="ColorP3uiv" deprecated="3.1" exec="dynamic">
         <param name="type" type="GLenum"/>
-        <param name="color" type="const GLuint *"/>
+        <param name="color" type="const GLuint *" count="1"/>
     </function>
 
     <function name="ColorP4uiv" deprecated="3.1" exec="dynamic">
         <param name="type" type="GLenum"/>
-        <param name="color" type="const GLuint *"/>
+        <param name="color" type="const GLuint *" count="1"/>
     </function>
 
     <function name="SecondaryColorP3ui" deprecated="3.1" exec="dynamic">
 
     <function name="SecondaryColorP3uiv" deprecated="3.1" exec="dynamic">
         <param name="type" type="GLenum"/>
-        <param name="color" type="const GLuint *"/>
+        <param name="color" type="const GLuint *" count="1"/>
     </function>
 
     <function name="VertexAttribP1ui" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="type" type="GLenum"/>
         <param name="normalized" type="GLboolean"/>
-        <param name="value" type="const GLuint *"/>
+        <param name="value" type="const GLuint *" count="1"/>
     </function>
 
     <function name="VertexAttribP2uiv" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="type" type="GLenum"/>
         <param name="normalized" type="GLboolean"/>
-        <param name="value" type="const GLuint *"/>
+        <param name="value" type="const GLuint *" count="1"/>
     </function>
 
     <function name="VertexAttribP3uiv" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="type" type="GLenum"/>
         <param name="normalized" type="GLboolean"/>
-        <param name="value" type="const GLuint *"/>
+        <param name="value" type="const GLuint *" count="1"/>
     </function>
 
     <function name="VertexAttribP4uiv" exec="dynamic">
         <param name="index" type="GLuint"/>
         <param name="type" type="GLenum"/>
         <param name="normalized" type="GLboolean"/>
-        <param name="value" type="const GLuint *"/>
+        <param name="value" type="const GLuint *" count="1"/>
     </function>
 
 </category>
index bcabf7d29ca8050a4bad76cf3cea9c11e0387a70..0d29282d2933f9a9d9b09333c5182cc0a0a43156 100644 (file)
 
    <function name="MatrixLoadfEXT" offset="assign">
       <param name="matrixMode" type="GLenum" />
-      <param name="m" type="const GLfloat *" />
+      <param name="m" type="const GLfloat *" count="16"/>
    </function>
    <function name="MatrixLoaddEXT" offset="assign">
       <param name="matrixMode" type="GLenum" />
-      <param name="m" type="const GLdouble *" />
+      <param name="m" type="const GLdouble *" count="16"/>
    </function>
    <function name="MatrixMultfEXT" offset="assign">
       <param name="matrixMode" type="GLenum" />
-      <param name="m" type="const GLfloat *" />
+      <param name="m" type="const GLfloat *" count="16"/>
    </function>
    <function name="MatrixMultdEXT" offset="assign">
       <param name="matrixMode" type="GLenum" />
-      <param name="m" type="const GLdouble *" />
+      <param name="m" type="const GLdouble *" count="16"/>
    </function>
    <function name="MatrixLoadIdentityEXT" offset="assign">
       <param name="matrixMode" type="GLenum" />
       <param name="param" type="GLint *" />
    </function>
 
-   <function name="MultiTexCoordPointerEXT">
+   <function name="MultiTexCoordPointerEXT" marshal="async"
+             marshal_fail="_mesa_glthread_is_non_vbo_vertex_attrib_pointer(ctx)">
       <param name="texunit" type="GLenum" />
       <param name="size" type="GLint" />
       <param name="type" type="GLenum" />
 
    <function name="MatrixLoadTransposefEXT" offset="assign">
       <param name="matrixMode" type="GLenum" />
-      <param name="m" type="const GLfloat *" />
+      <param name="m" type="const GLfloat *" count="16"/>
    </function>
 
    <function name="MatrixLoadTransposedEXT" offset="assign">
       <param name="matrixMode" type="GLenum" />
-      <param name="m" type="const GLdouble *" />
+      <param name="m" type="const GLdouble *" count="16"/>
    </function>
 
    <function name="MatrixMultTransposefEXT" offset="assign">
       <param name="matrixMode" type="GLenum" />
-      <param name="m" type="const GLfloat *" />
+      <param name="m" type="const GLfloat *" count="16"/>
    </function>
 
    <function name="MatrixMultTransposedEXT" offset="assign">
       <param name="matrixMode" type="GLenum" />
-      <param name="m" type="const GLdouble *" />
+      <param name="m" type="const GLdouble *" count="16"/>
     </function>
 
    <function name="CompressedTextureImage1DEXT">
    <function name="FramebufferDrawBuffersEXT">
       <param name="framebuffer" type="GLuint" />
       <param name="n" type="GLsizei" />
-      <param name="bufs" type="const GLenum *" />
+      <param name="bufs" type="const GLenum *" count="n"/>
    </function>
 
    <function name="FramebufferReadBufferEXT">
       <param name="target" type="GLenum" />
       <param name="format" type="GLenum" />
       <param name="len" type="GLsizei" />
-      <param name="string" type="const GLvoid*" />
+      <param name="string" type="const GLvoid*" count="len"/>
     </function>
 
    <function name="GetNamedProgramStringEXT">
       <param name="program" type="GLuint" />
       <param name="target" type="GLenum" />
       <param name="index" type="GLuint" />
-      <param name="params" type="const GLfloat*" />
+      <param name="params" type="const GLfloat*" count="4"/>
     </function>
 
    <function name="GetNamedProgramLocalParameterfvEXT">
       <param name="program" type="GLuint" />
       <param name="target" type="GLenum" />
       <param name="index" type="GLuint" />
-      <param name="params" type="const GLdouble*" />
+      <param name="params" type="const GLdouble*" count="4"/>
     </function>
 
    <function name="GetNamedProgramLocalParameterdvEXT">
       <param name="target" type="GLenum" />
       <param name="index" type="GLuint" />
       <param name="count" type="GLsizei" />
-      <param name="params" type="const GLfloat*" />
+      <param name="params" type="const GLfloat*" count="4"/>
    </function>
 
 </category>
index 25e6879ec7bd1d362504aa9b2b58137f3372cca9..ebcf6d7a4ac732ea176384c147cb784c8272936f 100644 (file)
@@ -39,7 +39,7 @@
 
     <function name="DeleteMemoryObjectsEXT" es2="3.2">
         <param name="n" type="GLsizei"/>
-        <param name="memoryObjects" type="const GLuint *"/>
+        <param name="memoryObjects" type="const GLuint *" count="n"/>
     </function>
 
     <function name="IsMemoryObjectEXT" es2="3.2">
 
     <function name="DeleteSemaphoresEXT" es2="3.2">
         <param name="n" type="GLsizei"/>
-        <param name="semaphores" type="const GLuint *"/>
+        <param name="semaphores" type="const GLuint *" count="n"/>
     </function>
 
     <function name="IsSemaphoreEXT" es2="3.2">
     <function name="WaitSemaphoreEXT" es2="3.2">
         <param name="semaphore" type="GLuint"/>
         <param name="numBufferBarriers" type="GLuint"/>
-        <param name="buffers" type="const GLuint *"/>
+        <param name="buffers" type="const GLuint *" count="numBufferBarriers"/>
         <param name="numTextureBarriers" type="GLuint"/>
-        <param name="textures" type="const GLuint *"/>
-        <param name="srcLayouts" type="const GLenum *"/>
+        <param name="textures" type="const GLuint *" count="numTextureBarriers"/>
+        <param name="srcLayouts" type="const GLenum *" count="numTextureBarriers"/>
     </function>
 
     <function name="SignalSemaphoreEXT" es2="3.2">
         <param name="semaphore" type="GLuint"/>
         <param name="numBufferBarriers" type="GLuint"/>
-        <param name="buffers" type="const GLuint *"/>
+        <param name="buffers" type="const GLuint *" count="numBufferBarriers"/>
         <param name="numTextureBarriers" type="GLuint"/>
-        <param name="textures" type="const GLuint *"/>
-        <param name="dstLayouts" type="const GLenum *"/>
+        <param name="textures" type="const GLuint *" count="numTextureBarriers"/>
+        <param name="dstLayouts" type="const GLenum *" count="numTextureBarriers"/>
     </function>
 
 </category>
index 55437c0de2c84a352dabffc3fbebd4a77737bfe1..8febbcf7f7f5ea2b81e3cd09cd9291d57b78e212 100644 (file)
 
     <function name="VertexAttribI2ivEXT" exec="dynamic">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLint *"/>
+        <param name="v" type="const GLint *" count="2"/>
     </function>
 
     <function name="VertexAttribI3ivEXT" exec="dynamic">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLint *"/>
+        <param name="v" type="const GLint *" count="3"/>
     </function>
 
     <function name="VertexAttribI4ivEXT" exec="dynamic">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLint *"/>
+        <param name="v" type="const GLint *" count="4"/>
     </function>
 
     <function name="VertexAttribI1uivEXT" alias="VertexAttribI1uiv">
 
     <function name="VertexAttribI2uivEXT" exec="dynamic">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLuint *"/>
+        <param name="v" type="const GLuint *" count="2"/>
     </function>
 
     <function name="VertexAttribI3uivEXT" exec="dynamic">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLuint *"/>
+        <param name="v" type="const GLuint *" count="3"/>
     </function>
 
     <function name="VertexAttribI4uivEXT" exec="dynamic">
         <param name="index" type="GLuint"/>
-        <param name="v" type="const GLuint *"/>
+        <param name="v" type="const GLuint *" count="4"/>
     </function>
 
     <function name="VertexAttribI4bvEXT" alias="VertexAttribI4bv">
index 26948cc7bdd8d620c68768aa592a818cee42b6f2..9982a3f81a5479ddff2d12fb8b5669480eb08ad2 100644 (file)
@@ -89,7 +89,7 @@
 
   <function name="DeleteTransformFeedbacks" es2="3.0">
     <param name="n" type="GLsizei"/>
-    <param name="ids" type="const GLuint *"/>
+    <param name="ids" type="const GLuint *" count="n"/>
   </function>
 
   <function name="GenTransformFeedbacks" es2="3.0">
index 7c85e55cf29cf6381c960578b5b87adb8e5d7e8c..cceaeca09687095688b5ad32381090744374f1aa 100644 (file)
@@ -22,7 +22,7 @@
     <function name="WindowRectanglesEXT" es2="3.0">
         <param name="mode" type="GLenum"/>
         <param name="count" type="GLsizei"/>
-        <param name="box" type="const GLint *"/>
+        <param name="box" type="const GLint *" count="(4 * count)"/>
     </function>
 </category>
 
index 750bc0230338ab23dddbe6646d2ef8c7c13f6e4d..cd3987e0cebb77a27e0276770733516c464581d5 100644 (file)
 
   <function name="VertexAttribI1iv">
     <param name="index" type="GLuint"/>
-    <param name="v" type="const GLint *"/>
+    <param name="v" type="const GLint *" count="1"/>
   </function>
 
   <function name="VertexAttribI2iv" alias="VertexAttribI2ivEXT">
 
   <function name="VertexAttribI1uiv">
     <param name="index" type="GLuint"/>
-    <param name="v" type="const GLuint *"/>
+    <param name="v" type="const GLuint *" count="1"/>
   </function>
 
   <function name="VertexAttribI2uiv" alias="VertexAttribI2uivEXT">
 
   <function name="VertexAttribI4bv">
     <param name="index" type="GLuint"/>
-    <param name="v" type="const GLbyte *"/>
+    <param name="v" type="const GLbyte *" count="4"/>
   </function>
 
   <function name="VertexAttribI4sv">
     <param name="index" type="GLuint"/>
-    <param name="v" type="const GLshort *"/>
+    <param name="v" type="const GLshort *" count="4"/>
   </function>
 
   <function name="VertexAttribI4ubv">
     <param name="index" type="GLuint"/>
-    <param name="v" type="const GLubyte *"/>
+    <param name="v" type="const GLubyte *" count="4"/>
   </function>
 
   <function name="VertexAttribI4usv">
     <param name="index" type="GLuint"/>
-    <param name="v" type="const GLushort *"/>
+    <param name="v" type="const GLushort *" count="4"/>
   </function>
 
   <function name="GetUniformuiv" es2="3.0">
index 21b7e58c3219681eeb8317ef3a4c978ea0e582a6..af31347d54ee0e146c718b4be88b418a208f9f97 100644 (file)
@@ -88,7 +88,7 @@
     <param name="id" type="GLuint"/>
     <param name="severity" type="GLenum"/>
     <param name="length" type="GLsizei"/>
-    <param name="buf" type="const GLchar *"/>
+    <param name="buf" type="const GLchar *" count="length"/>
   </function>
 
   <function name="DebugMessageCallback" es2="3.2">
     <param name="source" type="GLenum"/>
     <param name="id" type="GLuint"/>
     <param name="length" type="GLsizei"/>
-    <param name="message" type="const GLchar *"/>
+    <param name="message" type="const GLchar *" count="length"/>
   </function>
 
   <function name="PopDebugGroup" es2="3.2" />
     <param name="identifier" type="GLenum"/>
     <param name="name" type="GLuint"/>
     <param name="length" type="GLsizei"/>
-    <param name="label" type="const GLchar *"/>
+    <param name="label" type="const GLchar *" count="length"/>
   </function>
 
   <function name="GetObjectLabel" es2="3.2">
   <function name="ObjectPtrLabel" es2="3.2">
     <param name="ptr" type="const GLvoid *"/>
     <param name="length" type="GLsizei"/>
-    <param name="label" type="const GLchar *"/>
+    <param name="label" type="const GLchar *" count="length"/>
   </function>
 
   <function name="GetObjectPtrLabel" es2="3.2">
index ceef7bdc9acb812208376c26564c69119de73579..7bf8fdfb4f143cce6a8248492d79d944e1a8e1f8 100644 (file)
 
     <function name="VDPAUMapSurfacesNV">
        <param name="numSurfaces" type="GLsizei"/>
-       <param name="surfaces" type="const GLintptr *"/>
+       <param name="surfaces" type="const GLintptr *" count="numSurfaces"/>
     </function>
 
     <function name="VDPAUUnmapSurfacesNV">
        <param name="numSurfaces" type="GLsizei"/>
-       <param name="surfaces" type="const GLintptr *"/>
+       <param name="surfaces" type="const GLintptr *" count="numSurfaces"/>
     </function>
 
     <enum name="SURFACE_STATE_NV"      value="0x86EB"/>
index adbcba1ed2a9ca507ebc70215161b4d37c84e20c..c30ad56c75dc04a3bfce5e1ebd073deade60e052 100644 (file)
     <enum name="POINT_SIZE_ARRAY_BUFFER_BINDING_OES"     value="0x8B9F"/>
 
     <function name="PointSizePointerOES" es1="1.0" desktop="false"
-              no_error="true">
+              no_error="true" marshal="async"
+              marshal_fail="_mesa_glthread_is_non_vbo_vertex_attrib_pointer(ctx)">
         <param name="type" type="GLenum"/>
         <param name="stride" type="GLsizei"/>
         <param name="pointer" type="const GLvoid *"/>
     <function name="DepthRangeArrayfvOES" es2="3.1" desktop="false">
         <param name="first" type="GLuint"/>
         <param name="count" type="GLsizei"/>
-        <param name="v" type="const GLfloat *"/>
+        <param name="v" type="const GLfloat *" count="(2 * count)"/>
     </function>
     <function name="DepthRangeIndexedfOES" es2="3.1" desktop="false">
         <param name="index" type="GLuint"/>
index 154f85cd4d572fcdd05ab873d27d7fec79e87769..2bec492f7d1a5034384e51be9ce11aacdf0fa714 100644 (file)
     </function>
 
     <function name="LoadTransposeMatrixf" deprecated="3.1">
-        <param name="m" type="const GLfloat *"/>
+        <param name="m" type="const GLfloat *" count="16"/>
         <glx handcode="true"/>
     </function>
 
     <function name="LoadTransposeMatrixd" deprecated="3.1">
-        <param name="m" type="const GLdouble *"/>
+        <param name="m" type="const GLdouble *" count="16"/>
         <glx handcode="true"/>
     </function>
 
     <function name="MultTransposeMatrixf" deprecated="3.1">
-        <param name="m" type="const GLfloat *"/>
+        <param name="m" type="const GLfloat *" count="16"/>
         <glx handcode="true"/>
     </function>
 
     <function name="MultTransposeMatrixd" deprecated="3.1">
-        <param name="m" type="const GLdouble *"/>
+        <param name="m" type="const GLdouble *" count="16"/>
         <glx handcode="true"/>
     </function>
 
 
     <function name="MultiDrawArrays" marshal="draw">
         <param name="mode" type="GLenum"/>
-        <param name="first" type="const GLint *"/>
-        <param name="count" type="const GLsizei *"/>
+        <param name="first" type="const GLint *" count="primcount"/>
+        <param name="count" type="const GLsizei *" count="primcount"/>
         <param name="primcount" type="GLsizei"/>
         <glx handcode="true"/>
     </function>
     </function>
 
     <function name="WindowPos2dv" deprecated="3.1">
-        <param name="v" type="const GLdouble *"/>
+        <param name="v" type="const GLdouble *" count="2"/>
         <glx handcode="true"/>
     </function>
 
     </function>
 
     <function name="WindowPos2fv" deprecated="3.1">
-        <param name="v" type="const GLfloat *"/>
+        <param name="v" type="const GLfloat *" count="2"/>
         <glx handcode="true"/>
     </function>
 
     </function>
 
     <function name="WindowPos2iv" deprecated="3.1">
-        <param name="v" type="const GLint *"/>
+        <param name="v" type="const GLint *" count="2"/>
         <glx handcode="true"/>
     </function>
 
     </function>
 
     <function name="WindowPos2sv" deprecated="3.1">
-        <param name="v" type="const GLshort *"/>
+        <param name="v" type="const GLshort *" count="2"/>
         <glx handcode="true"/>
     </function>
 
     </function>
 
     <function name="WindowPos3dv" deprecated="3.1">
-        <param name="v" type="const GLdouble *"/>
+        <param name="v" type="const GLdouble *" count="3"/>
         <glx handcode="true"/>
     </function>
 
     </function>
 
     <function name="WindowPos3iv" deprecated="3.1">
-        <param name="v" type="const GLint *"/>
+        <param name="v" type="const GLint *" count="3"/>
         <glx handcode="true"/>
     </function>
 
     </function>
 
     <function name="WindowPos3sv" deprecated="3.1">
-        <param name="v" type="const GLshort *"/>
+        <param name="v" type="const GLshort *" count="3"/>
         <glx handcode="true"/>
     </function>
 </category>
     <function name="MultiDrawElementsEXT" es1="1.0" es2="2.0" exec="dynamic" marshal="draw"
               marshal_fail="_mesa_glthread_is_non_vbo_draw_elements(ctx)">
         <param name="mode" type="GLenum"/>
-        <param name="count" type="const GLsizei *"/>
+        <param name="count" type="const GLsizei *" count="primcount"/>
         <param name="type" type="GLenum"/>
-        <param name="indices" type="const GLvoid * const *"/>
+        <param name="indices" type="const GLvoid * const *" count="(sizeof(GLvoid *) * primcount)"/>
         <param name="primcount" type="GLsizei"/>
         <glx handcode="true"/>
     </function>
         <param name="target" type="GLenum"/>
         <param name="start"  type="GLuint"/>
         <param name="count"  type="GLsizei"/>
-        <param name="v"      type="const GLfloat *"/>
+        <param name="v"      type="const GLfloat *" count="(2 * count)"/>
     </function>
 
     <function name="NamedFramebufferSampleLocationsfvARB" no_error="true">
         <param name="framebuffer" type="GLuint"/>
         <param name="start"       type="GLuint"/>
         <param name="count"       type="GLsizei"/>
-        <param name="v"           type="const GLfloat *"/>
+        <param name="v"           type="const GLfloat *" count="(2 * count)"/>
     </function>
 
     <function name="EvaluateDepthValuesARB"/>
     </function>
 
     <function name="WindowPos4dvMESA" deprecated="3.1">
-        <param name="v" type="const GLdouble *"/>
+        <param name="v" type="const GLdouble *" count="4"/>
         <glx ignore="true"/>
     </function>
 
     </function>
 
     <function name="WindowPos4fvMESA" deprecated="3.1">
-        <param name="v" type="const GLfloat *"/>
+        <param name="v" type="const GLfloat *" count="4"/>
         <glx ignore="true"/>
     </function>
 
     </function>
 
     <function name="WindowPos4ivMESA" deprecated="3.1">
-        <param name="v" type="const GLint *"/>
+        <param name="v" type="const GLint *" count="4"/>
         <glx ignore="true"/>
     </function>
 
     </function>
 
     <function name="WindowPos4svMESA" deprecated="3.1">
-        <param name="v" type="const GLshort *"/>
+        <param name="v" type="const GLshort *" count="4"/>
         <glx ignore="true"/>
     </function>
 </category>
 </category>
 
 <category name="GL_IBM_multimode_draw_arrays" number="200">
-    <function name="MultiModeDrawArraysIBM" marshal="draw">
-        <param name="mode" type="const GLenum *"/>
-        <param name="first" type="const GLint *"/>
-        <param name="count" type="const GLsizei *"/>
+    <function name="MultiModeDrawArraysIBM" marshal="draw"
+              marshal_fail="_mesa_glthread_is_non_vbo_draw_elements(ctx)">
+        <param name="mode" type="const GLenum *" count="primcount"/>
+        <param name="first" type="const GLint *" count="primcount"/>
+        <param name="count" type="const GLsizei *" count="primcount"/>
         <param name="primcount" type="GLsizei"/>
         <param name="modestride" type="GLint"/>
         <glx handcode="true" ignore="true"/>
 
     <function name="MultiModeDrawElementsIBM" marshal="draw"
               marshal_fail="_mesa_glthread_is_non_vbo_draw_elements(ctx)">
-        <param name="mode" type="const GLenum *"/>
-        <param name="count" type="const GLsizei *"/>
+        <param name="mode" type="const GLenum *" count="primcount"/>
+        <param name="count" type="const GLsizei *" count="primcount"/>
         <param name="type" type="GLenum"/>
-        <param name="indices" type="const GLvoid * const *"/>
+        <param name="indices" type="const GLvoid * const *" count="(sizeof(GLvoid *) * primcount)"/>
         <param name="primcount" type="GLsizei"/>
         <param name="modestride" type="GLint"/>
         <glx handcode="true" ignore="true"/>
 
     <function name="SetFragmentShaderConstantATI" deprecated="3.1">
       <param name="dst" type="GLuint"/>
-      <param name="value" type="const GLfloat *"/>
+      <param name="value" type="const GLfloat *" count="4"/>
       <glx ignore="true"/>
     </function>
 </category>
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="count" type="GLsizei"/>
-        <param name="params" type="const GLfloat *"/>
+        <param name="params" type="const GLfloat *" count="4"/>
     </function>
 
     <function name="ProgramLocalParameters4fvEXT" deprecated="3.1">
         <param name="target" type="GLenum"/>
         <param name="index" type="GLuint"/>
         <param name="count" type="GLsizei"/>
-        <param name="params" type="const GLfloat *"/>
+        <param name="params" type="const GLfloat *" count="4"/>
     </function>
 </category>