From 2c8f884103382bac6ef61a401894a80d8dd31d43 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Fri, 14 Jul 2023 10:30:14 -0400 Subject: [PATCH] r600: Use nir_lower_tess_coord_xy Signed-off-by: Alyssa Rosenzweig Reviewed-by: Faith Ekstrand Part-of: --- src/gallium/drivers/r600/sfn/sfn_nir.cpp | 5 +-- src/gallium/drivers/r600/sfn/sfn_nir.h | 2 - .../r600/sfn/sfn_nir_lower_tess_io.cpp | 37 ------------------- 3 files changed, 2 insertions(+), 42 deletions(-) diff --git a/src/gallium/drivers/r600/sfn/sfn_nir.cpp b/src/gallium/drivers/r600/sfn/sfn_nir.cpp index 2f54aaa5f88..115b1df5674 100644 --- a/src/gallium/drivers/r600/sfn/sfn_nir.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_nir.cpp @@ -874,9 +874,8 @@ r600_shader_from_nir(struct r600_context *rctx, NIR_PASS_V(sh, r600_append_tcs_TF_emission, (mesa_prim)key->tcs.prim_mode); if (sh->info.stage == MESA_SHADER_TESS_EVAL) { - NIR_PASS_V(sh, - r600_lower_tess_coord, - u_tess_prim_from_shader(sh->info.tess._primitive_mode)); + NIR_PASS_V(sh, nir_lower_tess_coord_z, + sh->info.tess._primitive_mode == TESS_PRIMITIVE_TRIANGLES); } NIR_PASS_V(sh, nir_lower_alu_to_scalar, r600_lower_to_scalar_instr_filter, NULL); diff --git a/src/gallium/drivers/r600/sfn/sfn_nir.h b/src/gallium/drivers/r600/sfn/sfn_nir.h index 2e379bd9365..97e27426a21 100644 --- a/src/gallium/drivers/r600/sfn/sfn_nir.h +++ b/src/gallium/drivers/r600/sfn/sfn_nir.h @@ -107,8 +107,6 @@ bool r600_lower_tess_io(nir_shader *shader, enum mesa_prim prim_type); bool r600_append_tcs_TF_emission(nir_shader *shader, enum mesa_prim prim_type); -bool -r600_lower_tess_coord(nir_shader *sh, enum mesa_prim prim_type); bool r600_legalize_image_load_store(nir_shader *shader); diff --git a/src/gallium/drivers/r600/sfn/sfn_nir_lower_tess_io.cpp b/src/gallium/drivers/r600/sfn/sfn_nir_lower_tess_io.cpp index fba4becad91..8d1697ea179 100644 --- a/src/gallium/drivers/r600/sfn/sfn_nir_lower_tess_io.cpp +++ b/src/gallium/drivers/r600/sfn/sfn_nir_lower_tess_io.cpp @@ -640,40 +640,3 @@ r600_append_tcs_TF_emission(nir_shader *shader, enum mesa_prim prim_type) return true; } - -static bool -r600_lower_tess_coord_filter(const nir_instr *instr, UNUSED const void *_options) -{ - if (instr->type != nir_instr_type_intrinsic) - return false; - auto intr = nir_instr_as_intrinsic(instr); - return intr->intrinsic == nir_intrinsic_load_tess_coord; -} - -static nir_ssa_def * -r600_lower_tess_coord_impl(nir_builder *b, UNUSED nir_instr *instr, void *_options) -{ - mesa_prim prim_type = *(mesa_prim *)_options; - - auto tc_xy = nir_load_tess_coord_xy(b); - - auto tc_x = nir_channel(b, tc_xy, 0); - auto tc_y = nir_channel(b, tc_xy, 1); - - if (prim_type == MESA_PRIM_TRIANGLES) - return nir_vec3(b, - tc_x, - tc_y, - nir_fsub_imm(b, 1.0, nir_fadd(b, tc_x, tc_y))); - else - return nir_vec3(b, tc_x, tc_y, nir_imm_float(b, 0.0)); -} - -bool -r600_lower_tess_coord(nir_shader *sh, enum mesa_prim prim_type) -{ - return nir_shader_lower_instructions(sh, - r600_lower_tess_coord_filter, - r600_lower_tess_coord_impl, - &prim_type); -}