diff --git a/src/amd/common/ac_nir_cull.c b/src/amd/common/ac_nir_cull.c index 0ef2f662ca4..b5b318af454 100644 --- a/src/amd/common/ac_nir_cull.c +++ b/src/amd/common/ac_nir_cull.c @@ -94,7 +94,7 @@ cull_small_primitive_triangle(nir_builder *b, nir_def *bbox_min[2], nir_def *bbo nir_if *if_cull_small_prims = nir_push_if(b, nir_load_cull_small_triangles_enabled_amd(b)); { nir_def *vp = nir_load_viewport_xy_scale_and_offset(b); - nir_def *small_prim_precision = nir_load_cull_small_prim_precision_amd(b); + nir_def *small_prim_precision = nir_load_cull_small_triangle_precision_amd(b); prim_is_small = prim_is_small_else; for (unsigned chan = 0; chan < 2; ++chan) { @@ -263,7 +263,7 @@ cull_small_primitive_line(nir_builder *b, nir_def *pos[3][4], rotate_45degrees(b, v0); rotate_45degrees(b, v1); - nir_def *small_prim_precision = nir_load_cull_small_prim_precision_amd(b); + nir_def *small_prim_precision = nir_load_cull_small_triangle_precision_amd(b); nir_def *rounded_to_eq[2]; for (unsigned chan = 0; chan < 2; chan++) { diff --git a/src/amd/vulkan/nir/radv_nir_lower_abi.c b/src/amd/vulkan/nir/radv_nir_lower_abi.c index 550115587ba..5dcf73e7d6c 100644 --- a/src/amd/vulkan/nir/radv_nir_lower_abi.c +++ b/src/amd/vulkan/nir/radv_nir_lower_abi.c @@ -225,7 +225,7 @@ lower_abi_instr(nir_builder *b, nir_intrinsic_instr *intrin, void *state) case nir_intrinsic_load_cull_small_triangles_enabled_amd: replacement = nggc_bool_setting(b, radv_nggc_small_primitives, s); break; - case nir_intrinsic_load_cull_small_prim_precision_amd: { + case nir_intrinsic_load_cull_small_triangle_precision_amd: { /* To save space, only the exponent is stored in the high 8 bits. * We calculate the precision from those 8 bits: * exponent = nggc_settings >> 24 diff --git a/src/compiler/nir/nir_divergence_analysis.c b/src/compiler/nir/nir_divergence_analysis.c index 8f162582826..35fa83217a1 100644 --- a/src/compiler/nir/nir_divergence_analysis.c +++ b/src/compiler/nir/nir_divergence_analysis.c @@ -291,7 +291,8 @@ visit_intrinsic(nir_intrinsic_instr *instr, struct divergence_state *state) case nir_intrinsic_load_cull_small_triangles_enabled_amd: case nir_intrinsic_load_cull_small_lines_enabled_amd: case nir_intrinsic_load_cull_any_enabled_amd: - case nir_intrinsic_load_cull_small_prim_precision_amd: + case nir_intrinsic_load_cull_small_triangle_precision_amd: + case nir_intrinsic_load_cull_small_line_precision_amd: case nir_intrinsic_load_user_data_amd: case nir_intrinsic_load_force_vrs_rates_amd: case nir_intrinsic_load_tess_level_inner_default: diff --git a/src/compiler/nir/nir_intrinsics.py b/src/compiler/nir/nir_intrinsics.py index dcb7677eb09..08868ec60fa 100644 --- a/src/compiler/nir/nir_intrinsics.py +++ b/src/compiler/nir/nir_intrinsics.py @@ -1650,8 +1650,10 @@ intrinsic("load_cull_small_triangles_enabled_amd", dest_comp=1, bit_sizes=[1], f intrinsic("load_cull_small_lines_enabled_amd", dest_comp=1, bit_sizes=[1], flags=[CAN_ELIMINATE]) # Whether any culling setting is enabled in the shader. intrinsic("load_cull_any_enabled_amd", dest_comp=1, bit_sizes=[1], flags=[CAN_ELIMINATE]) -# Small primitive culling precision -intrinsic("load_cull_small_prim_precision_amd", dest_comp=1, bit_sizes=[32], flags=[CAN_ELIMINATE, CAN_REORDER]) +# Small triangle culling precision +intrinsic("load_cull_small_triangle_precision_amd", dest_comp=1, bit_sizes=[32], flags=[CAN_ELIMINATE, CAN_REORDER]) +# Small line culling precision +intrinsic("load_cull_small_line_precision_amd", dest_comp=1, bit_sizes=[32], flags=[CAN_ELIMINATE, CAN_REORDER]) # Initial edge flags in a Vertex Shader, packed into the format the HW needs for primitive export. intrinsic("load_initial_edgeflags_amd", src_comp=[], dest_comp=1, bit_sizes=[32], indices=[]) # Corresponds to s_sendmsg in the GCN/RDNA ISA, src[] = { m0_content }, BASE = imm diff --git a/src/compiler/nir/nir_opt_preamble.c b/src/compiler/nir/nir_opt_preamble.c index 717753ed6cc..a8134f92b92 100644 --- a/src/compiler/nir/nir_opt_preamble.c +++ b/src/compiler/nir/nir_opt_preamble.c @@ -185,7 +185,7 @@ can_move_intrinsic(nir_intrinsic_instr *instr, opt_preamble_ctx *ctx) case nir_intrinsic_load_cull_small_triangles_enabled_amd: case nir_intrinsic_load_cull_small_lines_enabled_amd: case nir_intrinsic_load_cull_any_enabled_amd: - case nir_intrinsic_load_cull_small_prim_precision_amd: + case nir_intrinsic_load_cull_small_triangle_precision_amd: case nir_intrinsic_load_vbo_base_agx: return true; diff --git a/src/gallium/drivers/radeonsi/si_nir_lower_abi.c b/src/gallium/drivers/radeonsi/si_nir_lower_abi.c index ce369a00c8d..36d545ae308 100644 --- a/src/gallium/drivers/radeonsi/si_nir_lower_abi.c +++ b/src/gallium/drivers/radeonsi/si_nir_lower_abi.c @@ -406,7 +406,7 @@ static bool lower_intrinsic(nir_builder *b, nir_instr *instr, struct lower_abi_s case nir_intrinsic_load_cull_front_face_enabled_amd: replacement = nir_imm_bool(b, key->ge.opt.ngg_culling & SI_NGG_CULL_FRONT_FACE); break; - case nir_intrinsic_load_cull_small_prim_precision_amd: { + case nir_intrinsic_load_cull_small_triangle_precision_amd: { nir_def *small_prim_precision = key->ge.opt.ngg_culling & SI_NGG_CULL_LINES ? GET_FIELD_NIR(GS_STATE_SMALL_PRIM_PRECISION_NO_AA) :