From 12fc8cf4dff7361de6ca5220b66ca11fcb2341a7 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Fri, 20 Oct 2023 10:18:49 -0400 Subject: [PATCH] zink: only increment image_rebind_counter on image export if binds exist rebinding all images on all contexts is only relevant for images which have bindings, otherwise it's just pointless churn fixes #10016 cc: mesa-stable Part-of: --- src/gallium/drivers/zink/zink_resource.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gallium/drivers/zink/zink_resource.c b/src/gallium/drivers/zink/zink_resource.c index d4e9b5e8096..c7f33c8b172 100644 --- a/src/gallium/drivers/zink/zink_resource.c +++ b/src/gallium/drivers/zink/zink_resource.c @@ -1761,7 +1761,6 @@ zink_resource_get_handle(struct pipe_screen *pscreen, whandle->handle = -1; } else { if (!res->obj->exportable) { - assert(!res->all_binds); //TODO handle if problematic assert(!zink_resource_usage_is_unflushed(res)); if (!screen->info.have_EXT_image_drm_format_modifier) { static bool warned = false; @@ -1776,7 +1775,8 @@ zink_resource_get_handle(struct pipe_screen *pscreen, zink_screen_unlock_context(screen); return false; } - p_atomic_inc(&screen->image_rebind_counter); + if (res->all_binds) + p_atomic_inc(&screen->image_rebind_counter); screen->copy_context->base.flush(&screen->copy_context->base, NULL, 0); zink_screen_unlock_context(screen); obj = res->obj;