From 7a0c2204013cf35c274818ef3f88d0f3a70861ce Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Sat, 2 Apr 2022 15:17:52 -0400 Subject: [PATCH] asahi: Identify "set depth bias index" field Grouped together with the "set scissor index" field, which is natural. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/asahi/lib/cmdbuf.xml | 7 ++++--- src/asahi/lib/decode.c | 3 +++ src/gallium/drivers/asahi/agx_state.c | 10 +++++----- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/asahi/lib/cmdbuf.xml b/src/asahi/lib/cmdbuf.xml index 68a0ea38200..6a63bb8fddd 100644 --- a/src/asahi/lib/cmdbuf.xml +++ b/src/asahi/lib/cmdbuf.xml @@ -363,10 +363,11 @@ - - + + - + + diff --git a/src/asahi/lib/decode.c b/src/asahi/lib/decode.c index c242b4c7df4..af0517867b2 100644 --- a/src/asahi/lib/decode.c +++ b/src/asahi/lib/decode.c @@ -356,6 +356,9 @@ agxdecode_record(uint64_t va, size_t size, bool verbose) } else if (tag == 0x200000) { assert(size == AGX_CULL_LENGTH); DUMP_CL(CULL, map, "Cull"); + } else if (tag == 0x000100) { + assert(size == AGX_SET_INDEX_LENGTH); + DUMP_CL(SET_INDEX, map, "Set index"); } else if (tag == 0x800000) { assert(size == (AGX_BIND_PIPELINE_LENGTH - 4)); diff --git a/src/gallium/drivers/asahi/agx_state.c b/src/gallium/drivers/asahi/agx_state.c index 9c22e6344fd..a26de9acfc5 100644 --- a/src/gallium/drivers/asahi/agx_state.c +++ b/src/gallium/drivers/asahi/agx_state.c @@ -1450,12 +1450,12 @@ demo_unk12(struct agx_pool *pool) } static uint64_t -agx_set_scissor_index(struct agx_pool *pool, unsigned index) +agx_set_index(struct agx_pool *pool, unsigned scissor) { - struct agx_ptr T = agx_pool_alloc_aligned(pool, AGX_SET_SCISSOR_LENGTH, 64); + struct agx_ptr T = agx_pool_alloc_aligned(pool, AGX_SET_INDEX_LENGTH, 64); - agx_pack(T.cpu, SET_SCISSOR, cfg) { - cfg.index = index; + agx_pack(T.cpu, SET_INDEX, cfg) { + cfg.scissor = scissor; }; return T.gpu; @@ -1508,7 +1508,7 @@ agx_encode_state(struct agx_context *ctx, uint8_t *out, ctx->rast->base.scissor ? &ctx->scissor : NULL); agx_push_record(&out, 10, vps.viewport); - agx_push_record(&out, 2, agx_set_scissor_index(pool, vps.scissor)); + agx_push_record(&out, 2, agx_set_index(pool, vps.scissor)); } agx_push_record(&out, 3, demo_unk12(pool));