glthread: handle ARB_vertex_attrib_binding
This handles ARB_vertex_attrib_binding for vertex uploads correctly. Before this, the extension might have led to crashes if non-VBO vertex attribs were present. Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5303>
This commit is contained in:
@@ -597,12 +597,14 @@
|
||||
<param name="index" type="GLuint" />
|
||||
</function>
|
||||
|
||||
<function name="VertexArrayElementBuffer" no_error="true">
|
||||
<function name="VertexArrayElementBuffer" no_error="true"
|
||||
marshal_call_after="if (COMPAT) _mesa_glthread_DSAElementBuffer(ctx, vaobj, buffer);">
|
||||
<param name="vaobj" type="GLuint" />
|
||||
<param name="buffer" type="GLuint" />
|
||||
</function>
|
||||
|
||||
<function name="VertexArrayVertexBuffer" no_error="true">
|
||||
<function name="VertexArrayVertexBuffer" no_error="true"
|
||||
marshal_call_after="if (COMPAT) _mesa_glthread_DSAVertexBuffer(ctx, vaobj, bindingindex, buffer, offset, stride);">
|
||||
<param name="vaobj" type="GLuint" />
|
||||
<param name="bindingindex" type="GLuint" />
|
||||
<param name="buffer" type="GLuint" />
|
||||
@@ -610,7 +612,8 @@
|
||||
<param name="stride" type="GLsizei" />
|
||||
</function>
|
||||
|
||||
<function name="VertexArrayVertexBuffers" no_error="true">
|
||||
<function name="VertexArrayVertexBuffers" no_error="true"
|
||||
marshal_call_after="if (COMPAT) _mesa_glthread_DSAVertexBuffers(ctx, vaobj, first, count, buffers, offsets, strides);">
|
||||
<param name="vaobj" type="GLuint" />
|
||||
<param name="first" type="GLuint" />
|
||||
<param name="count" type="GLsizei" />
|
||||
@@ -619,7 +622,8 @@
|
||||
<param name="strides" type="const GLsizei *" count="count"/>
|
||||
</function>
|
||||
|
||||
<function name="VertexArrayAttribFormat">
|
||||
<function name="VertexArrayAttribFormat"
|
||||
marshal_call_after="if (COMPAT) _mesa_glthread_DSAAttribFormat(ctx, vaobj, attribindex, size, type, relativeoffset);">
|
||||
<param name="vaobj" type="GLuint" />
|
||||
<param name="attribindex" type="GLuint" />
|
||||
<param name="size" type="GLint" />
|
||||
@@ -628,7 +632,8 @@
|
||||
<param name="relativeoffset" type="GLuint" />
|
||||
</function>
|
||||
|
||||
<function name="VertexArrayAttribIFormat">
|
||||
<function name="VertexArrayAttribIFormat"
|
||||
marshal_call_after="if (COMPAT) _mesa_glthread_DSAAttribFormat(ctx, vaobj, attribindex, size, type, relativeoffset);">
|
||||
<param name="vaobj" type="GLuint" />
|
||||
<param name="attribindex" type="GLuint" />
|
||||
<param name="size" type="GLint" />
|
||||
@@ -636,7 +641,8 @@
|
||||
<param name="relativeoffset" type="GLuint" />
|
||||
</function>
|
||||
|
||||
<function name="VertexArrayAttribLFormat">
|
||||
<function name="VertexArrayAttribLFormat"
|
||||
marshal_call_after="if (COMPAT) _mesa_glthread_DSAAttribFormat(ctx, vaobj, attribindex, size, type, relativeoffset);">
|
||||
<param name="vaobj" type="GLuint" />
|
||||
<param name="attribindex" type="GLuint" />
|
||||
<param name="size" type="GLint" />
|
||||
@@ -644,13 +650,15 @@
|
||||
<param name="relativeoffset" type="GLuint" />
|
||||
</function>
|
||||
|
||||
<function name="VertexArrayAttribBinding" no_error="true">
|
||||
<function name="VertexArrayAttribBinding" no_error="true"
|
||||
marshal_call_after="if (COMPAT) _mesa_glthread_DSAAttribBinding(ctx, vaobj, attribindex, bindingindex);">
|
||||
<param name="vaobj" type="GLuint" />
|
||||
<param name="attribindex" type="GLuint" />
|
||||
<param name="bindingindex" type="GLuint" />
|
||||
</function>
|
||||
|
||||
<function name="VertexArrayBindingDivisor" no_error="true">
|
||||
<function name="VertexArrayBindingDivisor" no_error="true"
|
||||
marshal_call_after="if (COMPAT) _mesa_glthread_DSABindingDivisor(ctx, vaobj, bindingindex, divisor);">
|
||||
<param name="vaobj" type="GLuint" />
|
||||
<param name="bindingindex" type="GLuint" />
|
||||
<param name="divisor" type="GLuint" />
|
||||
|
||||
@@ -7,14 +7,16 @@
|
||||
|
||||
<category name="GL_ARB_vertex_attrib_binding" number="125">
|
||||
|
||||
<function name="BindVertexBuffer" es2="3.1" no_error="true">
|
||||
<function name="BindVertexBuffer" es2="3.1" no_error="true"
|
||||
marshal_call_after="if (COMPAT) _mesa_glthread_VertexBuffer(ctx, bindingindex, buffer, offset, stride);">
|
||||
<param name="bindingindex" type="GLuint"/>
|
||||
<param name="buffer" type="GLuint"/>
|
||||
<param name="offset" type="GLintptr"/>
|
||||
<param name="stride" type="GLsizei"/>
|
||||
</function>
|
||||
|
||||
<function name="VertexAttribFormat" es2="3.1">
|
||||
<function name="VertexAttribFormat" es2="3.1"
|
||||
marshal_call_after="if (COMPAT) _mesa_glthread_AttribFormat(ctx, attribindex, size, type, relativeoffset);">
|
||||
<param name="attribindex" type="GLuint"/>
|
||||
<param name="size" type="GLint"/>
|
||||
<param name="type" type="GLenum"/>
|
||||
@@ -22,31 +24,36 @@
|
||||
<param name="relativeoffset" type="GLuint"/>
|
||||
</function>
|
||||
|
||||
<function name="VertexAttribIFormat" es2="3.1">
|
||||
<function name="VertexAttribIFormat" es2="3.1"
|
||||
marshal_call_after="if (COMPAT) _mesa_glthread_AttribFormat(ctx, attribindex, size, type, relativeoffset);">
|
||||
<param name="attribindex" type="GLuint"/>
|
||||
<param name="size" type="GLint"/>
|
||||
<param name="type" type="GLenum"/>
|
||||
<param name="relativeoffset" type="GLuint"/>
|
||||
</function>
|
||||
|
||||
<function name="VertexAttribLFormat">
|
||||
<function name="VertexAttribLFormat"
|
||||
marshal_call_after="if (COMPAT) _mesa_glthread_AttribFormat(ctx, attribindex, size, type, relativeoffset);">
|
||||
<param name="attribindex" type="GLuint"/>
|
||||
<param name="size" type="GLint"/>
|
||||
<param name="type" type="GLenum"/>
|
||||
<param name="relativeoffset" type="GLuint"/>
|
||||
</function>
|
||||
|
||||
<function name="VertexAttribBinding" es2="3.1" no_error="true">
|
||||
<function name="VertexAttribBinding" es2="3.1" no_error="true"
|
||||
marshal_call_after="if (COMPAT) _mesa_glthread_AttribBinding(ctx, attribindex, bindingindex);">
|
||||
<param name="attribindex" type="GLuint"/>
|
||||
<param name="bindingindex" type="GLuint"/>
|
||||
</function>
|
||||
|
||||
<function name="VertexBindingDivisor" es2="3.1" no_error="true">
|
||||
<function name="VertexBindingDivisor" es2="3.1" no_error="true"
|
||||
marshal_call_after="if (COMPAT) _mesa_glthread_BindingDivisor(ctx, bindingindex, divisor);">
|
||||
<param name="bindingindex" type="GLuint"/>
|
||||
<param name="divisor" type="GLuint"/>
|
||||
</function>
|
||||
|
||||
<function name="VertexArrayBindVertexBufferEXT">
|
||||
<function name="VertexArrayBindVertexBufferEXT"
|
||||
marshal_call_after="if (COMPAT) _mesa_glthread_DSAVertexBuffer(ctx, vaobj, bindingindex, buffer, offset, stride);">
|
||||
<param name="vaobj" type="GLuint"/>
|
||||
<param name="bindingindex" type="GLuint"/>
|
||||
<param name="buffer" type="GLuint"/>
|
||||
@@ -54,7 +61,8 @@
|
||||
<param name="stride" type="GLsizei"/>
|
||||
</function>
|
||||
|
||||
<function name="VertexArrayVertexAttribFormatEXT">
|
||||
<function name="VertexArrayVertexAttribFormatEXT"
|
||||
marshal_call_after="if (COMPAT) _mesa_glthread_DSAAttribFormat(ctx, vaobj, attribindex, size, type, relativeoffset);">
|
||||
<param name="vaobj" type="GLuint"/>
|
||||
<param name="attribindex" type="GLuint"/>
|
||||
<param name="size" type="GLint"/>
|
||||
@@ -63,7 +71,8 @@
|
||||
<param name="relativeoffset" type="GLuint"/>
|
||||
</function>
|
||||
|
||||
<function name="VertexArrayVertexAttribIFormatEXT">
|
||||
<function name="VertexArrayVertexAttribIFormatEXT"
|
||||
marshal_call_after="if (COMPAT) _mesa_glthread_DSAAttribFormat(ctx, vaobj, attribindex, size, type, relativeoffset);">
|
||||
<param name="vaobj" type="GLuint"/>
|
||||
<param name="attribindex" type="GLuint"/>
|
||||
<param name="size" type="GLint"/>
|
||||
@@ -71,7 +80,8 @@
|
||||
<param name="relativeoffset" type="GLuint"/>
|
||||
</function>
|
||||
|
||||
<function name="VertexArrayVertexAttribLFormatEXT">
|
||||
<function name="VertexArrayVertexAttribLFormatEXT"
|
||||
marshal_call_after="if (COMPAT) _mesa_glthread_DSAAttribFormat(ctx, vaobj, attribindex, size, type, relativeoffset);">
|
||||
<param name="vaobj" type="GLuint"/>
|
||||
<param name="attribindex" type="GLuint"/>
|
||||
<param name="size" type="GLint"/>
|
||||
@@ -79,13 +89,15 @@
|
||||
<param name="relativeoffset" type="GLuint"/>
|
||||
</function>
|
||||
|
||||
<function name="VertexArrayVertexAttribBindingEXT">
|
||||
<function name="VertexArrayVertexAttribBindingEXT"
|
||||
marshal_call_after="if (COMPAT) _mesa_glthread_DSAAttribBinding(ctx, vaobj, attribindex, bindingindex);">
|
||||
<param name="vaobj" type="GLuint"/>
|
||||
<param name="attribindex" type="GLuint"/>
|
||||
<param name="bindingindex" type="GLuint"/>
|
||||
</function>
|
||||
|
||||
<function name="VertexArrayVertexBindingDivisorEXT">
|
||||
<function name="VertexArrayVertexBindingDivisorEXT"
|
||||
marshal_call_after="if (COMPAT) _mesa_glthread_DSABindingDivisor(ctx, vaobj, bindingindex, divisor);">
|
||||
<param name="vaobj" type="GLuint"/>
|
||||
<param name="bindingindex" type="GLuint"/>
|
||||
<param name="divisor" type="GLuint"/>
|
||||
|
||||
Reference in New Issue
Block a user