Mesa (main): broadcom/compiler: implement nir_intrinsic_load_view_index
GitLab Mirror
gitlab-mirror at kemper.freedesktop.org
Tue Jul 27 07:45:58 UTC 2021
Module: Mesa
Branch: main
Commit: d5acae3206d7742717a2c8c7f6da06f357b7a88b
URL: http://cgit.freedesktop.org/mesa/mesa/commit/?id=d5acae3206d7742717a2c8c7f6da06f357b7a88b
Author: Iago Toral Quiroga <itoral at igalia.com>
Date: Fri Jul 23 09:38:02 2021 +0200
broadcom/compiler: implement nir_intrinsic_load_view_index
This is used for multiview's gl_ViewIndex built-in.
Reviewed-by: Alejandro Piñeiro <apinheiro at igalia.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/12034>
---
src/broadcom/compiler/nir_to_vir.c | 5 +++++
src/broadcom/compiler/v3d_compiler.h | 5 +++++
2 files changed, 10 insertions(+)
diff --git a/src/broadcom/compiler/nir_to_vir.c b/src/broadcom/compiler/nir_to_vir.c
index 2a4dac723f6..190d7c3a2e9 100644
--- a/src/broadcom/compiler/nir_to_vir.c
+++ b/src/broadcom/compiler/nir_to_vir.c
@@ -3291,6 +3291,11 @@ ntq_emit_intrinsic(struct v3d_compile *c, nir_intrinsic_instr *instr)
unreachable("Should have been lowered");
break;
+ case nir_intrinsic_load_view_index:
+ ntq_store_dest(c, &instr->dest, 0,
+ vir_uniform(c, QUNIFORM_VIEW_INDEX, 0));
+ break;
+
default:
fprintf(stderr, "Unknown intrinsic: ");
nir_print_instr(&instr->instr, stderr);
diff --git a/src/broadcom/compiler/v3d_compiler.h b/src/broadcom/compiler/v3d_compiler.h
index c1ea346bead..125a4127fc4 100644
--- a/src/broadcom/compiler/v3d_compiler.h
+++ b/src/broadcom/compiler/v3d_compiler.h
@@ -325,6 +325,11 @@ enum quniform_contents {
* out-of-bounds accesses into the tile state during binning.
*/
QUNIFORM_FB_LAYERS,
+
+ /**
+ * Current value of gl_ViewIndex for Multiview rendering.
+ */
+ QUNIFORM_VIEW_INDEX,
};
static inline uint32_t v3d_unit_data_create(uint32_t unit, uint32_t value)
More information about the mesa-commit
mailing list