Mesa (main): panvk: Allow PAN_BO_INVISIBLE to be mapped with dump flag

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Mon May 9 09:30:48 UTC 2022


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

Author: Manas Chaudhary <manas.chaudhary at collabora.com>
Date:   Thu Apr 21 10:00:02 2022 +0530

panvk: Allow PAN_BO_INVISIBLE to be mapped with dump flag

Signed-off-by: Manas Chaudhary <manas.chaudhary at collabora.com>
Reviewed-by: Boris Brezillon <boris.brezillon at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16072>

---

 src/panfrost/vulkan/panvk_vX_cmd_buffer.c | 23 ++++++++++++++++++++---
 1 file changed, 20 insertions(+), 3 deletions(-)

diff --git a/src/panfrost/vulkan/panvk_vX_cmd_buffer.c b/src/panfrost/vulkan/panvk_vX_cmd_buffer.c
index ef1ab4b0881..15795af17ab 100644
--- a/src/panfrost/vulkan/panvk_vX_cmd_buffer.c
+++ b/src/panfrost/vulkan/panvk_vX_cmd_buffer.c
@@ -39,6 +39,19 @@
 #include "util/u_pack_color.h"
 #include "vk_format.h"
 
+static uint32_t
+panvk_debug_adjust_bo_flags(const struct panvk_device *device,
+                      uint32_t bo_flags)
+{
+   uint32_t debug_flags =
+      device->physical_device->instance->debug_flags;
+
+   if (debug_flags & PANVK_DEBUG_DUMP)
+      bo_flags &= ~PAN_BO_INVISIBLE;
+
+   return bo_flags;
+}
+
 static void
 panvk_cmd_prepare_fragment_job(struct panvk_cmd_buffer *cmdbuf)
 {
@@ -74,7 +87,9 @@ panvk_per_arch(cmd_get_polygon_list)(struct panvk_cmd_buffer *cmdbuf,
    bool init_polygon_list = !has_draws && pdev->model->quirks.no_hierarchical_tiling;
    batch->tiler.ctx.midgard.polygon_list =
       panfrost_bo_create(pdev, size,
-                         init_polygon_list ? 0 : PAN_BO_INVISIBLE,
+                         panvk_debug_adjust_bo_flags(cmdbuf->device,
+                                               init_polygon_list ?
+                                               PAN_BO_INVISIBLE: 0),
                          "Polygon list");
 
 
@@ -1333,10 +1348,12 @@ panvk_create_cmdbuf(struct panvk_device *device,
                    "Command buffer descriptor pool", true);
    panvk_pool_init(&cmdbuf->tls_pool, &device->physical_device->pdev,
                    pool ? &pool->tls_bo_pool : NULL,
-                   PAN_BO_INVISIBLE, 64 * 1024, "TLS pool", false);
+                   panvk_debug_adjust_bo_flags(device, PAN_BO_INVISIBLE),
+                   64 * 1024, "TLS pool", false);
    panvk_pool_init(&cmdbuf->varying_pool, &device->physical_device->pdev,
                    pool ? &pool->varying_bo_pool : NULL,
-                   PAN_BO_INVISIBLE, 64 * 1024, "Varyings pool", false);
+                   panvk_debug_adjust_bo_flags(device, PAN_BO_INVISIBLE),
+                   64 * 1024, "Varyings pool", false);
    list_inithead(&cmdbuf->batches);
    cmdbuf->status = PANVK_CMD_BUFFER_STATUS_INITIAL;
    *cmdbuf_out = cmdbuf;



More information about the mesa-commit mailing list