nir: Introduce new intrinsics for AMD specific mesh shader task ring.
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 <timur.kristof@gmail.com> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/16737>
This commit is contained in:
@@ -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:
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user