From 02c87e66e9d359c91a51d1b263073ee555627a93 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timur=20Krist=C3=B3f?= Date: Wed, 1 Jun 2022 14:32:39 +0200 Subject: [PATCH] nir: Introduce new intrinsics for AMD specific mesh shader task ring. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The mesh shader task ring is a buffer in VRAM which we will use to store some mesh shader outputs that don't fit into LDS. Signed-off-by: Timur Kristóf Reviewed-by: Samuel Pitoiset Part-of: --- src/compiler/nir/nir_divergence_analysis.c | 2 ++ src/compiler/nir/nir_intrinsics.py | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/compiler/nir/nir_divergence_analysis.c b/src/compiler/nir/nir_divergence_analysis.c index c221841c472..600a3d36092 100644 --- a/src/compiler/nir/nir_divergence_analysis.c +++ b/src/compiler/nir/nir_divergence_analysis.c @@ -146,6 +146,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_mesh_scratch_amd: + case nir_intrinsic_load_ring_mesh_scratch_offset_amd: case nir_intrinsic_load_ring_esgs_amd: case nir_intrinsic_load_ring_es2gs_offset_amd: case nir_intrinsic_load_ring_task_draw_amd: diff --git a/src/compiler/nir/nir_intrinsics.py b/src/compiler/nir/nir_intrinsics.py index 5fc4e93fd31..2276f424a8c 100644 --- a/src/compiler/nir/nir_intrinsics.py +++ b/src/compiler/nir/nir_intrinsics.py @@ -1296,6 +1296,9 @@ system_value("ring_es2gs_offset_amd", 1) system_value("ring_task_draw_amd", 4) # Address of the task shader payload ring (used for all other outputs) system_value("ring_task_payload_amd", 4) +# Address of the mesh shader scratch ring (used for excess mesh shader outputs) +system_value("ring_mesh_scratch_amd", 4) +system_value("ring_mesh_scratch_offset_amd", 1) # Pointer into the draw and payload rings system_value("task_ring_entry_amd", 1) # Pointer into the draw and payload rings