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)