Mesa (main): vulkan/wsi: fix extra free if buffer_blit_queue

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Fri May 27 09:42:21 UTC 2022


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

Author: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu at amd.com>
Date:   Sat May 21 23:22:21 2022 +0530

vulkan/wsi: fix extra free if buffer_blit_queue

In wsi_destroy_image(), if buffer_blit_queue then
do not call extra free. This will fix assert in
debug release and accessing out of allocated memory.

Fixes:
  7bd5aa111cf
  ("vulkan/wsi: add a private transfer pool to exec the DRI_PRIME blit")

Signed-off-by: Yogesh Mohan Marimuthu <yogesh.mohanmarimuthu at amd.com>
Reviewed-by: Pierre-Eric Pelloux-Prayer <pierre-eric.pelloux-prayer at amd.com>
Reviewed-by: Samuel Pitoiset's avatarSamuel Pitoiset <samuel.pitoiset at gmail.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16649>

---

 src/vulkan/wsi/wsi_common.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/src/vulkan/wsi/wsi_common.c b/src/vulkan/wsi/wsi_common.c
index 0b48f16a0b2..6aeb146c98f 100644
--- a/src/vulkan/wsi/wsi_common.c
+++ b/src/vulkan/wsi/wsi_common.c
@@ -524,7 +524,10 @@ wsi_destroy_image(const struct wsi_swapchain *chain,
 #endif
 
    if (image->buffer.blit_cmd_buffers) {
-      for (uint32_t i = 0; i < wsi->queue_family_count; i++) {
+      int cmd_buffer_count =
+         chain->buffer_blit_queue != VK_NULL_HANDLE ? 1 : wsi->queue_family_count;
+
+      for (uint32_t i = 0; i < cmd_buffer_count; i++) {
          wsi->FreeCommandBuffers(chain->device, chain->cmd_pools[i],
                                  1, &image->buffer.blit_cmd_buffers[i]);
       }



More information about the mesa-commit mailing list