nir: rename load_cull_small_primitive_precision -> triangle, add line_precision
for radeonsi Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/31865>
This commit is contained in:
@@ -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++) {
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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:
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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) :
|
||||
|
||||
Reference in New Issue
Block a user