glthread: change when glFlush flushes asynchronously

This fixes the flushing with external textures.

We don't know if we need to flush synchronously with multiple contexts,
so I removed that.

Acked-By: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11341>
This commit is contained in:
Marek Olšák
2021-06-12 12:31:28 -04:00
committed by Marge Bot
parent 0510a947ba
commit 3da170faae
4 changed files with 12 additions and 7 deletions

View File

@@ -2399,14 +2399,8 @@
<glx sop="108" handcode="true"/>
</function>
<!-- Shared contexts have to wait for glthread to finish execution after glFlush,
so that other contexts can see the effect of previous GL calls when glFlush returns.
This is harmless if the contexts run on different threads, because we only stall
1 thread that's asynchronous anyway. It's worse when the contexts run on the same
thread, but that's not a good use of multiple contexts.
-->
<function name="Flush" es1="1.0" es2="2.0"
marshal_call_after="_mesa_glthread_flush_batch(ctx); if (ctx->Shared->RefCount > 1) _mesa_glthread_finish(ctx);">
marshal_call_after="_mesa_glthread_flush_batch(ctx); if (ctx->Shared->HasExternallySharedImages) _mesa_glthread_finish(ctx);">
<glx sop="142" handcode="true"/>
</function>