Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4124>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4124>
exec NMTOKEN #IMPLIED
desktop (true | false) "true"
marshal NMTOKEN #IMPLIED
exec NMTOKEN #IMPLIED
desktop (true | false) "true"
marshal NMTOKEN #IMPLIED
- marshal_fail CDATA #IMPLIED>
marshal_sync CDATA #IMPLIED>
marshal_count CDATA #IMPLIED>
marshal_call_after CDATA #IMPLIED>
marshal_sync CDATA #IMPLIED>
marshal_count CDATA #IMPLIED>
marshal_call_after CDATA #IMPLIED>
generated but a custom implementation will be present in marshal.c.
If "draw", it will follow the "async" rules except that "indices" are
ignored (since they may come from a VBO).
generated but a custom implementation will be present in marshal.c.
If "draw", it will follow the "async" rules except that "indices" are
ignored (since they may come from a VBO).
- marshal_fail - an expression that, if it evaluates true, causes glthread
- to switch back to the Mesa implementation and call it directly. Used
- to disable glthread for GL compatibility interactions that we don't
- want to track state for.
marshal_sync - an expression that, if it evaluates true, causes glthread
to sync and execute the call directly.
marshal_count - same as count, but variable_param is ignored. Used by
marshal_sync - an expression that, if it evaluates true, causes glthread
to sync and execute the call directly.
marshal_count - same as count, but variable_param is ignored. Used by
self.validate_count_or_fallback(func)
self.validate_count_or_fallback(func)
- if func.marshal_fail:
- out('if ({0}) {{'.format(func.marshal_fail))
- with indent():
- out('_mesa_glthread_disable(ctx, "{0}");'.format(func.name))
- self.print_sync_dispatch(func)
- out('return;')
- out('}')
-
if func.marshal_sync:
out('if ({0}) {{'.format(func.marshal_sync))
with indent():
if func.marshal_sync:
out('if ({0}) {{'.format(func.marshal_sync))
with indent():
# Store the "marshal" attribute, if present.
self.marshal = element.get('marshal')
# Store the "marshal" attribute, if present.
self.marshal = element.get('marshal')
- self.marshal_fail = element.get('marshal_fail')
self.marshal_sync = element.get('marshal_sync')
self.marshal_call_after = element.get('marshal_call_after')
self.marshal_sync = element.get('marshal_sync')
self.marshal_call_after = element.get('marshal_call_after')