From 363ffa779da2eee58c57fa53074ec20521841a95 Mon Sep 17 00:00:00 2001 From: Alyssa Rosenzweig Date: Mon, 7 Nov 2022 20:01:40 -0500 Subject: [PATCH] asahi: Identify multisampling fields of shared layout Signed-off-by: Alyssa Rosenzweig Part-of: --- src/asahi/lib/cmdbuf.xml | 7 ++++--- src/gallium/drivers/asahi/agx_state.c | 28 ++++++++++++++------------- 2 files changed, 19 insertions(+), 16 deletions(-) diff --git a/src/asahi/lib/cmdbuf.xml b/src/asahi/lib/cmdbuf.xml index ef82ed15c69..e3fa7dabd1b 100644 --- a/src/asahi/lib/cmdbuf.xml +++ b/src/asahi/lib/cmdbuf.xml @@ -531,9 +531,10 @@ - - - + + + + diff --git a/src/gallium/drivers/asahi/agx_state.c b/src/gallium/drivers/asahi/agx_state.c index 5f4dc5b6ac7..6ec5dcb3fc3 100644 --- a/src/gallium/drivers/asahi/agx_state.c +++ b/src/gallium/drivers/asahi/agx_state.c @@ -1346,11 +1346,12 @@ agx_build_pipeline(struct agx_batch *batch, struct agx_compiled_shader *cs, enum agx_usc_pack(&b, SHARED, cfg) { if (stage == PIPE_SHADER_FRAGMENT) { cfg.uses_shared_memory = true; - cfg.shared_layout = AGX_SHARED_LAYOUT_32X32; - cfg.pixel_stride_in_8_bytes = 1; - cfg.shared_memory_per_threadgroup_in_256_bytes = 32; + cfg.layout = AGX_SHARED_LAYOUT_32X32; + cfg.sample_stride_in_8_bytes = 1; + cfg.bytes_per_threadgroup = 8 * 32 * 32; + cfg.sample_count = 1; } else { - cfg.shared_layout = AGX_SHARED_LAYOUT_VERTEX_COMPUTE; + cfg.layout = AGX_SHARED_LAYOUT_VERTEX_COMPUTE; } } @@ -1400,9 +1401,9 @@ agx_build_clear_pipeline(struct agx_batch *batch, uint32_t code, uint64_t clear_ agx_usc_pack(&b, SHARED, cfg) { cfg.uses_shared_memory = true; - cfg.shared_layout = AGX_SHARED_LAYOUT_32X32; - cfg.pixel_stride_in_8_bytes = 1; - cfg.shared_memory_per_threadgroup_in_256_bytes = 32; + cfg.layout = AGX_SHARED_LAYOUT_32X32; + cfg.sample_stride_in_8_bytes = 1; + cfg.bytes_per_threadgroup = 32 * 256; } agx_usc_pack(&b, SHADER, cfg) { @@ -1482,9 +1483,10 @@ agx_build_reload_pipeline(struct agx_batch *batch, uint32_t code, struct pipe_su agx_usc_pack(&b, SHARED, cfg) { cfg.uses_shared_memory = true; - cfg.shared_layout = AGX_SHARED_LAYOUT_32X32; - cfg.pixel_stride_in_8_bytes = 1; - cfg.shared_memory_per_threadgroup_in_256_bytes = 32; + cfg.layout = AGX_SHARED_LAYOUT_32X32; + cfg.sample_stride_in_8_bytes = 1; + cfg.sample_count = 1; + cfg.bytes_per_threadgroup = 8 * 32 * 32; } agx_usc_pack(&b, SHADER, cfg) { @@ -1520,9 +1522,9 @@ agx_build_store_pipeline(struct agx_batch *batch, uint32_t code, agx_usc_pack(&b, SHARED, cfg) { cfg.uses_shared_memory = true; - cfg.shared_layout = AGX_SHARED_LAYOUT_32X32; - cfg.pixel_stride_in_8_bytes = 1; - cfg.shared_memory_per_threadgroup_in_256_bytes = 32; + cfg.layout = AGX_SHARED_LAYOUT_32X32; + cfg.sample_stride_in_8_bytes = 1; + cfg.bytes_per_threadgroup = 32 * 256; } agx_usc_pack(&b, SHADER, cfg) cfg.code = code;