From: Alyssa Rosenzweig Date: Fri, 4 Jun 2021 22:57:28 +0000 (-0400) Subject: pan/mdg: Wire in PAN_SYSVAL_VERTEX_INSTANCE_OFFSETS X-Git-Tag: upstream/21.2.3~2155 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=26baad41f15504194c1004a47bad65765213c220;p=platform%2Fupstream%2Fmesa.git 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: --- 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;