Mesa (main): v3dv: use defines for push constant offsets used by texel buffer copy shaders

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Tue Jul 13 10:35:01 UTC 2021


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

Author: Iago Toral Quiroga <itoral at igalia.com>
Date:   Tue Jul 13 09:47:53 2021 +0200

v3dv: use defines for push constant offsets used by texel buffer copy shaders

Reviewed-by: Alejandro Piñeiro <apinheiro at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11843>

---

 src/broadcom/vulkan/v3dv_meta_copy.c | 19 +++++++++++++++----
 1 file changed, 15 insertions(+), 4 deletions(-)

diff --git a/src/broadcom/vulkan/v3dv_meta_copy.c b/src/broadcom/vulkan/v3dv_meta_copy.c
index a96ea5eec9a..588e849a133 100644
--- a/src/broadcom/vulkan/v3dv_meta_copy.c
+++ b/src/broadcom/vulkan/v3dv_meta_copy.c
@@ -174,6 +174,10 @@ create_texel_buffer_copy_pipeline_layout(struct v3dv_device *device,
     * pipelines have a geometry shader. We could create 2 different pipeline
     * layouts, but this works for us for now.
     */
+#define TEXEL_BUFFER_COPY_FS_BOX_PC_OFFSET      0
+#define TEXEL_BUFFER_COPY_FS_STRIDE_PC_OFFSET  16
+#define TEXEL_BUFFER_COPY_FS_OFFSET_PC_OFFSET  20
+#define TEXEL_BUFFER_COPY_GS_LAYER_PC_OFFSET   24
    VkPushConstantRange ranges[2] = {
       { VK_SHADER_STAGE_FRAGMENT_BIT, 0, 24 },
       { VK_SHADER_STAGE_GEOMETRY_BIT, 24, 4 },
@@ -1814,7 +1818,8 @@ get_texel_buffer_copy_gs()
       /* gl_Layer from push constants */
       nir_ssa_def *layer =
          nir_load_push_constant(&b, 1, 32, nir_imm_int(&b, 0),
-                                .base = 24, .range = 4);
+                                .base = TEXEL_BUFFER_COPY_GS_LAYER_PC_OFFSET,
+                                .range = 4);
       nir_store_var(&b, gs_out_layer, layer, 0x1);
 
       nir_emit_vertex(&b, 0);
@@ -1890,15 +1895,21 @@ get_texel_buffer_copy_fs(struct v3dv_device *device, VkFormat format,
     * texel buffer.
     */
    nir_ssa_def *box =
-      nir_load_push_constant(&b, 4, 32, nir_imm_int(&b, 0), .base = 0, .range = 16);
+      nir_load_push_constant(&b, 4, 32, nir_imm_int(&b, 0),
+                             .base = TEXEL_BUFFER_COPY_FS_BOX_PC_OFFSET,
+                             .range = 16);
 
    /* Load the buffer stride (this comes in texel units) */
    nir_ssa_def *stride =
-      nir_load_push_constant(&b, 1, 32, nir_imm_int(&b, 0), .base = 16, .range = 4);
+      nir_load_push_constant(&b, 1, 32, nir_imm_int(&b, 0),
+                             .base = TEXEL_BUFFER_COPY_FS_STRIDE_PC_OFFSET,
+                             .range = 4);
 
    /* Load the buffer offset (this comes in texel units) */
    nir_ssa_def *offset =
-      nir_load_push_constant(&b, 1, 32, nir_imm_int(&b, 0), .base = 20, .range = 4);
+      nir_load_push_constant(&b, 1, 32, nir_imm_int(&b, 0),
+                             .base = TEXEL_BUFFER_COPY_FS_OFFSET_PC_OFFSET,
+                             .range = 4);
 
    nir_ssa_def *coord = nir_f2i32(&b, load_frag_coord(&b));
 



More information about the mesa-commit mailing list