zink: pass KERNEL shaders through successfully
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Mon, 17 Oct 2022 14:11:08 +0000 (10:11 -0400)
committerMarge Bot <emma+marge@anholt.net>
Fri, 25 Aug 2023 12:03:29 +0000 (12:03 +0000)
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/24868>

src/gallium/drivers/zink/zink_compiler.c

index a29a0a0..fab15ab 100644 (file)
@@ -3052,6 +3052,7 @@ zink_get_next_stage(gl_shader_stage stage)
       return VK_SHADER_STAGE_FRAGMENT_BIT;
    case MESA_SHADER_FRAGMENT:
    case MESA_SHADER_COMPUTE:
+   case MESA_SHADER_KERNEL:
       return 0;
    default:
       unreachable("invalid shader stage");
@@ -5340,7 +5341,7 @@ zink_shader_create(struct zink_screen *screen, struct nir_shader *nir)
          } else if (var->data.mode == nir_var_mem_ssbo) {
             ztype = ZINK_DESCRIPTOR_TYPE_SSBO;
             var->data.descriptor_set = screen->desc_set_id[ztype];
-            var->data.binding = zink_binding(nir->info.stage,
+            var->data.binding = zink_binding(clamp_stage(&nir->info),
                                              VK_DESCRIPTOR_TYPE_STORAGE_BUFFER,
                                              var->data.driver_location,
                                              screen->compact_descriptors);