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