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 64dfad7cff1..c7a833c0530 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 @@ -3648,8 +3648,8 @@ 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.stage == MESA_SHADER_TESS_CTRL || s->info.num_images) { - /* this is required for correct barrier and io semantics */ + 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); diff --git a/src/gallium/drivers/zink/zink_screen.c b/src/gallium/drivers/zink/zink_screen.c index 08e29f4ed00..e13162dfa8d 100644 --- a/src/gallium/drivers/zink/zink_screen.c +++ b/src/gallium/drivers/zink/zink_screen.c @@ -535,8 +535,7 @@ zink_get_shader_param(struct pipe_screen *pscreen, return INT_MAX; case PIPE_SHADER_TESS_CTRL: case PIPE_SHADER_TESS_EVAL: - if (screen->info.have_KHR_vulkan_memory_model && - screen->info.feats.features.tessellationShader && + if (screen->info.feats.features.tessellationShader && screen->info.have_KHR_maintenance2) return INT_MAX; break;