nir: add frag_coord_w_rcp intrinsic

This maps directly to what Intel's thread payload gives us, allowing us to
optimize out frcp's in some cases. Jay will use this.

Signed-off-by: Alyssa Rosenzweig <alyssa.rosenzweig@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Reviewed-by: Kenneth Graunke <kenneth@whitecape.org>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/40835>
This commit is contained in:
Alyssa Rosenzweig 2026-02-23 15:52:27 -05:00 committed by Marge Bot
parent 09089fdd13
commit 566047222e
3 changed files with 3 additions and 0 deletions

View file

@ -868,6 +868,7 @@ visit_intrinsic(nir_intrinsic_instr *instr, struct divergence_state *state)
case nir_intrinsic_load_frag_coord:
case nir_intrinsic_load_frag_coord_z:
case nir_intrinsic_load_frag_coord_w:
case nir_intrinsic_load_frag_coord_w_rcp:
case nir_intrinsic_load_frag_coord_unscaled_ir3:
case nir_intrinsic_load_frag_coord_gmem_ir3:
case nir_intrinsic_load_pixel_coord:

View file

@ -726,6 +726,7 @@ gather_intrinsic_info(nir_intrinsic_instr *instr, nir_shader *shader)
case nir_intrinsic_load_pixel_coord:
case nir_intrinsic_load_frag_coord_z:
case nir_intrinsic_load_frag_coord_w:
case nir_intrinsic_load_frag_coord_w_rcp:
case nir_intrinsic_load_frag_shading_rate:
case nir_intrinsic_load_fully_covered:
case nir_intrinsic_load_point_coord:

View file

@ -981,6 +981,7 @@ system_value("pixel_coord", 2, bit_sizes=[16])
# requires interpolation.
system_value("frag_coord_z", 1)
system_value("frag_coord_w", 1)
system_value("frag_coord_w_rcp", 1)
system_value("point_coord", 2)
system_value("line_coord", 1)
system_value("front_face", 1, bit_sizes=[1, 32])