From c3516861e86c486e015443f2d61adffc8a9e1b32 Mon Sep 17 00:00:00 2001 From: Karol Herbst Date: Tue, 17 Oct 2023 12:16:24 +0200 Subject: [PATCH] zink: properly alias shared memory Signed-off-by: Karol Herbst Acked-by: Mike Blumenkrantz Part-of: --- src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c b/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c index 048619f..b9d0398 100644 --- a/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c +++ b/src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c @@ -699,6 +699,12 @@ create_shared_block(struct ntv_context *ctx, unsigned bit_size) assert(ctx->num_entry_ifaces < ARRAY_SIZE(ctx->entry_ifaces)); ctx->entry_ifaces[ctx->num_entry_ifaces++] = ctx->shared_block_var[idx]; } + /* Alias our shared memory blocks */ + if (ctx->sinfo->have_workgroup_memory_explicit_layout) { + spirv_builder_emit_member_offset(&ctx->builder, block, 0, 0); + spirv_builder_emit_decoration(&ctx->builder, block, SpvDecorationBlock); + spirv_builder_emit_decoration(&ctx->builder, ctx->shared_block_var[idx], SpvDecorationAliased); + } } static SpvId -- 2.7.4