mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2026-05-02 20:58:04 +02:00
nir: rename load_cull_small_primitives -> triangles, add load_cull_small_lines
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:
parent
0442a6c292
commit
0914e0d02f
6 changed files with 12 additions and 8 deletions
|
|
@ -91,7 +91,7 @@ cull_small_primitive_triangle(nir_builder *b, nir_def *bbox_min[2], nir_def *bbo
|
|||
{
|
||||
nir_def *prim_is_small = NULL;
|
||||
|
||||
nir_if *if_cull_small_prims = nir_push_if(b, nir_load_cull_small_primitives_enabled_amd(b));
|
||||
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);
|
||||
|
|
@ -217,7 +217,7 @@ cull_small_primitive_line(nir_builder *b, nir_def *pos[3][4],
|
|||
nir_def *prim_is_small = NULL;
|
||||
|
||||
/* Small primitive filter - eliminate lines that are too small to affect a sample. */
|
||||
nir_if *if_cull_small_prims = nir_push_if(b, nir_load_cull_small_primitives_enabled_amd(b));
|
||||
nir_if *if_cull_small_prims = nir_push_if(b, nir_load_cull_small_triangles_enabled_amd(b));
|
||||
{
|
||||
/* This only works with lines without perpendicular end caps (lines with perpendicular
|
||||
* end caps are rasterized as quads and thus can't be culled as small prims in 99% of
|
||||
|
|
|
|||
|
|
@ -222,7 +222,7 @@ lower_abi_instr(nir_builder *b, nir_intrinsic_instr *intrin, void *state)
|
|||
case nir_intrinsic_load_cull_ccw_amd:
|
||||
replacement = nggc_bool_setting(b, radv_nggc_face_is_ccw, s);
|
||||
break;
|
||||
case nir_intrinsic_load_cull_small_primitives_enabled_amd:
|
||||
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: {
|
||||
|
|
|
|||
|
|
@ -288,7 +288,8 @@ visit_intrinsic(nir_intrinsic_instr *instr, struct divergence_state *state)
|
|||
case nir_intrinsic_load_cull_front_face_enabled_amd:
|
||||
case nir_intrinsic_load_cull_back_face_enabled_amd:
|
||||
case nir_intrinsic_load_cull_ccw_amd:
|
||||
case nir_intrinsic_load_cull_small_primitives_enabled_amd:
|
||||
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_user_data_amd:
|
||||
|
|
|
|||
|
|
@ -1644,8 +1644,10 @@ intrinsic("load_cull_front_face_enabled_amd", dest_comp=1, bit_sizes=[1], flags=
|
|||
intrinsic("load_cull_back_face_enabled_amd", dest_comp=1, bit_sizes=[1], flags=[CAN_ELIMINATE])
|
||||
# True if face culling should use CCW (false if CW).
|
||||
intrinsic("load_cull_ccw_amd", dest_comp=1, bit_sizes=[1], flags=[CAN_ELIMINATE])
|
||||
# Whether the shader should cull small primitives that are not visible in a pixel.
|
||||
intrinsic("load_cull_small_primitives_enabled_amd", dest_comp=1, bit_sizes=[1], flags=[CAN_ELIMINATE])
|
||||
# Whether the shader should cull small triangles that are not visible in a pixel.
|
||||
intrinsic("load_cull_small_triangles_enabled_amd", dest_comp=1, bit_sizes=[1], flags=[CAN_ELIMINATE])
|
||||
# Whether the shader should cull small lines that are not visible in a pixel.
|
||||
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
|
||||
|
|
|
|||
|
|
@ -182,7 +182,8 @@ can_move_intrinsic(nir_intrinsic_instr *instr, opt_preamble_ctx *ctx)
|
|||
case nir_intrinsic_load_cull_front_face_enabled_amd:
|
||||
case nir_intrinsic_load_cull_back_face_enabled_amd:
|
||||
case nir_intrinsic_load_cull_ccw_amd:
|
||||
case nir_intrinsic_load_cull_small_primitives_enabled_amd:
|
||||
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_vbo_base_agx:
|
||||
|
|
|
|||
|
|
@ -417,7 +417,7 @@ static bool lower_intrinsic(nir_builder *b, nir_instr *instr, struct lower_abi_s
|
|||
replacement = nir_ishl_imm(b, small_prim_precision, 23);
|
||||
break;
|
||||
}
|
||||
case nir_intrinsic_load_cull_small_primitives_enabled_amd: {
|
||||
case nir_intrinsic_load_cull_small_triangles_enabled_amd: {
|
||||
unsigned mask = SI_NGG_CULL_LINES | SI_NGG_CULL_SMALL_LINES_DIAMOND_EXIT;
|
||||
replacement = nir_imm_bool(b, (key->ge.opt.ngg_culling & mask) != SI_NGG_CULL_LINES);
|
||||
break;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue