From b8b3c9fa2afbe5d410c06b16591a369ff3a04137 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Sat, 17 Sep 2022 16:53:16 -0400 Subject: [PATCH] asahi: Identify pixel stride Number of bytes in a pixel in the tilebuffer, does not depend on the tile size. Signed-off-by: Alyssa Rosenzweig Part-of: --- src/asahi/lib/cmdbuf.xml | 3 ++- src/gallium/drivers/asahi/agx_state.c | 12 ++++++++---- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/asahi/lib/cmdbuf.xml b/src/asahi/lib/cmdbuf.xml index c9b2564cdc4..1791f074052 100644 --- a/src/asahi/lib/cmdbuf.xml +++ b/src/asahi/lib/cmdbuf.xml @@ -510,7 +510,8 @@ - + + diff --git a/src/gallium/drivers/asahi/agx_state.c b/src/gallium/drivers/asahi/agx_state.c index 7a324d87faf..790098f9f91 100644 --- a/src/gallium/drivers/asahi/agx_state.c +++ b/src/gallium/drivers/asahi/agx_state.c @@ -1321,7 +1321,8 @@ agx_build_pipeline(struct agx_context *ctx, struct agx_compiled_shader *cs, enum agx_usc_pack(&b, SHARED, cfg) { if (stage == PIPE_SHADER_FRAGMENT) { cfg.uses_shared_memory = true; - cfg.unk_1 = 0x10bc; + cfg.unk_1 = 0xbc; + cfg.pixel_stride_in_8_bytes = 1; cfg.shared_memory_per_threadgroup_in_256_bytes = 32; } else { cfg.unk_1 = 0x90; @@ -1368,7 +1369,8 @@ agx_build_clear_pipeline(struct agx_context *ctx, uint32_t code, uint64_t clear_ agx_usc_pack(&b, SHARED, cfg) { cfg.uses_shared_memory = true; - cfg.unk_1 = 0x10bc; + cfg.unk_1 = 0xbc; + cfg.pixel_stride_in_8_bytes = 1; cfg.shared_memory_per_threadgroup_in_256_bytes = 32; } @@ -1448,7 +1450,8 @@ agx_build_reload_pipeline(struct agx_context *ctx, uint32_t code, struct pipe_su agx_usc_pack(&b, SHARED, cfg) { cfg.uses_shared_memory = true; - cfg.unk_1 = 0x10bc; + cfg.unk_1 = 0xbc; + cfg.pixel_stride_in_8_bytes = 1; cfg.shared_memory_per_threadgroup_in_256_bytes = 32; } @@ -1486,7 +1489,8 @@ agx_build_store_pipeline(struct agx_context *ctx, uint32_t code, agx_usc_pack(&b, SHARED, cfg) { cfg.uses_shared_memory = true; - cfg.unk_1 = 0x10bc; + cfg.unk_1 = 0xbc; + cfg.pixel_stride_in_8_bytes = 1; cfg.shared_memory_per_threadgroup_in_256_bytes = 32; }