zink: unbind fb on context destroy
this ensures that batch refs are added for fb surfaces on unbind, which prevents stale batch tracking from persisting on resources after the context is destroyed fixes: *EGL.functional.render.multi_context* cc: mesa-stable Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/21727>
This commit is contained in:
committed by
Marge Bot
parent
7600e2cca2
commit
62f1a8a3a6
@@ -53,21 +53,6 @@ spec@glsl-4.00@execution@built-in-functions@fs-inverse-dmat4
|
||||
# Around the time of running these tests there are some warnings from the kernel in dma_resv.c, and at least
|
||||
# some failures look like not waiting for rendering to complete.
|
||||
# Because those tests sometimes pass, keep them here
|
||||
wayland-dEQP-EGL.functional.color_clears.multi_context.gles1_gles2_gles3.rgb565_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.color_clears.multi_context.gles1_gles2_gles3.rgb888_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.color_clears.multi_context.gles1_gles2_gles3.rgba8888_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.color_clears.multi_context.gles1_gles2.rgb565_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.color_clears.multi_context.gles1_gles2.rgb888_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.color_clears.multi_context.gles1_gles2.rgba8888_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.color_clears.multi_context.gles1.rgb565_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.color_clears.multi_context.gles1.rgb888_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.color_clears.multi_context.gles1.rgba8888_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.color_clears.multi_context.gles2.rgb565_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.color_clears.multi_context.gles2.rgb888_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.color_clears.multi_context.gles2.rgba8888_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.color_clears.multi_context.gles3.rgb565_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.color_clears.multi_context.gles3.rgb888_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.color_clears.multi_context.gles3.rgba8888_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.color_clears.multi_thread.gles1_gles2_gles3.rgb565_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.color_clears.multi_thread.gles1_gles2_gles3.rgb888_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.color_clears.multi_thread.gles1_gles2_gles3.rgba8888_pbuffer,Fail
|
||||
@@ -93,15 +78,6 @@ wayland-dEQP-EGL.functional.color_clears.single_context.gles3.rgb565_pbuffer,Fai
|
||||
wayland-dEQP-EGL.functional.color_clears.single_context.gles3.rgb888_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.color_clears.single_context.gles3.rgba8888_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.negative_api.create_pixmap_surface,Fail
|
||||
wayland-dEQP-EGL.functional.render.multi_context.gles2_gles3.rgb565_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.render.multi_context.gles2_gles3.rgb888_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.render.multi_context.gles2_gles3.rgba8888_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.render.multi_context.gles2.rgb565_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.render.multi_context.gles2.rgb888_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.render.multi_context.gles2.rgba8888_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.render.multi_context.gles3.rgb565_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.render.multi_context.gles3.rgb888_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.render.multi_context.gles3.rgba8888_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.render.multi_thread.gles2_gles3.rgb565_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.render.multi_thread.gles2_gles3.rgb888_pbuffer,Fail
|
||||
wayland-dEQP-EGL.functional.render.multi_thread.gles2_gles3.rgba8888_pbuffer,Fail
|
||||
|
||||
@@ -101,6 +101,9 @@ zink_context_destroy(struct pipe_context *pctx)
|
||||
struct zink_context *ctx = zink_context(pctx);
|
||||
struct zink_screen *screen = zink_screen(pctx->screen);
|
||||
|
||||
struct pipe_framebuffer_state fb = {0};
|
||||
pctx->set_framebuffer_state(pctx, &fb);
|
||||
|
||||
if (util_queue_is_initialized(&screen->flush_queue))
|
||||
util_queue_finish(&screen->flush_queue);
|
||||
if (ctx->batch.state && !screen->device_lost) {
|
||||
|
||||
Reference in New Issue
Block a user