diff --git a/.pick_status.json b/.pick_status.json index 4cd012d018d..6ec633daa36 100644 --- a/.pick_status.json +++ b/.pick_status.json @@ -2173,7 +2173,7 @@ "description": "zink: do not require vulkan memory model for shader-images", "nominated": false, "nomination_type": null, - "resolution": 4, + "resolution": 1, "master_sha": null, "because_sha": null }, diff --git a/docs/drivers/zink.rst b/docs/drivers/zink.rst index c5203679db5..0893dc70bc1 100644 --- a/docs/drivers/zink.rst +++ b/docs/drivers/zink.rst @@ -109,7 +109,6 @@ supported: * Device extensions: * `VK_KHR_maintenance2`_ - * `VK_KHR_vulkan_memory_model` * Formats requiring ``VK_FORMAT_FEATURE_SAMPLED_IMAGE_BIT``: @@ -259,7 +258,6 @@ questions, don't hesitate to visit `#zink on FreeNode .. _VK_EXT_conditional_rendering: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_EXT_conditional_rendering.html .. _VK_EXT_vertex_attribute_divisor: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_EXT_vertex_attribute_divisor.html .. _VK_KHR_maintenance2: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_KHR_maintenance2.html -.. _VK_KHR_vulkan_memory_model: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_KHR_vulkan_memory_model.html .. _VK_KHR_shader_draw_parameters: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_KHR_shader_draw_parameters.html .. _VK_KHR_draw_indirect_count: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_KHR_draw_indirect_count.html .. _VK_KHR_sampler_mirror_clamp_to_edge: https://www.khronos.org/registry/vulkan/specs/1.2-extensions/man/html/VK_KHR_sampler_mirror_clamp_to_edge.html 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 a162eaa704e..c67ca8b081a 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 @@ -3510,14 +3510,7 @@ nir_to_spirv(struct nir_shader *s, const struct zink_so_info *so_info) ctx.GLSL_std_450 = spirv_builder_import(&ctx.builder, "GLSL.std.450"); spirv_builder_emit_source(&ctx.builder, SpvSourceLanguageUnknown, 0); - if (s->info.num_images) { - /* this is required for correct io semantics */ - spirv_builder_emit_extension(&ctx.builder, "SPV_KHR_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 if (s->info.stage == MESA_SHADER_COMPUTE) { + if (s->info.stage == MESA_SHADER_COMPUTE) { SpvAddressingModel model; if (s->info.cs.ptr_size == 32) model = SpvAddressingModelPhysical32; diff --git a/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.c b/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.c index dc9451bab2a..726c8d5387b 100644 --- a/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.c +++ b/src/gallium/drivers/zink/nir_to_spirv/spirv_builder.c @@ -1486,7 +1486,7 @@ spirv_builder_emit_memory_barrier(struct spirv_builder *b, SpvScope scope, SpvMe spirv_buffer_prepare(&b->instructions, b->mem_ctx, 3); spirv_buffer_emit_word(&b->instructions, SpvOpMemoryBarrier | (3 << 16)); spirv_buffer_emit_word(&b->instructions, spirv_builder_const_uint(b, 32, scope)); - spirv_buffer_emit_word(&b->instructions, spirv_builder_const_uint(b, 32, semantics | SpvMemorySemanticsMakeAvailableMask | SpvMemorySemanticsMakeVisibleMask)); + spirv_buffer_emit_word(&b->instructions, spirv_builder_const_uint(b, 32, semantics)); } void @@ -1496,7 +1496,7 @@ spirv_builder_emit_control_barrier(struct spirv_builder *b, SpvScope scope, SpvS spirv_buffer_emit_word(&b->instructions, SpvOpControlBarrier | (4 << 16)); spirv_buffer_emit_word(&b->instructions, spirv_builder_const_uint(b, 32, scope)); spirv_buffer_emit_word(&b->instructions, spirv_builder_const_uint(b, 32, mem_scope)); - spirv_buffer_emit_word(&b->instructions, spirv_builder_const_uint(b, 32, semantics | SpvMemorySemanticsMakeAvailableMask | SpvMemorySemanticsMakeVisibleMask)); + spirv_buffer_emit_word(&b->instructions, spirv_builder_const_uint(b, 32, semantics)); } SpvId diff --git a/src/gallium/drivers/zink/zink_device_info.py b/src/gallium/drivers/zink/zink_device_info.py index fe6f24d9988..e4ff7aecf3e 100644 --- a/src/gallium/drivers/zink/zink_device_info.py +++ b/src/gallium/drivers/zink/zink_device_info.py @@ -64,7 +64,6 @@ EXTENSIONS = [ Extension("VK_KHR_maintenance2"), Extension("VK_KHR_external_memory"), Extension("VK_KHR_external_memory_fd"), - Extension("VK_KHR_vulkan_memory_model"), Extension("VK_EXT_shader_viewport_index_layer"), Extension("VK_EXT_post_depth_coverage"), Extension("VK_KHR_driver_properties", diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index ccf1b47300b..25a49f290d6 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -748,10 +748,9 @@ zink_get_shader_param(struct pipe_screen *pscreen, return (1 << PIPE_SHADER_IR_NIR) | (1 << PIPE_SHADER_IR_TGSI); case PIPE_SHADER_CAP_MAX_SHADER_IMAGES: - if (screen->info.have_KHR_vulkan_memory_model && - (screen->info.feats.features.shaderStorageImageExtendedFormats || + if (screen->info.feats.features.shaderStorageImageExtendedFormats || (screen->info.feats.features.shaderStorageImageWriteWithoutFormat && - screen->info.feats.features.shaderStorageImageReadWithoutFormat))) + screen->info.feats.features.shaderStorageImageReadWithoutFormat)) return MIN2(screen->info.props.limits.maxPerStageDescriptorStorageImages, PIPE_MAX_SHADER_IMAGES); return 0;