Module: Mesa
Branch: main
Commit: 9cefaa9b6d505cc542f1ea3cf886dbaee1e76851
URL:    
http://cgit.freedesktop.org/mesa/mesa/commit/?id=9cefaa9b6d505cc542f1ea3cf886dbaee1e76851

Author: Marcin Ĺšlusarz <[email protected]>
Date:   Sun May  8 02:19:35 2022 +0200

anv: check EXT_mesh_shader whenever NV_mesh_shader is checked

Reviewed-by: Caio Oliveira <[email protected]>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/18371>

---

 src/intel/vulkan/anv_blorp.c      | 3 ++-
 src/intel/vulkan/anv_cmd_buffer.c | 3 ++-
 src/intel/vulkan/anv_device.c     | 3 ++-
 src/intel/vulkan/anv_pipeline.c   | 3 ++-
 src/intel/vulkan/genX_pipeline.c  | 6 ++++--
 5 files changed, 12 insertions(+), 6 deletions(-)

diff --git a/src/intel/vulkan/anv_blorp.c b/src/intel/vulkan/anv_blorp.c
index 753b28b3b48..d4a63ecfe3f 100644
--- a/src/intel/vulkan/anv_blorp.c
+++ b/src/intel/vulkan/anv_blorp.c
@@ -88,7 +88,8 @@ void
 anv_device_init_blorp(struct anv_device *device)
 {
    const struct blorp_config config = {
-      .use_mesh_shading = 
device->physical->vk.supported_extensions.NV_mesh_shader,
+      .use_mesh_shading = 
device->physical->vk.supported_extensions.NV_mesh_shader ||
+                          
device->physical->vk.supported_extensions.EXT_mesh_shader,
    };
 
    blorp_init(&device->blorp, device, &device->isl_dev, &config);
diff --git a/src/intel/vulkan/anv_cmd_buffer.c 
b/src/intel/vulkan/anv_cmd_buffer.c
index 2adc3f296f0..b3f66f505c7 100644
--- a/src/intel/vulkan/anv_cmd_buffer.c
+++ b/src/intel/vulkan/anv_cmd_buffer.c
@@ -481,7 +481,8 @@ anv_cmd_buffer_bind_descriptor_set(struct anv_cmd_buffer 
*cmd_buffer,
    switch (bind_point) {
    case VK_PIPELINE_BIND_POINT_GRAPHICS:
       stages &= VK_SHADER_STAGE_ALL_GRAPHICS |
-                (cmd_buffer->device->vk.enabled_extensions.NV_mesh_shader ?
+                ((cmd_buffer->device->vk.enabled_extensions.NV_mesh_shader ||
+                  cmd_buffer->device->vk.enabled_extensions.EXT_mesh_shader) ?
                       (VK_SHADER_STAGE_TASK_BIT_NV |
                        VK_SHADER_STAGE_MESH_BIT_NV) : 0);
       pipe_state = &cmd_buffer->state.gfx.base;
diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c
index 5452efc2bd8..24c378aa959 100644
--- a/src/intel/vulkan/anv_device.c
+++ b/src/intel/vulkan/anv_device.c
@@ -1892,7 +1892,8 @@ anv_get_physical_device_properties_1_1(struct 
anv_physical_device *pdevice,
                        VK_SHADER_STAGE_INTERSECTION_BIT_KHR |
                        VK_SHADER_STAGE_CALLABLE_BIT_KHR;
    }
-   if (pdevice->vk.supported_extensions.NV_mesh_shader) {
+   if (pdevice->vk.supported_extensions.NV_mesh_shader ||
+       pdevice->vk.supported_extensions.EXT_mesh_shader) {
       scalar_stages |= VK_SHADER_STAGE_TASK_BIT_NV |
                        VK_SHADER_STAGE_MESH_BIT_NV;
    }
diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c
index 28c00d21ece..3b44882baa9 100644
--- a/src/intel/vulkan/anv_pipeline.c
+++ b/src/intel/vulkan/anv_pipeline.c
@@ -2052,7 +2052,8 @@ anv_graphics_pipeline_init(struct anv_graphics_pipeline 
*pipeline,
       pipeline->active_stages |= VK_SHADER_STAGE_TESSELLATION_CONTROL_BIT;
 
    if (anv_pipeline_is_mesh(pipeline))
-      assert(device->physical->vk.supported_extensions.NV_mesh_shader);
+      assert(device->physical->vk.supported_extensions.NV_mesh_shader ||
+             device->physical->vk.supported_extensions.EXT_mesh_shader);
 
    pipeline->dynamic_state.ms.sample_locations = &pipeline->sample_locations;
    vk_dynamic_graphics_state_fill(&pipeline->dynamic_state, state);
diff --git a/src/intel/vulkan/genX_pipeline.c b/src/intel/vulkan/genX_pipeline.c
index 1a30ca79931..5cb747d9b9d 100644
--- a/src/intel/vulkan/genX_pipeline.c
+++ b/src/intel/vulkan/genX_pipeline.c
@@ -281,7 +281,8 @@ genX(emit_urb_setup)(struct anv_device *device, struct 
anv_batch *batch,
       }
    }
 #if GFX_VERx10 >= 125
-   if (device->physical->vk.supported_extensions.NV_mesh_shader) {
+   if (device->physical->vk.supported_extensions.NV_mesh_shader ||
+       device->physical->vk.supported_extensions.EXT_mesh_shader) {
       anv_batch_emit(batch, GENX(3DSTATE_URB_ALLOC_MESH), zero);
       anv_batch_emit(batch, GENX(3DSTATE_URB_ALLOC_TASK), zero);
    }
@@ -2061,7 +2062,8 @@ genX(graphics_pipeline_emit)(struct anv_graphics_pipeline 
*pipeline,
 #if GFX_VERx10 >= 125
       const struct anv_device *device = pipeline->base.device;
       /* Disable Mesh. */
-      if (device->physical->vk.supported_extensions.NV_mesh_shader) {
+      if (device->physical->vk.supported_extensions.NV_mesh_shader ||
+          device->physical->vk.supported_extensions.EXT_mesh_shader) {
          anv_batch_emit(&pipeline->base.batch, GENX(3DSTATE_MESH_CONTROL), 
zero);
          anv_batch_emit(&pipeline->base.batch, GENX(3DSTATE_TASK_CONTROL), 
zero);
       }

Reply via email to