mirror of
https://gitlab.freedesktop.org/mesa/mesa.git
synced 2025-12-24 19:40:10 +01:00
nir,ac/llvm: add nir_intrinsic_load_viewport_xy_scale_and_offset
Used by RADV/Radeonsi NGG culling. Pack them into a single vec4 load for radeonsi to reduce const buffer load. Acked-by: Marek Olšák <marek.olsak@amd.com> Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Signed-off-by: Qiang Yu <yuq825@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/17651>
This commit is contained in:
parent
1aef9c8318
commit
a19dcdf9d5
3 changed files with 4 additions and 2 deletions
|
|
@ -3573,6 +3573,7 @@ static void visit_intrinsic(struct ac_nir_context *ctx, nir_intrinsic_instr *ins
|
|||
case nir_intrinsic_load_tess_rel_patch_id_amd:
|
||||
case nir_intrinsic_load_patch_vertices_in:
|
||||
case nir_intrinsic_load_sample_mask_in:
|
||||
case nir_intrinsic_load_viewport_xy_scale_and_offset:
|
||||
case nir_intrinsic_load_ring_tess_factors_amd:
|
||||
case nir_intrinsic_load_ring_tess_offchip_amd:
|
||||
case nir_intrinsic_load_ring_tess_offchip_offset_amd:
|
||||
|
|
|
|||
|
|
@ -130,6 +130,7 @@ visit_intrinsic(nir_shader *shader, nir_intrinsic_instr *instr)
|
|||
case nir_intrinsic_load_viewport_x_offset:
|
||||
case nir_intrinsic_load_viewport_y_offset:
|
||||
case nir_intrinsic_load_viewport_z_offset:
|
||||
case nir_intrinsic_load_viewport_xy_scale_and_offset:
|
||||
case nir_intrinsic_load_blend_const_color_a_float:
|
||||
case nir_intrinsic_load_blend_const_color_b_float:
|
||||
case nir_intrinsic_load_blend_const_color_g_float:
|
||||
|
|
|
|||
|
|
@ -876,8 +876,6 @@ system_value("cull_mask", 1)
|
|||
#
|
||||
# Panfrost needs to implement all coordinate transformation in the
|
||||
# vertex shader; system values allow us to share this routine in NIR.
|
||||
#
|
||||
# RADV uses these for NGG primitive culling.
|
||||
system_value("viewport_x_scale", 1)
|
||||
system_value("viewport_y_scale", 1)
|
||||
system_value("viewport_z_scale", 1)
|
||||
|
|
@ -886,6 +884,8 @@ system_value("viewport_y_offset", 1)
|
|||
system_value("viewport_z_offset", 1)
|
||||
system_value("viewport_scale", 3)
|
||||
system_value("viewport_offset", 3)
|
||||
# Pack xy scale and offset into a vec4 load (used by AMD NGG primitive culling)
|
||||
system_value("viewport_xy_scale_and_offset", 4)
|
||||
|
||||
# Blend constant color values. Float values are clamped. Vectored versions are
|
||||
# provided as well for driver convenience
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue