mesa: Custom thread marshalling for ShaderSource.
[mesa.git] / src / mapi / glapi / gen / gl_API.xml
index 766fe3c8098a0af57391dd89db4ce1842170d613..c7a7253119ea7eabba88640b86a13e8a38b48665 100644 (file)
         <glx rop="139" handcode="client"/>
     </function>
 
-    <function name="Finish" es1="1.0" es2="2.0">
+    <function name="Finish" es1="1.0" es2="2.0" marshal="sync">
         <glx sop="108" handcode="true"/>
     </function>
 
-    <function name="Flush" es1="1.0" es2="2.0">
+    <!-- TODO: Flush is marshalled synchronously as a temporary hack
+    since we don't yet have a hook into SwapBuffers.
+
+    NOTE: when we remove this hack, we'll still have to handle Flush
+    specially to ensure that it causes all previous commands to get
+    delivered to the server thread.
+    -->
+
+    <function name="Flush" es1="1.0" es2="2.0" marshal="sync">
         <glx sop="142" handcode="true"/>
     </function>
 
         <glx sop="110" handcode="client"/>
     </function>
 
-    <function name="PixelMapfv" deprecated="3.1">
+    <function name="PixelMapfv" deprecated="3.1" marshal="sync">
         <param name="map" type="GLenum"/>
         <param name="mapsize" type="GLsizei" counter="true"/>
         <param name="values" type="const GLfloat *" count="mapsize"/>
         <glx rop="168" large="true"/>
     </function>
 
-    <function name="PixelMapuiv" deprecated="3.1">
+    <function name="PixelMapuiv" deprecated="3.1" marshal="sync">
         <param name="map" type="GLenum"/>
         <param name="mapsize" type="GLsizei" counter="true"/>
         <param name="values" type="const GLuint *" count="mapsize"/>
         <glx rop="169" large="true"/>
     </function>
 
-    <function name="PixelMapusv" deprecated="3.1">
+    <function name="PixelMapusv" deprecated="3.1" marshal="sync">
         <param name="map" type="GLenum"/>
         <param name="mapsize" type="GLsizei" counter="true"/>
         <param name="values" type="const GLushort *" count="mapsize"/>
     <enum name="CLIENT_VERTEX_ARRAY_BIT"                  value="0x00000002"/>
     <enum name="CLIENT_ALL_ATTRIB_BITS"                   value="0xFFFFFFFF"/>
 
-    <function name="ArrayElement" deprecated="3.1" exec="dynamic">
+    <function name="ArrayElement" deprecated="3.1" exec="dynamic" marshal="draw">
         <param name="i" type="GLint"/>
         <glx handcode="true"/>
     </function>
         <glx handcode="true"/>
     </function>
 
-    <function name="DrawArrays" es1="1.0" es2="2.0" exec="dynamic">
+    <function name="DrawArrays" es1="1.0" es2="2.0" exec="dynamic" marshal="draw">
         <param name="mode" type="GLenum"/>
         <param name="first" type="GLint"/>
         <param name="count" type="GLsizei"/>
         <glx rop="193" handcode="true"/>
     </function>
 
-    <function name="DrawElements" es1="1.0" es2="2.0" exec="dynamic">
+    <function name="DrawElements" es1="1.0" es2="2.0" exec="dynamic" marshal="draw">
         <param name="mode" type="GLenum"/>
         <param name="count" type="GLsizei"/>
         <param name="type" type="GLenum"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="GetPointerv" es1="1.1">
+    <function name="GetPointerv" es1="1.1" es2="3.2">
         <param name="pname" type="GLenum"/>
         <param name="params" type="GLvoid **" output="true"/>
         <glx handcode="true"/>
         <glx rop="4097"/>
     </function>
 
-    <function name="DrawRangeElements" es2="3.0" exec="dynamic">
+    <function name="DrawRangeElements" es2="3.0" exec="dynamic" marshal="draw">
         <param name="mode" type="GLenum"/>
         <param name="start" type="GLuint"/>
         <param name="end" type="GLuint"/>
         <glx rop="229"/>
     </function>
 
-    <function name="CompressedTexImage3D" es2="3.0">
+    <function name="CompressedTexImage3D" es2="3.0" marshal="sync">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="internalformat" type="GLenum"/>
         <glx rop="216" handcode="client"/>
     </function>
 
-    <function name="CompressedTexImage2D" es1="1.0" es2="2.0">
+    <function name="CompressedTexImage2D" es1="1.0" es2="2.0" marshal="sync">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="internalformat" type="GLenum"/>
         <glx rop="215" handcode="client"/>
     </function>
 
-    <function name="CompressedTexImage1D">
+    <function name="CompressedTexImage1D" marshal="sync">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="internalformat" type="GLenum"/>
         <glx rop="214" handcode="client"/>
     </function>
 
-    <function name="CompressedTexSubImage3D" es2="3.0">
+    <function name="CompressedTexSubImage3D" es2="3.0" marshal="sync">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="xoffset" type="GLint"/>
         <glx rop="219" handcode="client"/>
     </function>
 
-    <function name="CompressedTexSubImage2D" es1="1.0" es2="2.0">
+    <function name="CompressedTexSubImage2D" es1="1.0" es2="2.0" marshal="sync">
         <param name="target" type="GLenum"/>
         <param name="level" type="GLint"/>
         <param name="xoffset" type="GLint"/>
         <glx handcode="true"/>
     </function>
 
-    <function name="MultiDrawArrays">
+    <function name="MultiDrawArrays" marshal="draw">
         <param name="mode" type="GLenum"/>
         <param name="first" type="const GLint *"/>
         <param name="count" type="const GLsizei *"/>
         <glx ignore="true"/>
     </function>
 
-    <function name="ShaderSource" es2="2.0">
+    <function name="ShaderSource" es2="2.0" marshal="custom">
         <param name="shader" type="GLuint"/>
         <param name="count" type="GLsizei"/>
         <param name="string" type="const GLchar * const *"/>
         <param name="location" type="GLint"/>
         <param name="count" type="GLsizei" counter="true"/>
         <param name="transpose" type="GLboolean"/>
-        <param name="value" type="const GLfloat *" count="count" count_scale="6"/>
+        <param name="value" type="const GLfloat *" count="count" count_scale="8"/>
         <glx ignore="true"/>
     </function>
     <function name="UniformMatrix4x2fv" es2="3.0">
   <enum name="MAX_TRANSFORM_FEEDBACK_BUFFERS" value="0x8E70"/>
   <enum name="MAX_VERTEX_STREAMS"             value="0x8E71"/>
 
-  <function name="DrawTransformFeedbackStream" exec="dynamic">
+  <function name="DrawTransformFeedbackStream" exec="dynamic" marshal="draw">
     <param name="mode" type="GLenum"/>
     <param name="id" type="GLuint"/>
     <param name="stream" type="GLuint"/>
 <xi:include href="ARB_base_instance.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
 <category name="GL_ARB_transform_feedback_instanced" number="109">
-  <function name="DrawTransformFeedbackInstanced" exec="dynamic">
+  <function name="DrawTransformFeedbackInstanced" exec="dynamic" marshal="draw">
     <param name="mode" type="GLenum"/>
     <param name="id" type="GLuint"/>
     <param name="primcount" type="GLsizei"/>
   </function>
 
-  <function name="DrawTransformFeedbackStreamInstanced" exec="dynamic">
+  <function name="DrawTransformFeedbackStreamInstanced" exec="dynamic" marshal="draw">
     <param name="mode" type="GLenum"/>
     <param name="id" type="GLuint"/>
     <param name="stream" type="GLuint"/>
     <enum name="QUERY_BUFFER_BARRIER_BIT"           value="0x00008000"/>
 </category>
 
-<!-- ARB extensions 149 - 153 -->
+<!-- ARB extensions 149 - 152 -->
+
+<xi:include href="ARB_compute_variable_group_size.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
 <xi:include href="ARB_indirect_parameters.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
 <!-- ARB extension 171 -->
 <xi:include href="ARB_pipeline_statistics_query.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
+<category name="es3.2">
+    <!-- This should be in es_EXT, but this file is included first and
+         the alias doesn't work otherwise. -->
+    <function name="PrimitiveBoundingBox" es2="3.2" desktop="false">
+        <param name="minX" type="GLfloat"/>
+        <param name="minY" type="GLfloat"/>
+        <param name="minZ" type="GLfloat"/>
+        <param name="minW" type="GLfloat"/>
+        <param name="maxX" type="GLfloat"/>
+        <param name="maxY" type="GLfloat"/>
+        <param name="maxZ" type="GLfloat"/>
+        <param name="maxW" type="GLfloat"/>
+    </function>
+
+    <function name="BlendBarrier" es2="3.2"/>
+</category>
+
+<category name="KHR_blend_equation_advanced" number="174">
+    <enum name="BLEND_ADVANCED_COHERENT_KHR"              value="0x9285"/>
+
+    <enum name="MULTIPLY_KHR"                             value="0x9294"/>
+    <enum name="SCREEN_KHR"                               value="0x9295"/>
+    <enum name="OVERLAY_KHR"                              value="0x9296"/>
+    <enum name="DARKEN_KHR"                               value="0x9297"/>
+    <enum name="LIGHTEN_KHR"                              value="0x9298"/>
+    <enum name="COLORDODGE_KHR"                           value="0x9299"/>
+    <enum name="COLORBURN_KHR"                            value="0x929A"/>
+    <enum name="HARDLIGHT_KHR"                            value="0x929B"/>
+    <enum name="SOFTLIGHT_KHR"                            value="0x929C"/>
+    <enum name="DIFFERENCE_KHR"                           value="0x929E"/>
+    <enum name="EXCLUSION_KHR"                            value="0x92A0"/>
+
+    <enum name="HSL_HUE_KHR"                              value="0x92AD"/>
+    <enum name="HSL_SATURATION_KHR"                       value="0x92AE"/>
+    <enum name="HSL_COLOR_KHR"                            value="0x92AF"/>
+    <enum name="HSL_LUMINOSITY_KHR"                       value="0x92B0"/>
+
+    <function name="BlendBarrierKHR" alias="BlendBarrier" es2="2.0"/>
+</category>
+
+<category name="ARB_ES3_2_compatibility" number="177">
+
+    <enum name="PRIMITIVE_BOUNDING_BOX_ARB" count="8"       value="0x92BE">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MULTISAMPLE_LINE_WIDTH_RANGE_ARB" count="2" value="0x9381">
+        <size name="Get" mode="get"/>
+    </enum>
+    <enum name="MULTISAMPLE_LINE_WIDTH_GRANULARITY_ARB"     value="0x9382">
+        <size name="Get" mode="get"/>
+    </enum>
+
+    <function name="PrimitiveBoundingBoxARB" alias="PrimitiveBoundingBox">
+        <param name="minX" type="GLfloat"/>
+        <param name="minY" type="GLfloat"/>
+        <param name="minZ" type="GLfloat"/>
+        <param name="minW" type="GLfloat"/>
+        <param name="maxX" type="GLfloat"/>
+        <param name="maxY" type="GLfloat"/>
+        <param name="maxZ" type="GLfloat"/>
+        <param name="maxW" type="GLfloat"/>
+    </function>
+
+</category>
+
+<xi:include href="ARB_gpu_shader_int64.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
 <!-- Non-ARB extensions sorted by extension number. -->
 
 <category name="GL_EXT_blend_color" number="2">
         <param name="primcount" type="GLsizei"/>
     </function>
 
-    <function name="MultiDrawElementsEXT" es1="1.0" es2="2.0" exec="dynamic">
+    <function name="MultiDrawElementsEXT" es1="1.0" es2="2.0" exec="dynamic" marshal="draw">
         <param name="mode" type="GLenum"/>
         <param name="count" type="const GLsizei *"/>
         <param name="type" type="GLenum"/>
 </category>
 
 <category name="GL_IBM_multimode_draw_arrays" number="200">
-    <function name="MultiModeDrawArraysIBM">
+    <function name="MultiModeDrawArraysIBM" marshal="draw">
         <param name="mode" type="const GLenum *"/>
         <param name="first" type="const GLint *"/>
         <param name="count" type="const GLsizei *"/>
         <glx handcode="true" ignore="true"/>
     </function>
 
-    <function name="MultiModeDrawElementsIBM">
+    <function name="MultiModeDrawElementsIBM" marshal="draw">
         <param name="mode" type="const GLenum *"/>
         <param name="count" type="const GLsizei *"/>
         <param name="type" type="GLenum"/>
     <enum name="GPU_MEMORY_INFO_EVICTED_MEMORY_NVX"           value="0x904B" />
 </category>
 
+<category name="GL_INTEL_conservative_rasterization" number="491">
+  <enum name="CONSERVATIVE_RASTERIZATION_INTEL" value="0x83FE"/>
+</category>
+
 <xi:include href="INTEL_performance_query.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
 
 <category name="GL_EXT_polygon_offset_clamp" number="460">
     </function>
 </category>
 
+<xi:include href="EXT_window_rectangles.xml" xmlns:xi="http://www.w3.org/2001/XInclude"/>
+
 <!-- Unnumbered extensions sorted by name. -->
 
 <category name="GL_ATI_blend_equation_separate">