From 1e4deb3b8962a26e7eaffbde5688ee766b62a8b5 Mon Sep 17 00:00:00 2001 From: Emma Anholt Date: Wed, 18 Jan 2023 14:29:55 -0800 Subject: [PATCH] zink: Fix up mismatches of memory model vs addressing model. MemoryModelVulkan was left out for CSes using it. Cc: mesa-stable Part-of: --- src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) 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 9351cac..d289a49 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 @@ -4455,26 +4455,24 @@ nir_to_spirv(struct nir_shader *s, const struct zink_shader_info *sinfo, uint32_ ctx.explicit_lod = true; spirv_builder_emit_source(&ctx.builder, SpvSourceLanguageUnknown, 0); + SpvAddressingModel model = SpvAddressingModelLogical; if (gl_shader_stage_is_compute(s->info.stage)) { - SpvAddressingModel model; if (s->info.cs.ptr_size == 32) model = SpvAddressingModelPhysical32; else if (s->info.cs.ptr_size == 64) model = SpvAddressingModelPhysicalStorageBuffer64; else model = SpvAddressingModelLogical; + } + + if (ctx.sinfo->have_vulkan_memory_model) { + spirv_builder_emit_cap(&ctx.builder, SpvCapabilityVulkanMemoryModel); + spirv_builder_emit_cap(&ctx.builder, SpvCapabilityVulkanMemoryModelDeviceScope); spirv_builder_emit_mem_model(&ctx.builder, model, - SpvMemoryModelGLSL450); + SpvMemoryModelVulkan); } else { - if (ctx.sinfo->have_vulkan_memory_model) { - spirv_builder_emit_cap(&ctx.builder, SpvCapabilityVulkanMemoryModel); - spirv_builder_emit_cap(&ctx.builder, SpvCapabilityVulkanMemoryModelDeviceScope); - spirv_builder_emit_mem_model(&ctx.builder, SpvAddressingModelLogical, - SpvMemoryModelVulkan); - } else { - spirv_builder_emit_mem_model(&ctx.builder, SpvAddressingModelLogical, - SpvMemoryModelGLSL450); - } + spirv_builder_emit_mem_model(&ctx.builder, model, + SpvMemoryModelGLSL450); } if (s->info.stage == MESA_SHADER_FRAGMENT && -- 2.7.4