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 785ea07..24d177c 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 c96e71c..f1112ac 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 e3bbcd1..92892c2 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 762cadf..2de4493 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 84ba141..42ed70a 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 2f1a93d..9f18cac 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 b4399f1..c17b433 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 c521c04..00fede8 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 e10984b..b8fdd12 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 2273b48..c9737e7 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 8a7d08c..9c537e4 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 c305a7e..acfe39a 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 4d66ee5..d96729b 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 92ec6e1..df225b9 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 bcabf7d..0d29282 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 25e6879..ebcf6d7 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 55437c0..8febbcf 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 26948cc..9982a3f 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 7c85e55..cceaeca 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 750bc02..cd3987e 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 21b7e58..af31347 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 ceef7bd..7bf8fdf 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 adbcba1..c30ad56 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 154f85c..2bec492 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>