From 4c5c610f1d6025f58e3e23d13d1e370df1b41ade Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timur=20Krist=C3=B3f?= Date: Mon, 22 Feb 2021 20:16:32 +0100 Subject: [PATCH] nir: Add AMD-specific Geometry Shader related intrinsics. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Timur Kristóf Reviewed-by: Rhys Perry Part-of: --- src/compiler/nir/nir_divergence_analysis.c | 3 +++ src/compiler/nir/nir_intrinsics.py | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/src/compiler/nir/nir_divergence_analysis.c b/src/compiler/nir/nir_divergence_analysis.c index cceecfac390..a335654650e 100644 --- a/src/compiler/nir/nir_divergence_analysis.c +++ b/src/compiler/nir/nir_divergence_analysis.c @@ -141,6 +141,8 @@ visit_intrinsic(nir_shader *shader, nir_intrinsic_instr *instr) case nir_intrinsic_load_ring_tess_offchip_amd: case nir_intrinsic_load_ring_tess_factors_offset_amd: case nir_intrinsic_load_ring_tess_offchip_offset_amd: + case nir_intrinsic_load_ring_esgs_amd: + case nir_intrinsic_load_ring_es2gs_offset_amd: is_divergent = false; break; @@ -479,6 +481,7 @@ visit_intrinsic(nir_shader *shader, nir_intrinsic_instr *instr) case nir_intrinsic_elect: case nir_intrinsic_load_tlb_color_v3d: case nir_intrinsic_load_tess_rel_patch_id_amd: + case nir_intrinsic_load_gs_vertex_offset_amd: is_divergent = true; break; diff --git a/src/compiler/nir/nir_intrinsics.py b/src/compiler/nir/nir_intrinsics.py index aac932dd4e5..2688e1a24ea 100644 --- a/src/compiler/nir/nir_intrinsics.py +++ b/src/compiler/nir/nir_intrinsics.py @@ -1147,11 +1147,16 @@ system_value("ring_tess_offchip_offset_amd", 1) # Descriptor where TCS outputs are stored for the HW tessellator system_value("ring_tess_factors_amd", 4) system_value("ring_tess_factors_offset_amd", 1) +# Descriptor where ES outputs are stored for GS to read on GFX6-8 +system_value("ring_esgs_amd", 4) +system_value("ring_es2gs_offset_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 system_value("tess_rel_patch_id_amd", 1) +# Vertex offsets used for GS per-vertex inputs +system_value("gs_vertex_offset_amd", 1, [BASE]) # V3D-specific instrinc for tile buffer color reads. #