Mesa (main): v3dv: Use nir_gen_rect_vertices
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Jul 19 13:25:20 UTC 2022
Module: Mesa
Branch: main
Commit: d316d24d745b059368e063cb5acfd6d4b713bbfd
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d316d24d745b059368e063cb5acfd6d4b713bbfd
Author: Konstantin Seurer <konstantin.seurer at gmail.com>
Date: Thu Jul 14 11:16:22 2022 +0200
v3dv: Use nir_gen_rect_vertices
Signed-off-by: Konstantin Seurer <konstantin.seurer at gmail.com>
Reviewed-by: Iago Toral Quiroga <itoral at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17535>
---
src/broadcom/vulkan/v3dv_meta_clear.c | 35 +------------------------------
src/broadcom/vulkan/v3dv_meta_copy.c | 39 ++---------------------------------
2 files changed, 3 insertions(+), 71 deletions(-)
diff --git a/src/broadcom/vulkan/v3dv_meta_clear.c b/src/broadcom/vulkan/v3dv_meta_clear.c
index a799b9e2a18..5521bdc9803 100644
--- a/src/broadcom/vulkan/v3dv_meta_clear.c
+++ b/src/broadcom/vulkan/v3dv_meta_clear.c
@@ -311,39 +311,6 @@ v3dv_meta_clear_finish(struct v3dv_device *device)
}
}
-static nir_ssa_def *
-gen_rect_vertices(nir_builder *b)
-{
- nir_ssa_def *vertex_id = nir_load_vertex_id(b);
-
- /* vertex 0: -1.0, -1.0
- * vertex 1: -1.0, 1.0
- * vertex 2: 1.0, -1.0
- * vertex 3: 1.0, 1.0
- *
- * so:
- *
- * channel 0 is vertex_id < 2 ? -1.0 : 1.0
- * channel 1 is vertex id & 1 ? 1.0 : -1.0
- */
-
- nir_ssa_def *one = nir_imm_int(b, 1);
- nir_ssa_def *c0cmp = nir_ilt(b, vertex_id, nir_imm_int(b, 2));
- nir_ssa_def *c1cmp = nir_ieq(b, nir_iand(b, vertex_id, one), one);
-
- nir_ssa_def *comp[4];
- comp[0] = nir_bcsel(b, c0cmp,
- nir_imm_float(b, -1.0f),
- nir_imm_float(b, 1.0f));
-
- comp[1] = nir_bcsel(b, c1cmp,
- nir_imm_float(b, 1.0f),
- nir_imm_float(b, -1.0f));
- comp[2] = nir_imm_float(b, 0.0f);
- comp[3] = nir_imm_float(b, 1.0f);
- return nir_vec(b, comp, 4);
-}
-
static nir_shader *
get_clear_rect_vs()
{
@@ -356,7 +323,7 @@ get_clear_rect_vs()
nir_variable_create(b.shader, nir_var_shader_out, vec4, "gl_Position");
vs_out_pos->data.location = VARYING_SLOT_POS;
- nir_ssa_def *pos = gen_rect_vertices(&b);
+ nir_ssa_def *pos = nir_gen_rect_vertices(&b, NULL, NULL);
nir_store_var(&b, vs_out_pos, pos, 0xf);
return b.shader;
diff --git a/src/broadcom/vulkan/v3dv_meta_copy.c b/src/broadcom/vulkan/v3dv_meta_copy.c
index 2306c5d4c7b..67184aa8142 100644
--- a/src/broadcom/vulkan/v3dv_meta_copy.c
+++ b/src/broadcom/vulkan/v3dv_meta_copy.c
@@ -1597,8 +1597,6 @@ create_blit_render_pass(struct v3dv_device *device,
VkRenderPass *pass_load,
VkRenderPass *pass_no_load);
-static nir_ssa_def *gen_rect_vertices(nir_builder *b);
-
static bool
create_pipeline(struct v3dv_device *device,
struct v3dv_render_pass *pass,
@@ -1623,7 +1621,7 @@ get_texel_buffer_copy_vs()
glsl_vec4_type(), "gl_Position");
vs_out_pos->data.location = VARYING_SLOT_POS;
- nir_ssa_def *pos = gen_rect_vertices(&b);
+ nir_ssa_def *pos = nir_gen_rect_vertices(&b, NULL, NULL);
nir_store_var(&b, vs_out_pos, pos, 0xf);
return b.shader;
@@ -3049,39 +3047,6 @@ create_blit_render_pass(struct v3dv_device *device,
return result == VK_SUCCESS;
}
-static nir_ssa_def *
-gen_rect_vertices(nir_builder *b)
-{
- nir_ssa_def *vertex_id = nir_load_vertex_id(b);
-
- /* vertex 0: -1.0, -1.0
- * vertex 1: -1.0, 1.0
- * vertex 2: 1.0, -1.0
- * vertex 3: 1.0, 1.0
- *
- * so:
- *
- * channel 0 is vertex_id < 2 ? -1.0 : 1.0
- * channel 1 is vertex id & 1 ? 1.0 : -1.0
- */
-
- nir_ssa_def *one = nir_imm_int(b, 1);
- nir_ssa_def *c0cmp = nir_ilt(b, vertex_id, nir_imm_int(b, 2));
- nir_ssa_def *c1cmp = nir_ieq(b, nir_iand(b, vertex_id, one), one);
-
- nir_ssa_def *comp[4];
- comp[0] = nir_bcsel(b, c0cmp,
- nir_imm_float(b, -1.0f),
- nir_imm_float(b, 1.0f));
-
- comp[1] = nir_bcsel(b, c1cmp,
- nir_imm_float(b, 1.0f),
- nir_imm_float(b, -1.0f));
- comp[2] = nir_imm_float(b, 0.0f);
- comp[3] = nir_imm_float(b, 1.0f);
- return nir_vec(b, comp, 4);
-}
-
static nir_ssa_def *
gen_tex_coords(nir_builder *b)
{
@@ -3288,7 +3253,7 @@ get_blit_vs()
vs_out_tex_coord->data.location = VARYING_SLOT_VAR0;
vs_out_tex_coord->data.interpolation = INTERP_MODE_SMOOTH;
- nir_ssa_def *pos = gen_rect_vertices(&b);
+ nir_ssa_def *pos = nir_gen_rect_vertices(&b, NULL, NULL);
nir_store_var(&b, vs_out_pos, pos, 0xf);
nir_ssa_def *tex_coord = gen_tex_coords(&b);
More information about the mesa-commit
mailing list