diff --git a/src/compiler/nir/nir_divergence_analysis.c b/src/compiler/nir/nir_divergence_analysis.c index f584f595af4..c4340584fd4 100644 --- a/src/compiler/nir/nir_divergence_analysis.c +++ b/src/compiler/nir/nir_divergence_analysis.c @@ -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: diff --git a/src/compiler/nir/nir_intrinsics.py b/src/compiler/nir/nir_intrinsics.py index 03baafe9939..2e713fd43bb 100644 --- a/src/compiler/nir/nir_intrinsics.py +++ b/src/compiler/nir/nir_intrinsics.py @@ -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])