nir: add intrinsics for Z calculation in shaders with FSR

Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/38996>
This commit is contained in:
Lionel Landwerlin 2025-12-18 13:47:12 +02:00 committed by Marge Bot
parent 89a53f048a
commit 98194dfa0b
2 changed files with 12 additions and 0 deletions

View file

@ -351,6 +351,9 @@ visit_intrinsic(nir_intrinsic_instr *instr, struct divergence_state *state)
case nir_intrinsic_load_constant_base_ptr:
case nir_intrinsic_load_const_buf_base_addr_lvp:
case nir_intrinsic_load_max_polygon_intel:
case nir_intrinsic_load_fs_start_intel:
case nir_intrinsic_load_fs_z_c_intel:
case nir_intrinsic_load_fs_z_c0_intel:
case nir_intrinsic_load_ray_base_mem_addr_intel:
case nir_intrinsic_load_ray_hw_stack_size_intel:
case nir_intrinsic_load_per_primitive_remap_intel:

View file

@ -2484,6 +2484,15 @@ image("store_raw_intel", src_comp=[1, 0])
# Maximum number of polygons processed in the fragment shader
system_value("max_polygon_intel", 1, bit_sizes=[32])
# Maximum number of polygons processed in the fragment shader
intel_fs_values = [
(2, "start"), # X/Y coordinate (screen space) for upper-left vertex of a triangle being rasterized
(2, "z_c"), # z_c Cx/Cy for z plane
(1, "z_c0"), # z_c0 Co for z plane
]
for v in intel_fs_values:
system_value("fs_{0}_intel".format(v[1]), v[0], bit_sizes=[32])
# Read the attribute thread payload at a given byte offset
# src[] = { offset }
load("attribute_payload_intel", [1], flags=[CAN_ELIMINATE, CAN_REORDER])