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);
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;
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;
}
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);
}
}
#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);
}
#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);
}