glthread: don't generate the sync fallback if the call size is not variable

marshal_generated.c is 12% smaller.

Reviewed-by: Timothy Arceri <tarceri@itsqueeze.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3948>
This commit is contained in:
Marek Olšák
2020-02-18 22:57:28 -05:00
committed by Marge Bot
parent a19c9290f4
commit d93f4faefb

View File

@@ -254,19 +254,23 @@ class PrintCode(gl_XML.gl_print_base):
out('return;')
out('}')
out('if (cmd_size <= MARSHAL_MAX_CMD_SIZE) {')
if len(func.variable_params) > 0:
with indent():
out('if (cmd_size <= MARSHAL_MAX_CMD_SIZE) {')
with indent():
self.print_async_dispatch(func)
out('return;')
out('}')
out('')
if need_fallback_sync:
out('fallback_to_sync:')
with indent():
out('_mesa_glthread_finish(ctx);')
self.print_sync_dispatch(func)
else:
with indent():
self.print_async_dispatch(func)
out('return;')
out('}')
out('')
if need_fallback_sync:
out('fallback_to_sync:')
with indent():
out('_mesa_glthread_finish(ctx);')
self.print_sync_dispatch(func)
assert not need_fallback_sync
out('}')
def print_async_body(self, func):