diff --git a/src/intel/vulkan/anv_device.c b/src/intel/vulkan/anv_device.c index 24308193953..c78f9776433 100644 --- a/src/intel/vulkan/anv_device.c +++ b/src/intel/vulkan/anv_device.c @@ -1049,6 +1049,15 @@ void anv_GetPhysicalDeviceFeatures2( break; } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_FRAGMENT_SHADER_INTERLOCK_FEATURES_EXT: { + VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT *features = + (VkPhysicalDeviceFragmentShaderInterlockFeaturesEXT *)ext; + features->fragmentShaderSampleInterlock = pdevice->info.gen >= 9; + features->fragmentShaderPixelInterlock = pdevice->info.gen >= 9; + features->fragmentShaderShadingRateInterlock = false; + break; + } + case VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_HOST_QUERY_RESET_FEATURES_EXT: { VkPhysicalDeviceHostQueryResetFeaturesEXT *features = (VkPhysicalDeviceHostQueryResetFeaturesEXT *)ext; diff --git a/src/intel/vulkan/anv_extensions.py b/src/intel/vulkan/anv_extensions.py index 2a556556b17..8468a72ab8d 100644 --- a/src/intel/vulkan/anv_extensions.py +++ b/src/intel/vulkan/anv_extensions.py @@ -130,6 +130,7 @@ EXTENSIONS = [ Extension('VK_EXT_display_surface_counter', 1, 'VK_USE_PLATFORM_DISPLAY_KHR'), Extension('VK_EXT_external_memory_dma_buf', 1, True), Extension('VK_EXT_external_memory_host', 1, True), + Extension('VK_EXT_fragment_shader_interlock', 1, 'device->info.gen >= 9'), Extension('VK_EXT_global_priority', 1, 'device->has_context_priority'), Extension('VK_EXT_host_query_reset', 1, True), diff --git a/src/intel/vulkan/anv_pipeline.c b/src/intel/vulkan/anv_pipeline.c index f244b0c991b..2a88b55a391 100644 --- a/src/intel/vulkan/anv_pipeline.c +++ b/src/intel/vulkan/anv_pipeline.c @@ -145,6 +145,8 @@ anv_shader_compile_to_nir(struct anv_device *device, .draw_parameters = true, .float16 = pdevice->info.gen >= 8, .float64 = pdevice->info.gen >= 8, + .fragment_shader_sample_interlock = pdevice->info.gen >= 9, + .fragment_shader_pixel_interlock = pdevice->info.gen >= 9, .geometry_streams = true, .image_write_without_format = true, .int8 = pdevice->info.gen >= 8,