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: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25829>
This commit is contained in:
Mike Blumenkrantz 2023-10-20 10:18:49 -04:00 committed by Marge Bot
parent a65aab411f
commit 12fc8cf4df

View file

@ -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;