zink: don't create separate shader dsls if there are no bindings
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Wed, 5 Apr 2023 13:35:56 +0000 (09:35 -0400)
committerMarge Bot <emma+marge@anholt.net>
Thu, 20 Apr 2023 12:58:12 +0000 (12:58 +0000)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/22577>

src/gallium/drivers/zink/zink_descriptors.c

index a79580b..005891a 100644 (file)
@@ -750,7 +750,8 @@ zink_descriptor_shader_init(struct zink_screen *screen, struct zink_shader *shad
       if (shader->bindless)
          dsl[screen->desc_set_id[ZINK_DESCRIPTOR_BINDLESS]] = screen->bindless_layout;
    }
-   shader->precompile.layout = zink_pipeline_layout_create(screen, dsl, num_dsl, false, VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT);
+   if (num_bindings)
+      shader->precompile.layout = zink_pipeline_layout_create(screen, dsl, num_dsl, false, VK_PIPELINE_LAYOUT_CREATE_INDEPENDENT_SETS_BIT_EXT);
 }
 
 void