glthread: convert (Multi)DrawIndirect into direct if user buffers are present
so that user buffers are uploaded without syncing. Now glthread fully handles non-VBO uploads, so that we can disable user buffer codepaths in st/mesa. Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/20624>
This commit is contained in:
@@ -8,16 +8,12 @@
|
||||
<enum name="DRAW_INDIRECT_BUFFER" value="0x8F3F"/>
|
||||
<enum name="DRAW_INDIRECT_BUFFER_BINDING" value="0x8F43"/>
|
||||
|
||||
<function name="DrawArraysIndirect" es2="3.1" exec="dlist"
|
||||
marshal="async"
|
||||
marshal_sync="_mesa_glthread_has_non_vbo_vertices_or_indirect(ctx)">
|
||||
<function name="DrawArraysIndirect" es2="3.1" exec="dlist" marshal="custom">
|
||||
<param name="mode" type="GLenum"/>
|
||||
<param name="indirect" type="const GLvoid *"/>
|
||||
</function>
|
||||
|
||||
<function name="DrawElementsIndirect" es2="3.1" exec="dlist"
|
||||
marshal="async"
|
||||
marshal_sync="_mesa_glthread_has_non_vbo_vertices_or_indices_or_indirect(ctx)">
|
||||
<function name="DrawElementsIndirect" es2="3.1" exec="dlist" marshal="custom">
|
||||
<param name="mode" type="GLenum"/>
|
||||
<param name="type" type="GLenum"/>
|
||||
<param name="indirect" type="const GLvoid *"/>
|
||||
@@ -28,16 +24,14 @@
|
||||
|
||||
<category name="GL_ARB_multi_draw_indirect" number="133">
|
||||
|
||||
<function name="MultiDrawArraysIndirect" marshal="async" exec="dlist"
|
||||
marshal_sync="_mesa_glthread_has_non_vbo_vertices_or_indirect(ctx)">
|
||||
<function name="MultiDrawArraysIndirect" marshal="custom" exec="dlist">
|
||||
<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" marshal="async" exec="dlist"
|
||||
marshal_sync="_mesa_glthread_has_non_vbo_vertices_or_indices_or_indirect(ctx)">
|
||||
<function name="MultiDrawElementsIndirect" marshal="custom" exec="dlist">
|
||||
<param name="mode" type="GLenum"/>
|
||||
<param name="type" type="GLenum"/>
|
||||
<param name="indirect" type="const GLvoid *"/>
|
||||
|
||||
@@ -8,8 +8,7 @@
|
||||
<enum name="PARAMETER_BUFFER_ARB" value="0x80EE"/>
|
||||
<enum name="PARAMETER_BUFFER_BINDING_ARB" value="0x80EF"/>
|
||||
|
||||
<function name="MultiDrawArraysIndirectCountARB"
|
||||
marshal_sync="_mesa_glthread_has_non_vbo_vertices(ctx)">
|
||||
<function name="MultiDrawArraysIndirectCountARB" marshal="custom">
|
||||
<param name="mode" type="GLenum"/>
|
||||
<param name="indirect" type="GLintptr"/>
|
||||
<param name="drawcount" type="GLintptr"/>
|
||||
@@ -18,8 +17,7 @@
|
||||
</function>
|
||||
|
||||
<!-- Use "...has_non_vbo_vertices", because indices always come from a buffer object. -->
|
||||
<function name="MultiDrawElementsIndirectCountARB"
|
||||
marshal_sync="_mesa_glthread_has_non_vbo_vertices(ctx)">
|
||||
<function name="MultiDrawElementsIndirectCountARB" marshal="custom">
|
||||
<param name="mode" type="GLenum"/>
|
||||
<param name="type" type="GLenum"/>
|
||||
<param name="indirect" type="GLintptr"/>
|
||||
|
||||
Reference in New Issue
Block a user