glthread: sync in glFlush for multiple contexts
[mesa.git] / src / mapi / glapi / gen / GL3x.xml
index 65f12a425874c335cf733199a52700b56a004db0..6c256922fe8890d74f1a92a60d41bcb9787e3e0a 100644 (file)
 
   <!-- These functions are unique to GL3 -->
 
-  <function name="ClearBufferiv" es2="3.0">
+  <function name="ClearBufferiv" es2="3.0" no_error="true">
     <param name="buffer" type="GLenum"/>
     <param name="drawbuffer" type="GLint"/>
-    <param name="value" type="const GLint *"/>
+    <param name="value" type="const GLint *" count="_mesa_buffer_enum_to_count(buffer)"/>
   </function>
 
-  <function name="ClearBufferuiv" es2="3.0">
+  <function name="ClearBufferuiv" es2="3.0" no_error="true">
     <param name="buffer" type="GLenum"/>
     <param name="drawbuffer" type="GLint"/>
-    <param name="value" type="const GLuint *"/>
+    <param name="value" type="const GLuint *" count="_mesa_buffer_enum_to_count(buffer)"/>
   </function>
 
-  <function name="ClearBufferfv" es2="3.0">
+  <function name="ClearBufferfv" es2="3.0" no_error="true">
     <param name="buffer" type="GLenum"/>
     <param name="drawbuffer" type="GLint"/>
-    <param name="value" type="const GLfloat *"/>
+    <param name="value" type="const GLfloat *" count="_mesa_buffer_enum_to_count(buffer)"/>
   </function>
 
-  <function name="ClearBufferfi" es2="3.0">
+  <function name="ClearBufferfi" es2="3.0" no_error="true">
     <param name="buffer" type="GLenum"/>
     <param name="drawbuffer" type="GLint"/>
     <param name="depth" type="GLfloat"/>
       <return type="GLint"/>
   </function>
 
-  <function name="BindFragDataLocation">
+  <function name="BindFragDataLocation" no_error="true">
     <param name="program" type="GLuint"/>
     <param name="colorNumber" type="GLuint"/>
-    <param name="name" type="const GLchar *"/>
+    <param name="name" type="const GLchar *" count="(strlen(name) + 1)"/>
   </function>
 
-  <function name="BeginTransformFeedback" es2="3.0">
+  <function name="BeginTransformFeedback" es2="3.0" no_error="true">
     <param name="mode" type="GLenum"/>
   </function>
 
-  <function name="EndTransformFeedback" es2="3.0">
+  <function name="EndTransformFeedback" es2="3.0" no_error="true">
   </function>
 
-  <function name="BindBufferRange" es2="3.0">
+  <function name="BindBufferRange" es2="3.0" no_error="true">
     <param name="target" type="GLenum"/>
     <param name="index" type="GLuint"/>
     <param name="buffer" type="GLuint"/>
     <param name="buffer" type="GLuint"/>
   </function>
 
-  <function name="TransformFeedbackVaryings" es2="3.0">
+  <function name="TransformFeedbackVaryings" es2="3.0" no_error="true">
     <param name="program" type="GLuint"/>
     <param name="count" type="GLsizei"/>
     <param name="varyings" type="const GLchar * const *"/>
 
   <!-- These functions alias ones from GL_NV_conditional_render -->
 
-  <function name="BeginConditionalRender">
+  <function name="BeginConditionalRender" no_error="true">
     <param name="query" type="GLuint"/>
     <param name="mode" type="GLenum"/>
   </function>
 
-  <function name="EndConditionalRender">
+  <function name="EndConditionalRender" no_error="true">
   </function>
 
   <!-- These functions alias ones from GL_EXT_gpu_shader4 -->
 
-  <function name="VertexAttribIPointer" es2="3.0" marshal="async">
+  <function name="VertexAttribIPointer" es2="3.0" marshal="async"
+            no_error="true"
+            marshal_call_after="if (COMPAT) _mesa_glthread_AttribPointer(ctx, VERT_ATTRIB_GENERIC(index), size, type, stride, pointer);">
     <param name="index" type="GLuint"/>
     <param name="size" type="GLint"/>
     <param name="type" type="GLenum"/>
 
   <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">
   <function name="TexParameterIiv" es2="3.2">
     <param name="target" type="GLenum"/>
     <param name="pname" type="GLenum"/>
-    <param name="params" type="const GLint *"/>
+    <param name="params" type="const GLint *" count="_mesa_tex_param_enum_to_count(pname)"/>
   </function>
 
   <function name="TexParameterIuiv" es2="3.2">
     <param name="target" type="GLenum"/>
     <param name="pname" type="GLenum"/>
-    <param name="params" type="const GLuint *"/>
+    <param name="params" type="const GLuint *" count="_mesa_tex_param_enum_to_count(pname)"/>
   </function>
 
   <function name="GetTexParameterIiv" es2="3.2">
     <param name="buffer" type="GLuint"/>
   </function>
 
-  <function name="PrimitiveRestartIndex">
+  <function name="PrimitiveRestartIndex" no_error="true"
+            marshal_call_after="_mesa_glthread_PrimitiveRestartIndex(ctx, index);">
     <param name="index" type="GLuint"/>
   </function>
 
     <param name="params" type="GLint64 *"/>
   </function>
 
-  <function name="FramebufferTexture" es2="3.2">
+  <function name="FramebufferTexture" es2="3.2" no_error="true">
     <param name="target" type="GLenum"/>
     <param name="attachment" type="GLenum"/>
     <param name="texture" type="GLuint"/>
   <enum name="TEXTURE_SWIZZLE_A"                value="0x8E45"/>
   <enum name="TEXTURE_SWIZZLE_RGBA"             value="0x8E46"/>
 
-  <function name="VertexAttribDivisor" es2="3.0">
+  <function name="VertexAttribDivisor" es2="3.0" no_error="true">
     <param name="index" type="GLuint"/>
     <param name="divisor" type="GLuint"/>
   </function>