} 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 =
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:
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