nir: Add a load_sysval_nv intrinsic

Reviewed-by: Emma Anholt <emma@anholt.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/25000>
This commit is contained in:
Faith Ekstrand 2023-09-18 21:14:35 -05:00 committed by Marge Bot
parent abf3175161
commit 5984265d45
3 changed files with 7 additions and 1 deletions

View file

@ -2084,7 +2084,8 @@ nir_intrinsic_can_reorder(nir_intrinsic_instr *instr)
} else if (instr->intrinsic == nir_intrinsic_load_ssbo ||
instr->intrinsic == nir_intrinsic_bindless_image_load ||
instr->intrinsic == nir_intrinsic_image_deref_load ||
instr->intrinsic == nir_intrinsic_image_load) {
instr->intrinsic == nir_intrinsic_image_load ||
instr->intrinsic == nir_intrinsic_load_sysval_nv) {
return nir_intrinsic_access(instr) & ACCESS_CAN_REORDER;
} else {
const nir_intrinsic_info *info =

View file

@ -606,6 +606,7 @@ visit_intrinsic(nir_shader *shader, nir_intrinsic_instr *instr)
case nir_intrinsic_load_ray_hit_kind:
case nir_intrinsic_load_ray_flags:
case nir_intrinsic_load_cull_mask:
case nir_intrinsic_load_sysval_nv:
case nir_intrinsic_report_ray_intersection:
case nir_intrinsic_rq_proceed:
case nir_intrinsic_rq_load:

View file

@ -1954,6 +1954,10 @@ system_value("leaf_procedural_intel", 1, bit_sizes=[1])
system_value("btd_shader_type_intel", 1)
system_value("ray_query_global_intel", 1, bit_sizes=[64])
# NVIDIA-specific intrinsics
intrinsic("load_sysval_nv", dest_comp=1, src_comp=[], bit_sizes=[32, 64],
indices=[ACCESS, BASE], flags=[CAN_ELIMINATE])
# In order to deal with flipped render targets, gl_PointCoord may be flipped
# in the shader requiring a shader key or extra instructions or it may be
# flipped in hardware based on a state bit. This version of gl_PointCoord