glthread: unbind framebuffers in glDeleteFramebuffers
Tests: dEQP-GLES2.functional.lifetime.delete_bound.framebuffer dEQP-GLES2.functional.state_query.integers.framebuffer_binding_getinteger Fixes:e48f676835
- glthread: don't sync for more glGetIntegerv enums for glretrace Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer@amd.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17976> (cherry picked from commiteb4036ea5b
)
This commit is contained in:
@@ -373,7 +373,7 @@
|
||||
"description": "glthread: unbind framebuffers in glDeleteFramebuffers",
|
||||
"nominated": true,
|
||||
"nomination_type": 1,
|
||||
"resolution": 0,
|
||||
"resolution": 1,
|
||||
"main_sha": null,
|
||||
"because_sha": "e48f676835d110f907e5cd55d659dae511e4af2d"
|
||||
},
|
||||
|
@@ -209,7 +209,8 @@
|
||||
<glx rop="236"/>
|
||||
</function>
|
||||
|
||||
<function name="DeleteFramebuffers" es2="2.0">
|
||||
<function name="DeleteFramebuffers" es2="2.0"
|
||||
marshal_call_after="_mesa_glthread_DeleteFramebuffers(ctx, n, framebuffers);">
|
||||
<param name="n" type="GLsizei" counter="true"/>
|
||||
<param name="framebuffers" type="const GLuint *" count="n"/>
|
||||
<glx rop="4320"/>
|
||||
|
@@ -779,6 +779,20 @@ _mesa_glthread_DeleteLists(struct gl_context *ctx, GLsizei range)
|
||||
_mesa_glthread_flush_batch(ctx);
|
||||
}
|
||||
|
||||
static inline void
|
||||
_mesa_glthread_DeleteFramebuffers(struct gl_context *ctx, GLsizei n,
|
||||
const GLuint *ids)
|
||||
{
|
||||
if (ctx->GLThread.CurrentDrawFramebuffer) {
|
||||
for (int i = 0; i < n; i++) {
|
||||
if (ctx->GLThread.CurrentDrawFramebuffer == ids[i]) {
|
||||
ctx->GLThread.CurrentDrawFramebuffer = 0;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct marshal_cmd_CallList
|
||||
{
|
||||
struct marshal_cmd_base cmd_base;
|
||||
|
Reference in New Issue
Block a user