From b21db0bb8d481862b6898c4480d1d32b6ff2e917 Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 3 May 2023 11:43:53 -0400 Subject: [PATCH] zink: null some descriptor buffer pointers during destruction this shouldn't actually be needed? and yet... Fixes: 13c6ad0038a ("zink: use a single descriptor buffer for all non-bindless types") Part-of: (cherry picked from commit 738c2eacf3578b8c177304e9761909d492f82619) --- .pick_status.json | 2 +- src/gallium/drivers/zink/zink_descriptors.c | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/.pick_status.json b/.pick_status.json index 1f6809e2724..55665154dc1 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -796,7 +796,7 @@ "description": "zink: null some descriptor buffer pointers during destruction", "nominated": true, "nomination_type": 1, - "resolution": 0, + "resolution": 1, "main_sha": null, "because_sha": "13c6ad0038aa42f1c908ca1adecde9bebf9f2509" }, diff --git a/src/gallium/drivers/zink/zink_descriptors.c b/src/gallium/drivers/zink/zink_descriptors.c index 2dab523c171..15823b161c4 100644 --- a/src/gallium/drivers/zink/zink_descriptors.c +++ b/src/gallium/drivers/zink/zink_descriptors.c @@ -1463,8 +1463,10 @@ zink_batch_descriptor_deinit(struct zink_screen *screen, struct zink_batch_state if (bs->dd.db_xfer) pipe_buffer_unmap(&bs->ctx->base, bs->dd.db_xfer); + bs->dd.db_xfer = NULL; if (bs->dd.db) screen->base.resource_destroy(&screen->base, &bs->dd.db->base.b); + bs->dd.db = NULL; bs->dd.db_bound = false; bs->dd.db_offset = 0; memset(bs->dd.cur_db_offset, 0, sizeof(bs->dd.cur_db_offset));