From 98bb7e10e736fe21e35cada05a77fa7541e073d4 Mon Sep 17 00:00:00 2001 From: Samuel Pitoiset Date: Wed, 31 May 2023 16:26:57 +0200 Subject: [PATCH] nir: add nir_intrinsic_load_rasterization_primitive_amd For VK_KHR_fragment_shader_barycentric, AMD needs to know the primitive topology in the fragment shader but with fast-link GPL this is unknown at compile time and it needs to be passed dynamically. Signed-off-by: Samuel Pitoiset Part-of: --- src/compiler/nir/nir_divergence_analysis.c | 1 + src/compiler/nir/nir_intrinsics.py | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/compiler/nir/nir_divergence_analysis.c b/src/compiler/nir/nir_divergence_analysis.c index 36bde0d5fef..981024cb8e7 100644 --- a/src/compiler/nir/nir_divergence_analysis.c +++ b/src/compiler/nir/nir_divergence_analysis.c @@ -211,6 +211,7 @@ visit_intrinsic(nir_shader *shader, nir_intrinsic_instr *instr) case nir_intrinsic_load_shared_uniform_block_intel: case nir_intrinsic_load_barycentric_optimize_amd: case nir_intrinsic_load_poly_line_smooth_enabled: + case nir_intrinsic_load_rasterization_primitive_amd: is_divergent = false; break; diff --git a/src/compiler/nir/nir_intrinsics.py b/src/compiler/nir/nir_intrinsics.py index 73914adbd9a..0e798c0b21f 100644 --- a/src/compiler/nir/nir_intrinsics.py +++ b/src/compiler/nir/nir_intrinsics.py @@ -1400,6 +1400,9 @@ system_value("ring_attr_offset_amd", 1) # Load provoking vertex info system_value("provoking_vtx_amd", 1) +# Load rasterization primitive +system_value("rasterization_primitive_amd", 1); + # Number of patches processed by each TCS workgroup system_value("tcs_num_patches_amd", 1) # Relative tessellation patch ID within the current workgroup