Mesa (master): zink: relax tessellation shader reqs

GitLab Mirror gitlab-mirror at kemper.freedesktop.org
Thu Feb 25 14:02:35 UTC 2021


Module: Mesa
Branch: master
Commit: 190b4ad18e720b616e978aaa96c4cdc6fbcc5674
URL:    http://cgit.freedesktop.org/mesa/mesa/commit/?id=190b4ad18e720b616e978aaa96c4cdc6fbcc5674

Author: Mike Blumenkrantz <michael.blumenkrantz at gmail.com>
Date:   Tue Feb 23 14:20:10 2021 -0500

zink: relax tessellation shader reqs

vk memory model isn't actually required for tcs io semantics due
to how control barriers are emitted in GL

Reviewed-by: Dave Airlie <airlied at redhat.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9232>

---

 src/gallium/drivers/zink/nir_to_spirv/nir_to_spirv.c | 4 ++--
 src/gallium/drivers/zink/zink_screen.c               | 3 +--
 2 files changed, 3 insertions(+), 4 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 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;



More information about the mesa-commit mailing list