Module: Mesa
Branch: main
Commit: d744bb5bfc4b347adeb9afb1a806e5d4ea7e634f
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=d744bb5bfc4b347adeb9afb1a806e5d4ea7e634f

Author: Mike Blumenkrantz <[email protected]>
Date:   Thu Jul 13 10:33:58 2023 -0400

zink: be even dumber about buffer refs when replacing storage

these extra checks can cause issues when multiple contexts and transfer
ops are involved

cc: mesa-stable

Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24141>

---

 src/gallium/drivers/zink/zink_context.c | 4 +---
 1 file changed, 1 insertion(+), 3 deletions(-)

diff --git a/src/gallium/drivers/zink/zink_context.c 
b/src/gallium/drivers/zink/zink_context.c
index 79812acdb6e..8dcf1efbd9e 100644
--- a/src/gallium/drivers/zink/zink_context.c
+++ b/src/gallium/drivers/zink/zink_context.c
@@ -4749,9 +4749,7 @@ zink_context_replace_buffer_storage(struct pipe_context 
*pctx, struct pipe_resou
    assert(d->obj);
    assert(s->obj);
    util_idalloc_mt_free(&screen->buffer_ids, delete_buffer_id);
-   /* add a ref just like check_resource_for_batch_ref() would've */
-   if (zink_resource_has_binds(d) && zink_resource_has_usage(d))
-      zink_batch_reference_resource(&ctx->batch, d);
+   zink_batch_reference_resource(&ctx->batch, d);
    /* don't be too creative */
    zink_resource_object_reference(screen, &d->obj, s->obj);
    d->valid_buffer_range = s->valid_buffer_range;

Reply via email to