panvk: Add a panvk_cmd_prepare_tiler_context() helper
authorBoris Brezillon <boris.brezillon@collabora.com>
Tue, 7 Sep 2021 17:19:43 +0000 (19:19 +0200)
committerBoris Brezillon <boris.brezillon@collabora.com>
Tue, 21 Sep 2021 13:00:55 +0000 (15:00 +0200)
So we can create tiler contexts from meta helpers.

Signed-off-by: Boris Brezillon <boris.brezillon@collabora.com>
Reviewed-by: Tomeu Vizoso <tomeu.vizoso@collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12095>

src/panfrost/vulkan/panvk_vX_cmd_buffer.c
src/panfrost/vulkan/panvk_vX_cmd_buffer.h
src/panfrost/vulkan/panvk_vX_meta_clear.c

index c00e7cd..f20e36d 100644 (file)
@@ -517,23 +517,30 @@ panvk_per_arch(cmd_get_tiler_context)(struct panvk_cmd_buffer *cmdbuf,
 }
 #endif
 
-static void
-panvk_draw_prepare_tiler_context(struct panvk_cmd_buffer *cmdbuf,
-                                 struct panvk_draw_info *draw)
+void
+panvk_per_arch(cmd_prepare_tiler_context)(struct panvk_cmd_buffer *cmdbuf)
 {
-   struct panvk_batch *batch = cmdbuf->state.batch;
+   const struct pan_fb_info *fbinfo = &cmdbuf->state.fb.info;
 
 #if PAN_ARCH == 5
    panvk_per_arch(cmd_get_polygon_list)(cmdbuf,
-                                        batch->fb.info->width,
-                                        batch->fb.info->height,
+                                        fbinfo->width,
+                                        fbinfo->height,
                                         true);
 #else
    panvk_per_arch(cmd_get_tiler_context)(cmdbuf,
-                                         batch->fb.info->width,
-                                         batch->fb.info->height);
+                                         fbinfo->width,
+                                         fbinfo->height);
 #endif
+}
+
+static void
+panvk_draw_prepare_tiler_context(struct panvk_cmd_buffer *cmdbuf,
+                                 struct panvk_draw_info *draw)
+{
+   struct panvk_batch *batch = cmdbuf->state.batch;
 
+   panvk_per_arch(cmd_prepare_tiler_context)(cmdbuf);
    draw->tiler_ctx = &batch->tiler.ctx;
 }
 
index 40946be..fbe5b91 100644 (file)
@@ -52,3 +52,6 @@ panvk_per_arch(cmd_alloc_fb_desc)(struct panvk_cmd_buffer *cmdbuf);
 
 void
 panvk_per_arch(cmd_alloc_tls_desc)(struct panvk_cmd_buffer *cmdbuf, bool gfx);
+
+void
+panvk_per_arch(cmd_prepare_tiler_context)(struct panvk_cmd_buffer *cmdbuf);
index 8502f44..3c4d188 100644 (file)
@@ -315,17 +315,7 @@ panvk_meta_clear_attachment(struct panvk_cmd_buffer *cmdbuf,
 
    panvk_per_arch(cmd_alloc_fb_desc)(cmdbuf);
    panvk_per_arch(cmd_alloc_tls_desc)(cmdbuf, true);
-
-#if PAN_ARCH <= 5
-   panvk_per_arch(cmd_get_polygon_list)(cmdbuf,
-                                        batch->fb.info->width,
-                                        batch->fb.info->height,
-                                        true);
-#else
-   panvk_per_arch(cmd_get_tiler_context)(cmdbuf,
-                                         batch->fb.info->width,
-                                         batch->fb.info->height);
-#endif
+   panvk_per_arch(cmd_prepare_tiler_context)(cmdbuf);
 
    mali_ptr vpd =
       panvk_per_arch(meta_emit_viewport)(&cmdbuf->desc_pool.base,