any resource with active binds will have exactly 1 ref for the bind, so
if it also has usage, it needs to be destroyed on the batch to avoid
early deletion while it's in use
Reviewed-by: Dave Airlie <airlied@redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12822>
assert(d->obj);
assert(s->obj);
util_idalloc_mt_free(&zink_screen(pctx->screen)->buffer_ids, delete_buffer_id);
- if (zink_resource_has_unflushed_usage(d))
+ if (zink_resource_has_unflushed_usage(d) ||
+ (zink_resource_has_usage(d) && zink_resource_has_binds(d)))
zink_batch_reference_resource(&ctx->batch, d);
zink_resource_object_reference(zink_screen(pctx->screen), &d->obj, s->obj);
d->access = s->access;