anv: Don't advertise unsupported shader stages
authorIván Briano <ivan.briano@intel.com>
Wed, 14 Jul 2021 21:37:40 +0000 (14:37 -0700)
committerMarge Bot <eric+marge@anholt.net>
Thu, 15 Jul 2021 16:32:54 +0000 (16:32 +0000)
We don't currently support mesh or ray tracing, so don't advertise their
shader stages as supported for subgroups.

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11893>

src/intel/vulkan/anv_device.c

index 55541fe..7aabda8 100644 (file)
@@ -2057,10 +2057,18 @@ anv_get_physical_device_properties_1_1(struct anv_physical_device *pdevice,
 
    p->subgroupSize = BRW_SUBGROUP_SIZE;
    VkShaderStageFlags scalar_stages = 0;
-   for (unsigned stage = 0; stage < MESA_VULKAN_SHADER_STAGES; stage++) {
+   for (unsigned stage = 0; stage < MESA_SHADER_STAGES; stage++) {
       if (pdevice->compiler->scalar_stage[stage])
          scalar_stages |= mesa_to_vk_shader_stage(stage);
    }
+   if (pdevice->vk.supported_extensions.KHR_ray_tracing_pipeline) {
+      scalar_stages |= MESA_SHADER_RAYGEN |
+                       MESA_SHADER_ANY_HIT |
+                       MESA_SHADER_CLOSEST_HIT |
+                       MESA_SHADER_MISS |
+                       MESA_SHADER_INTERSECTION |
+                       MESA_SHADER_CALLABLE;
+   }
    p->subgroupSupportedStages = scalar_stages;
    p->subgroupSupportedOperations = VK_SUBGROUP_FEATURE_BASIC_BIT |
                                     VK_SUBGROUP_FEATURE_VOTE_BIT |