diff options
author | Marek Olšák <[email protected]> | 2020-05-30 17:42:46 -0400 |
---|---|---|
committer | Marge Bot <[email protected]> | 2020-06-23 06:41:37 +0000 |
commit | a2d7f4fe5a52d2968f8d0fbbf879368a6e7044aa (patch) | |
tree | a4a72666446fd255a9577339c668315834e4d51c /src/mapi | |
parent | 66c2c9c6a957c55effc29ad4e1e7461bb8c85508 (diff) |
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 <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5303>
Diffstat (limited to 'src/mapi')
-rw-r--r-- | src/mapi/glapi/gen/ARB_direct_state_access.xml | 24 | ||||
-rw-r--r-- | src/mapi/glapi/gen/ARB_vertex_attrib_binding.xml | 36 |
2 files changed, 40 insertions, 20 deletions
diff --git a/src/mapi/glapi/gen/ARB_direct_state_access.xml b/src/mapi/glapi/gen/ARB_direct_state_access.xml index cd0f51c4327..f06adc4cfc2 100644 --- a/src/mapi/glapi/gen/ARB_direct_state_access.xml +++ b/src/mapi/glapi/gen/ARB_direct_state_access.xml @@ -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" /> diff --git a/src/mapi/glapi/gen/ARB_vertex_attrib_binding.xml b/src/mapi/glapi/gen/ARB_vertex_attrib_binding.xml index ca9dd5a75c2..056cc345430 100644 --- a/src/mapi/glapi/gen/ARB_vertex_attrib_binding.xml +++ b/src/mapi/glapi/gen/ARB_vertex_attrib_binding.xml @@ -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"/> |