Mesa (main): nir: Add transform feedback system values
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Sat Jun 4 15:11:11 UTC 2022
Module: Mesa
Branch: main
Commit: 5c79d649af301283d71812df6777376284d95533
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=5c79d649af301283d71812df6777376284d95533
Author: Alyssa Rosenzweig <alyssa at collabora.com>
Date: Fri Apr 1 17:20:09 2022 -0400
nir: Add transform feedback system values
These will be used to facilitate transform feedback lowering for Panfrost,
although other backends could use the sysvals in the future.
Signed-off-by: Alyssa Rosenzweig <alyssa at collabora.com>
Reviewed-by: Jason Ekstrand <jason.ekstrand at collabora.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/15720>
---
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 11888723d56..e8f84be127b 100644
--- a/src/compiler/nir/nir_divergence_analysis.c
+++ b/src/compiler/nir/nir_divergence_analysis.c
@@ -138,6 +138,8 @@ visit_intrinsic(nir_shader *shader, nir_intrinsic_instr *instr)
case nir_intrinsic_load_blend_const_color_rgba8888_unorm:
case nir_intrinsic_load_line_width:
case nir_intrinsic_load_aa_line_width:
+ case nir_intrinsic_load_xfb_address:
+ case nir_intrinsic_load_num_vertices:
case nir_intrinsic_load_fb_layers_v3d:
case nir_intrinsic_load_tcs_num_patches_amd:
case nir_intrinsic_load_ring_tess_factors_amd:
diff --git a/src/compiler/nir/nir_intrinsics.py b/src/compiler/nir/nir_intrinsics.py
index ed9b3d0948c..98f84671ecc 100644
--- a/src/compiler/nir/nir_intrinsics.py
+++ b/src/compiler/nir/nir_intrinsics.py
@@ -807,6 +807,7 @@ system_value("workgroup_index", 1)
system_value("base_workgroup_id", 3, bit_sizes=[32, 64])
system_value("user_clip_plane", 4, indices=[UCP_ID])
system_value("num_workgroups", 3, bit_sizes=[32, 64])
+system_value("num_vertices", 1)
system_value("helper_invocation", 1, bit_sizes=[1, 32])
system_value("layer_id", 1)
system_value("view_index", 1)
@@ -836,6 +837,8 @@ system_value("scratch_base_ptr", 0, bit_sizes=[32,64], indices=[BASE])
system_value("constant_base_ptr", 0, bit_sizes=[32,64])
system_value("shared_base_ptr", 0, bit_sizes=[32,64])
system_value("global_base_ptr", 0, bit_sizes=[32,64])
+# Address of a transform feedback buffer, indexed by BASE
+system_value("xfb_address", 1, bit_sizes=[32,64], indices=[BASE])
# System values for ray tracing.
system_value("ray_launch_id", 3)
More information about the mesa-commit
mailing list