From 26baad41f15504194c1004a47bad65765213c220 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Fri, 4 Jun 2021 18:57:28 -0400 Subject: [PATCH] pan/mdg: Wire in PAN_SYSVAL_VERTEX_INSTANCE_OFFSETS If we're going to advertise the CAP, better not crash.. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/gallium/drivers/panfrost/pan_cmdstream.c | 3 +++ src/panfrost/midgard/midgard_compile.c | 9 +++++++++ 2 files changed, 12 insertions(+) diff --git a/src/gallium/drivers/panfrost/pan_cmdstream.c b/src/gallium/drivers/panfrost/pan_cmdstream.c index d401bf7..c2385ec 100644 --- a/src/gallium/drivers/panfrost/pan_cmdstream.c +++ b/src/gallium/drivers/panfrost/pan_cmdstream.c @@ -1281,6 +1281,9 @@ panfrost_emit_const_buf(struct panfrost_batch *batch, case 2: batch->ctx->base_instance_sysval_ptr = ptr; break; + case 3: + /* Spurious (Midgard doesn't pack) */ + break; default: unreachable("Invalid vertex/instance offset component\n"); } diff --git a/src/panfrost/midgard/midgard_compile.c b/src/panfrost/midgard/midgard_compile.c index 19ea671..37954c2 100644 --- a/src/panfrost/midgard/midgard_compile.c +++ b/src/panfrost/midgard/midgard_compile.c @@ -2012,11 +2012,20 @@ emit_intrinsic(compiler_context *ctx, nir_intrinsic_instr *instr) emit_global(ctx, &instr->instr, false, reg, &instr->src[1], seg); break; + case nir_intrinsic_load_first_vertex: case nir_intrinsic_load_ssbo_address: case nir_intrinsic_load_work_dim: emit_sysval_read(ctx, &instr->instr, 1, 0); break; + case nir_intrinsic_load_base_vertex: + emit_sysval_read(ctx, &instr->instr, 1, 4); + break; + + case nir_intrinsic_load_base_instance: + emit_sysval_read(ctx, &instr->instr, 1, 8); + break; + case nir_intrinsic_load_sample_positions_pan: emit_sysval_read(ctx, &instr->instr, 2, 0); break; -- 2.7.4