From 13c73e3214e5b09ef5a84f3859af4a2975724b52 Mon Sep 17 00:00:00 2001 From: Faith Ekstrand Date: Mon, 30 Jan 2023 20:11:59 -0600 Subject: [PATCH] nvk: Also store the push BO map in nvk_queue_state Part-of: --- src/nouveau/vulkan/nvk_queue.c | 11 +++++++---- src/nouveau/vulkan/nvk_queue.h | 1 + 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/nouveau/vulkan/nvk_queue.c b/src/nouveau/vulkan/nvk_queue.c index 14e0fbd0504..4ddc6118c47 100644 --- a/src/nouveau/vulkan/nvk_queue.c +++ b/src/nouveau/vulkan/nvk_queue.c @@ -28,8 +28,10 @@ nvk_queue_state_finish(struct nvk_device *dev, nouveau_ws_bo_destroy(qs->samplers.bo); if (qs->slm.bo) nouveau_ws_bo_destroy(qs->slm.bo); - if (qs->push.bo) + if (qs->push.bo) { + nouveau_ws_bo_unmap(qs->push.bo, qs->push.bo_map); nouveau_ws_bo_destroy(qs->push.bo); + } } VkResult @@ -211,12 +213,13 @@ nvk_queue_state_update(struct nvk_device *dev, */ P_IMMD(p, NV9097, SET_SHADER_LOCAL_MEMORY_WINDOW, 0xff << 24); - nouveau_ws_bo_unmap(push_bo, push_map); - - if (qs->push.bo) + if (qs->push.bo) { + nouveau_ws_bo_unmap(qs->push.bo, qs->push.bo_map); nouveau_ws_bo_destroy(qs->push.bo); + } qs->push.bo = push_bo; + qs->push.bo_map = push_map; qs->push.dw_count = nv_push_dw_count(&push); return VK_SUCCESS; diff --git a/src/nouveau/vulkan/nvk_queue.h b/src/nouveau/vulkan/nvk_queue.h index 953841087e3..e578b458a28 100644 --- a/src/nouveau/vulkan/nvk_queue.h +++ b/src/nouveau/vulkan/nvk_queue.h @@ -28,6 +28,7 @@ struct nvk_queue_state { struct { struct nouveau_ws_bo *bo; + void *bo_map; uint32_t dw_count; } push; };