From 9cefaa9b6d505cc542f1ea3cf886dbaee1e76851 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcin=20=C5=9Alusarz?= Date: Sun, 8 May 2022 02:19:35 +0200 Subject: [PATCH] anv: check EXT_mesh_shader whenever NV_mesh_shader is checked Reviewed-by: Caio Oliveira Part-of: --- 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); }