mesa/src/mapi/glapi/gen/ARB_indirect_parameters.xml
Marek Olšák 36740aa1f1 glthread: remove marshal="draw" because it doesn't do much
It only checked whether the pointer was indices or indirect, but we can
just determine the same thing manually for each draw call.

Simplify it as follows:
- if a call contains a pointer without count and it's either indirect or
  indices, set marshal="async". The marshal_sync attribute still determines
  when it syncs.
- if a call doesn't contain any pointer without count, remove the marshal
  attribute

Acked-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8297>
2021-01-21 00:12:34 +00:00

33 lines
1.2 KiB
XML

<?xml version="1.0"?>
<!DOCTYPE OpenGLAPI SYSTEM "gl_API.dtd">
<OpenGLAPI>
<category name="GL_ARB_draw_indirect" number="154">
<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)">
<param name="mode" type="GLenum"/>
<param name="indirect" type="GLintptr"/>
<param name="drawcount" type="GLintptr"/>
<param name="maxdrawcount" type="GLsizei"/>
<param name="stride" type="GLsizei"/>
</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)">
<param name="mode" type="GLenum"/>
<param name="type" type="GLenum"/>
<param name="indirect" type="GLintptr"/>
<param name="drawcount" type="GLintptr"/>
<param name="maxdrawcount" type="GLsizei"/>
<param name="stride" type="GLsizei"/>
</function>
</category>
</OpenGLAPI>