blob: 40d59741e557fc75cce35e5f1a3f9b80ec63e3a4 [file] [log] [blame]
// This file is auto-generated by vulkano autogen from vk.xml header version 1.3.238.
// It should not be edited manually. Changes should be made by editing autogen.
#[doc = r" List of extensions that are enabled or available."]
#[derive(Copy, Clone, PartialEq, Eq)]
pub struct DeviceExtensions {
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_16bit_storage.html)\n- Promoted to Vulkan 1.1\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - One of: Vulkan API version 1.1, device extension [`khr_storage_buffer_storage_class`](crate::device::DeviceExtensions::khr_storage_buffer_storage_class)"]
pub khr_16bit_storage: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_8bit_storage.html)\n- Promoted to Vulkan 1.2\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - One of: Vulkan API version 1.1, device extension [`khr_storage_buffer_storage_class`](crate::device::DeviceExtensions::khr_storage_buffer_storage_class)"]
pub khr_8bit_storage: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_acceleration_structure.html)\n- Requires:\n - Vulkan API version 1.1\n - One of: Vulkan API version 1.2, device extension [`ext_descriptor_indexing`](crate::device::DeviceExtensions::ext_descriptor_indexing)\n - One of: Vulkan API version 1.2, device extension [`khr_buffer_device_address`](crate::device::DeviceExtensions::khr_buffer_device_address)\n - device extension [`khr_deferred_host_operations`](crate::device::DeviceExtensions::khr_deferred_host_operations)"]
pub khr_acceleration_structure: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_bind_memory2.html)\n- Promoted to Vulkan 1.1"]
pub khr_bind_memory2: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_buffer_device_address.html)\n- Promoted to Vulkan 1.2\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n- Conflicts with device extension: [`ext_buffer_device_address`](crate::device::DeviceExtensions::ext_buffer_device_address)"]
pub khr_buffer_device_address: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_copy_commands2.html)\n- Promoted to Vulkan 1.3"]
pub khr_copy_commands2: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_create_renderpass2.html)\n- Promoted to Vulkan 1.2\n- Requires:\n - One of: Vulkan API version 1.1, device extension [`khr_multiview`](crate::device::DeviceExtensions::khr_multiview)\n - One of: Vulkan API version 1.1, device extension [`khr_maintenance2`](crate::device::DeviceExtensions::khr_maintenance2)"]
pub khr_create_renderpass2: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_dedicated_allocation.html)\n- Promoted to Vulkan 1.1\n- Requires:\n - One of: Vulkan API version 1.1, device extension [`khr_get_memory_requirements2`](crate::device::DeviceExtensions::khr_get_memory_requirements2)"]
pub khr_dedicated_allocation: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_deferred_host_operations.html)"]
pub khr_deferred_host_operations: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_depth_stencil_resolve.html)\n- Promoted to Vulkan 1.2\n- Requires:\n - One of: Vulkan API version 1.2, device extension [`khr_create_renderpass2`](crate::device::DeviceExtensions::khr_create_renderpass2)"]
pub khr_depth_stencil_resolve: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_descriptor_update_template.html)\n- Promoted to Vulkan 1.1"]
pub khr_descriptor_update_template: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_device_group.html)\n- Promoted to Vulkan 1.1\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_device_group_creation`](crate::instance::InstanceExtensions::khr_device_group_creation)"]
pub khr_device_group: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_display_swapchain.html)\n- Requires:\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)\n - instance extension [`khr_display`](crate::instance::InstanceExtensions::khr_display)"]
pub khr_display_swapchain: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_draw_indirect_count.html)\n- Promoted to Vulkan 1.2"]
pub khr_draw_indirect_count: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_driver_properties.html)\n- Promoted to Vulkan 1.2\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub khr_driver_properties: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_dynamic_rendering.html)\n- Promoted to Vulkan 1.3\n- Requires:\n - One of: Vulkan API version 1.2, device extension [`khr_depth_stencil_resolve`](crate::device::DeviceExtensions::khr_depth_stencil_resolve)\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub khr_dynamic_rendering: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_external_fence.html)\n- Promoted to Vulkan 1.1\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_external_fence_capabilities`](crate::instance::InstanceExtensions::khr_external_fence_capabilities)"]
pub khr_external_fence: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_external_fence_fd.html)\n- Requires:\n - One of: Vulkan API version 1.1, device extension [`khr_external_fence`](crate::device::DeviceExtensions::khr_external_fence)"]
pub khr_external_fence_fd: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_external_fence_win32.html)\n- Requires:\n - One of: Vulkan API version 1.1, device extension [`khr_external_fence`](crate::device::DeviceExtensions::khr_external_fence)"]
pub khr_external_fence_win32: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_external_memory.html)\n- Promoted to Vulkan 1.1\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_external_memory_capabilities`](crate::instance::InstanceExtensions::khr_external_memory_capabilities)"]
pub khr_external_memory: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_external_memory_fd.html)\n- Requires:\n - One of: Vulkan API version 1.1, device extension [`khr_external_memory`](crate::device::DeviceExtensions::khr_external_memory)"]
pub khr_external_memory_fd: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_external_memory_win32.html)\n- Requires:\n - One of: Vulkan API version 1.1, device extension [`khr_external_memory`](crate::device::DeviceExtensions::khr_external_memory)"]
pub khr_external_memory_win32: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_external_semaphore.html)\n- Promoted to Vulkan 1.1\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_external_semaphore_capabilities`](crate::instance::InstanceExtensions::khr_external_semaphore_capabilities)"]
pub khr_external_semaphore: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_external_semaphore_fd.html)\n- Requires:\n - One of: Vulkan API version 1.1, device extension [`khr_external_semaphore`](crate::device::DeviceExtensions::khr_external_semaphore)"]
pub khr_external_semaphore_fd: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_external_semaphore_win32.html)\n- Requires:\n - One of: Vulkan API version 1.1, device extension [`khr_external_semaphore`](crate::device::DeviceExtensions::khr_external_semaphore)"]
pub khr_external_semaphore_win32: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_format_feature_flags2.html)\n- Promoted to Vulkan 1.3\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub khr_format_feature_flags2: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_fragment_shader_barycentric.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub khr_fragment_shader_barycentric: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_fragment_shading_rate.html)\n- Requires:\n - One of: Vulkan API version 1.2, device extension [`khr_create_renderpass2`](crate::device::DeviceExtensions::khr_create_renderpass2)\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub khr_fragment_shading_rate: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_get_memory_requirements2.html)\n- Promoted to Vulkan 1.1"]
pub khr_get_memory_requirements2: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_global_priority.html)"]
pub khr_global_priority: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_image_format_list.html)\n- Promoted to Vulkan 1.2"]
pub khr_image_format_list: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_imageless_framebuffer.html)\n- Promoted to Vulkan 1.2\n- Requires:\n - One of: Vulkan API version 1.1, device extension [`khr_maintenance2`](crate::device::DeviceExtensions::khr_maintenance2)\n - One of: Vulkan API version 1.2, device extension [`khr_image_format_list`](crate::device::DeviceExtensions::khr_image_format_list)"]
pub khr_imageless_framebuffer: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_incremental_present.html)\n- Requires:\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)"]
pub khr_incremental_present: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_maintenance1.html)\n- Promoted to Vulkan 1.1"]
pub khr_maintenance1: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_maintenance2.html)\n- Promoted to Vulkan 1.1"]
pub khr_maintenance2: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_maintenance3.html)\n- Promoted to Vulkan 1.1\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub khr_maintenance3: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_maintenance4.html)\n- Promoted to Vulkan 1.3\n- Requires:\n - Vulkan API version 1.1"]
pub khr_maintenance4: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_multiview.html)\n- Promoted to Vulkan 1.1\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub khr_multiview: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_performance_query.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub khr_performance_query: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_pipeline_executable_properties.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub khr_pipeline_executable_properties: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_pipeline_library.html)"]
pub khr_pipeline_library: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_portability_subset.html)\n- Must be enabled if it is supported by the physical device\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub khr_portability_subset: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_present_id.html)\n- Requires:\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)"]
pub khr_present_id: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_present_wait.html)\n- Requires:\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)\n - device extension [`khr_present_id`](crate::device::DeviceExtensions::khr_present_id)"]
pub khr_present_wait: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_push_descriptor.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub khr_push_descriptor: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_ray_query.html)\n- Requires:\n - Vulkan API version 1.1\n - One of: Vulkan API version 1.2, device extension [`khr_spirv_1_4`](crate::device::DeviceExtensions::khr_spirv_1_4)\n - device extension [`khr_acceleration_structure`](crate::device::DeviceExtensions::khr_acceleration_structure)"]
pub khr_ray_query: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_ray_tracing_maintenance1.html)\n- Requires:\n - Vulkan API version 1.1\n - device extension [`khr_acceleration_structure`](crate::device::DeviceExtensions::khr_acceleration_structure)"]
pub khr_ray_tracing_maintenance1: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_ray_tracing_pipeline.html)\n- Requires:\n - Vulkan API version 1.1\n - One of: Vulkan API version 1.2, device extension [`khr_spirv_1_4`](crate::device::DeviceExtensions::khr_spirv_1_4)\n - device extension [`khr_acceleration_structure`](crate::device::DeviceExtensions::khr_acceleration_structure)"]
pub khr_ray_tracing_pipeline: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_relaxed_block_layout.html)\n- Promoted to Vulkan 1.1"]
pub khr_relaxed_block_layout: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_sampler_mirror_clamp_to_edge.html)\n- Promoted to Vulkan 1.2"]
pub khr_sampler_mirror_clamp_to_edge: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_sampler_ycbcr_conversion.html)\n- Promoted to Vulkan 1.1\n- Requires:\n - One of: Vulkan API version 1.1, device extension [`khr_maintenance1`](crate::device::DeviceExtensions::khr_maintenance1)\n - One of: Vulkan API version 1.1, device extension [`khr_bind_memory2`](crate::device::DeviceExtensions::khr_bind_memory2)\n - One of: Vulkan API version 1.1, device extension [`khr_get_memory_requirements2`](crate::device::DeviceExtensions::khr_get_memory_requirements2)\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub khr_sampler_ycbcr_conversion: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_separate_depth_stencil_layouts.html)\n- Promoted to Vulkan 1.2\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - One of: Vulkan API version 1.2, device extension [`khr_create_renderpass2`](crate::device::DeviceExtensions::khr_create_renderpass2)"]
pub khr_separate_depth_stencil_layouts: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_shader_atomic_int64.html)\n- Promoted to Vulkan 1.2\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub khr_shader_atomic_int64: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_shader_clock.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub khr_shader_clock: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_shader_draw_parameters.html)\n- Promoted to Vulkan 1.1"]
pub khr_shader_draw_parameters: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_shader_float16_int8.html)\n- Promoted to Vulkan 1.2\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub khr_shader_float16_int8: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_shader_float_controls.html)\n- Promoted to Vulkan 1.2\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub khr_shader_float_controls: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_shader_integer_dot_product.html)\n- Promoted to Vulkan 1.3\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub khr_shader_integer_dot_product: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_shader_non_semantic_info.html)\n- Promoted to Vulkan 1.3"]
pub khr_shader_non_semantic_info: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_shader_subgroup_extended_types.html)\n- Promoted to Vulkan 1.2\n- Requires:\n - Vulkan API version 1.1"]
pub khr_shader_subgroup_extended_types: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_shader_subgroup_uniform_control_flow.html)\n- Requires:\n - Vulkan API version 1.1"]
pub khr_shader_subgroup_uniform_control_flow: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_shader_terminate_invocation.html)\n- Promoted to Vulkan 1.3\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub khr_shader_terminate_invocation: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_shared_presentable_image.html)\n- Requires:\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - instance extension [`khr_get_surface_capabilities2`](crate::instance::InstanceExtensions::khr_get_surface_capabilities2)"]
pub khr_shared_presentable_image: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_spirv_1_4.html)\n- Promoted to Vulkan 1.2\n- Requires:\n - Vulkan API version 1.1\n - One of: Vulkan API version 1.2, device extension [`khr_shader_float_controls`](crate::device::DeviceExtensions::khr_shader_float_controls)"]
pub khr_spirv_1_4: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_storage_buffer_storage_class.html)\n- Promoted to Vulkan 1.1"]
pub khr_storage_buffer_storage_class: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_swapchain.html)\n- Requires:\n - instance extension [`khr_surface`](crate::instance::InstanceExtensions::khr_surface)"]
pub khr_swapchain: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_swapchain_mutable_format.html)\n- Requires:\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)\n - One of: Vulkan API version 1.1, device extension [`khr_maintenance2`](crate::device::DeviceExtensions::khr_maintenance2)\n - One of: Vulkan API version 1.2, device extension [`khr_image_format_list`](crate::device::DeviceExtensions::khr_image_format_list)"]
pub khr_swapchain_mutable_format: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_synchronization2.html)\n- Promoted to Vulkan 1.3\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub khr_synchronization2: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_timeline_semaphore.html)\n- Promoted to Vulkan 1.2\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub khr_timeline_semaphore: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_uniform_buffer_standard_layout.html)\n- Promoted to Vulkan 1.2\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub khr_uniform_buffer_standard_layout: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_variable_pointers.html)\n- Promoted to Vulkan 1.1\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - One of: Vulkan API version 1.1, device extension [`khr_storage_buffer_storage_class`](crate::device::DeviceExtensions::khr_storage_buffer_storage_class)"]
pub khr_variable_pointers: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_video_decode_h264.html)\n- Requires:\n - device extension [`khr_video_decode_queue`](crate::device::DeviceExtensions::khr_video_decode_queue)"]
pub khr_video_decode_h264: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_video_decode_h265.html)\n- Requires:\n - device extension [`khr_video_decode_queue`](crate::device::DeviceExtensions::khr_video_decode_queue)"]
pub khr_video_decode_h265: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_video_decode_queue.html)\n- Requires:\n - device extension [`khr_video_queue`](crate::device::DeviceExtensions::khr_video_queue)\n - One of: Vulkan API version 1.3, device extension [`khr_synchronization2`](crate::device::DeviceExtensions::khr_synchronization2)"]
pub khr_video_decode_queue: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_video_encode_queue.html)\n- Requires:\n - device extension [`khr_video_queue`](crate::device::DeviceExtensions::khr_video_queue)\n - One of: Vulkan API version 1.3, device extension [`khr_synchronization2`](crate::device::DeviceExtensions::khr_synchronization2)"]
pub khr_video_encode_queue: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_video_queue.html)\n- Requires:\n - Vulkan API version 1.1\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - One of: Vulkan API version 1.3, device extension [`khr_synchronization2`](crate::device::DeviceExtensions::khr_synchronization2)"]
pub khr_video_queue: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_vulkan_memory_model.html)\n- Promoted to Vulkan 1.2"]
pub khr_vulkan_memory_model: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_win32_keyed_mutex.html)\n- Requires:\n - device extension [`khr_external_memory_win32`](crate::device::DeviceExtensions::khr_external_memory_win32)"]
pub khr_win32_keyed_mutex: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_workgroup_memory_explicit_layout.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub khr_workgroup_memory_explicit_layout: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_zero_initialize_workgroup_memory.html)\n- Promoted to Vulkan 1.3\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub khr_zero_initialize_workgroup_memory: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_4444_formats.html)\n- Promoted to Vulkan 1.3\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_4444_formats: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_astc_decode_mode.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_astc_decode_mode: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_attachment_feedback_loop_layout.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_attachment_feedback_loop_layout: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_blend_operation_advanced.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_blend_operation_advanced: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_border_color_swizzle.html)\n- Requires:\n - device extension [`ext_custom_border_color`](crate::device::DeviceExtensions::ext_custom_border_color)"]
pub ext_border_color_swizzle: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_buffer_device_address.html)\n- Deprecated by [`khr_buffer_device_address`](crate::device::DeviceExtensions::khr_buffer_device_address)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n- Conflicts with device extension: [`khr_buffer_device_address`](crate::device::DeviceExtensions::khr_buffer_device_address)"]
pub ext_buffer_device_address: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_calibrated_timestamps.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_calibrated_timestamps: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_color_write_enable.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_color_write_enable: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_conditional_rendering.html)"]
pub ext_conditional_rendering: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_conservative_rasterization.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_conservative_rasterization: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_custom_border_color.html)"]
pub ext_custom_border_color: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_debug_marker.html)\n- Promoted to [`ext_debug_utils`](crate::instance::InstanceExtensions::ext_debug_utils)\n- Requires:\n - instance extension [`ext_debug_report`](crate::instance::InstanceExtensions::ext_debug_report)"]
pub ext_debug_marker: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_depth_clamp_zero_one.html)"]
pub ext_depth_clamp_zero_one: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_depth_clip_control.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_depth_clip_control: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_depth_clip_enable.html)"]
pub ext_depth_clip_enable: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_depth_range_unrestricted.html)"]
pub ext_depth_range_unrestricted: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_descriptor_buffer.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - One of: Vulkan API version 1.2, device extension [`khr_buffer_device_address`](crate::device::DeviceExtensions::khr_buffer_device_address)\n - One of: Vulkan API version 1.3, device extension [`khr_synchronization2`](crate::device::DeviceExtensions::khr_synchronization2)\n - One of: Vulkan API version 1.2, device extension [`ext_descriptor_indexing`](crate::device::DeviceExtensions::ext_descriptor_indexing)"]
pub ext_descriptor_buffer: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_descriptor_indexing.html)\n- Promoted to Vulkan 1.2\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - One of: Vulkan API version 1.1, device extension [`khr_maintenance3`](crate::device::DeviceExtensions::khr_maintenance3)"]
pub ext_descriptor_indexing: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_device_address_binding_report.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - instance extension [`ext_debug_utils`](crate::instance::InstanceExtensions::ext_debug_utils)"]
pub ext_device_address_binding_report: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_device_fault.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_device_fault: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_device_memory_report.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_device_memory_report: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_discard_rectangles.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_discard_rectangles: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_display_control.html)\n- Requires:\n - instance extension [`ext_display_surface_counter`](crate::instance::InstanceExtensions::ext_display_surface_counter)\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)"]
pub ext_display_control: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_extended_dynamic_state.html)\n- Promoted to Vulkan 1.3\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_extended_dynamic_state: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_extended_dynamic_state2.html)\n- Promoted to Vulkan 1.3\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_extended_dynamic_state2: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_extended_dynamic_state3.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_extended_dynamic_state3: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_external_memory_dma_buf.html)\n- Requires:\n - device extension [`khr_external_memory_fd`](crate::device::DeviceExtensions::khr_external_memory_fd)"]
pub ext_external_memory_dma_buf: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_external_memory_host.html)\n- Requires:\n - One of: Vulkan API version 1.1, device extension [`khr_external_memory`](crate::device::DeviceExtensions::khr_external_memory)"]
pub ext_external_memory_host: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_filter_cubic.html)"]
pub ext_filter_cubic: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_fragment_density_map.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_fragment_density_map: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_fragment_density_map2.html)\n- Requires:\n - device extension [`ext_fragment_density_map`](crate::device::DeviceExtensions::ext_fragment_density_map)"]
pub ext_fragment_density_map2: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_fragment_shader_interlock.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_fragment_shader_interlock: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_full_screen_exclusive.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - instance extension [`khr_surface`](crate::instance::InstanceExtensions::khr_surface)\n - instance extension [`khr_get_surface_capabilities2`](crate::instance::InstanceExtensions::khr_get_surface_capabilities2)\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)"]
pub ext_full_screen_exclusive: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_global_priority.html)\n- Promoted to [`khr_global_priority`](crate::device::DeviceExtensions::khr_global_priority)"]
pub ext_global_priority: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_global_priority_query.html)\n- Promoted to [`khr_global_priority`](crate::device::DeviceExtensions::khr_global_priority)\n- Requires:\n - One of: device extension [`khr_global_priority`](crate::device::DeviceExtensions::khr_global_priority), device extension [`ext_global_priority`](crate::device::DeviceExtensions::ext_global_priority)\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_global_priority_query: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_graphics_pipeline_library.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - device extension [`khr_pipeline_library`](crate::device::DeviceExtensions::khr_pipeline_library)"]
pub ext_graphics_pipeline_library: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_hdr_metadata.html)\n- Requires:\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)"]
pub ext_hdr_metadata: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_host_query_reset.html)\n- Promoted to Vulkan 1.2\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_host_query_reset: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_image_2d_view_of_3d.html)\n- Requires:\n - One of: Vulkan API version 1.1, device extension [`khr_maintenance1`](crate::device::DeviceExtensions::khr_maintenance1)\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_image_2d_view_of_3d: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_image_compression_control.html)"]
pub ext_image_compression_control: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_image_compression_control_swapchain.html)\n- Requires:\n - device extension [`ext_image_compression_control`](crate::device::DeviceExtensions::ext_image_compression_control)"]
pub ext_image_compression_control_swapchain: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_image_drm_format_modifier.html)\n- Requires:\n - One of: Vulkan API version 1.1, device extension [`khr_bind_memory2`](crate::device::DeviceExtensions::khr_bind_memory2)\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - One of: Vulkan API version 1.2, device extension [`khr_image_format_list`](crate::device::DeviceExtensions::khr_image_format_list)\n - One of: Vulkan API version 1.1, device extension [`khr_sampler_ycbcr_conversion`](crate::device::DeviceExtensions::khr_sampler_ycbcr_conversion)"]
pub ext_image_drm_format_modifier: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_image_robustness.html)\n- Promoted to Vulkan 1.3\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_image_robustness: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_image_view_min_lod.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_image_view_min_lod: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_index_type_uint8.html)"]
pub ext_index_type_uint8: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_inline_uniform_block.html)\n- Promoted to Vulkan 1.3\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - One of: Vulkan API version 1.1, device extension [`khr_maintenance1`](crate::device::DeviceExtensions::khr_maintenance1)"]
pub ext_inline_uniform_block: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_legacy_dithering.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_legacy_dithering: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_line_rasterization.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_line_rasterization: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_load_store_op_none.html)"]
pub ext_load_store_op_none: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_memory_budget.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_memory_budget: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_memory_priority.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_memory_priority: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_mesh_shader.html)\n- Requires:\n - Vulkan API version 1.1\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - One of: Vulkan API version 1.2, device extension [`khr_spirv_1_4`](crate::device::DeviceExtensions::khr_spirv_1_4)"]
pub ext_mesh_shader: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_metal_objects.html)"]
pub ext_metal_objects: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_multi_draw.html)"]
pub ext_multi_draw: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_multisampled_render_to_single_sampled.html)\n- Requires:\n - One of: Vulkan API version 1.2, device extension [`khr_create_renderpass2`](crate::device::DeviceExtensions::khr_create_renderpass2)\n - One of: Vulkan API version 1.2, device extension [`khr_depth_stencil_resolve`](crate::device::DeviceExtensions::khr_depth_stencil_resolve)"]
pub ext_multisampled_render_to_single_sampled: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_mutable_descriptor_type.html)\n- Requires:\n - One of: Vulkan API version 1.1, device extension [`khr_maintenance3`](crate::device::DeviceExtensions::khr_maintenance3)"]
pub ext_mutable_descriptor_type: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_non_seamless_cube_map.html)"]
pub ext_non_seamless_cube_map: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_opacity_micromap.html)\n- Requires:\n - device extension [`khr_acceleration_structure`](crate::device::DeviceExtensions::khr_acceleration_structure)\n - One of: Vulkan API version 1.3, device extension [`khr_synchronization2`](crate::device::DeviceExtensions::khr_synchronization2)"]
pub ext_opacity_micromap: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_pageable_device_local_memory.html)\n- Requires:\n - device extension [`ext_memory_priority`](crate::device::DeviceExtensions::ext_memory_priority)"]
pub ext_pageable_device_local_memory: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_pci_bus_info.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_pci_bus_info: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_physical_device_drm.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_physical_device_drm: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_pipeline_creation_cache_control.html)\n- Promoted to Vulkan 1.3"]
pub ext_pipeline_creation_cache_control: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_pipeline_creation_feedback.html)\n- Promoted to Vulkan 1.3"]
pub ext_pipeline_creation_feedback: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_pipeline_properties.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_pipeline_properties: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_pipeline_protected_access.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_pipeline_protected_access: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_pipeline_robustness.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_pipeline_robustness: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_post_depth_coverage.html)"]
pub ext_post_depth_coverage: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_primitive_topology_list_restart.html)"]
pub ext_primitive_topology_list_restart: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_primitives_generated_query.html)\n- Requires:\n - device extension [`ext_transform_feedback`](crate::device::DeviceExtensions::ext_transform_feedback)"]
pub ext_primitives_generated_query: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_private_data.html)\n- Promoted to Vulkan 1.3"]
pub ext_private_data: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_provoking_vertex.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_provoking_vertex: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_queue_family_foreign.html)\n- Requires:\n - One of: Vulkan API version 1.1, device extension [`khr_external_memory`](crate::device::DeviceExtensions::khr_external_memory)"]
pub ext_queue_family_foreign: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_rasterization_order_attachment_access.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_rasterization_order_attachment_access: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_rgba10x6_formats.html)\n- Requires:\n - One of: Vulkan API version 1.1, device extension [`khr_sampler_ycbcr_conversion`](crate::device::DeviceExtensions::khr_sampler_ycbcr_conversion)"]
pub ext_rgba10x6_formats: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_robustness2.html)"]
pub ext_robustness2: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_sample_locations.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_sample_locations: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_sampler_filter_minmax.html)\n- Promoted to Vulkan 1.2\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_sampler_filter_minmax: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_scalar_block_layout.html)\n- Promoted to Vulkan 1.2\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_scalar_block_layout: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_separate_stencil_usage.html)\n- Promoted to Vulkan 1.2"]
pub ext_separate_stencil_usage: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_shader_atomic_float.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_shader_atomic_float: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_shader_atomic_float2.html)\n- Requires:\n - device extension [`ext_shader_atomic_float`](crate::device::DeviceExtensions::ext_shader_atomic_float)"]
pub ext_shader_atomic_float2: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_shader_demote_to_helper_invocation.html)\n- Promoted to Vulkan 1.3\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_shader_demote_to_helper_invocation: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_shader_image_atomic_int64.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_shader_image_atomic_int64: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_shader_module_identifier.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - One of: Vulkan API version 1.3, device extension [`ext_pipeline_creation_cache_control`](crate::device::DeviceExtensions::ext_pipeline_creation_cache_control)"]
pub ext_shader_module_identifier: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_shader_stencil_export.html)"]
pub ext_shader_stencil_export: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_shader_subgroup_ballot.html)\n- Deprecated by Vulkan 1.2"]
pub ext_shader_subgroup_ballot: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_shader_subgroup_vote.html)\n- Deprecated by Vulkan 1.1"]
pub ext_shader_subgroup_vote: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_shader_viewport_index_layer.html)\n- Promoted to Vulkan 1.2"]
pub ext_shader_viewport_index_layer: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_subgroup_size_control.html)\n- Promoted to Vulkan 1.3\n- Requires:\n - Vulkan API version 1.1"]
pub ext_subgroup_size_control: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_subpass_merge_feedback.html)"]
pub ext_subpass_merge_feedback: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_swapchain_maintenance1.html)\n- Requires:\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)\n - instance extension [`ext_surface_maintenance1`](crate::instance::InstanceExtensions::ext_surface_maintenance1)\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_swapchain_maintenance1: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_texel_buffer_alignment.html)\n- Promoted to Vulkan 1.3\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_texel_buffer_alignment: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_texture_compression_astc_hdr.html)\n- Promoted to Vulkan 1.3\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_texture_compression_astc_hdr: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_tooling_info.html)\n- Promoted to Vulkan 1.3"]
pub ext_tooling_info: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_transform_feedback.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_transform_feedback: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_validation_cache.html)"]
pub ext_validation_cache: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_vertex_attribute_divisor.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_vertex_attribute_divisor: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_vertex_input_dynamic_state.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub ext_vertex_input_dynamic_state: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_video_encode_h264.html)\n- Requires:\n - device extension [`khr_video_encode_queue`](crate::device::DeviceExtensions::khr_video_encode_queue)"]
pub ext_video_encode_h264: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_video_encode_h265.html)\n- Requires:\n - device extension [`khr_video_encode_queue`](crate::device::DeviceExtensions::khr_video_encode_queue)"]
pub ext_video_encode_h265: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_ycbcr_2plane_444_formats.html)\n- Promoted to Vulkan 1.3\n- Requires:\n - One of: Vulkan API version 1.1, device extension [`khr_sampler_ycbcr_conversion`](crate::device::DeviceExtensions::khr_sampler_ycbcr_conversion)"]
pub ext_ycbcr_2plane_444_formats: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_ycbcr_image_arrays.html)\n- Requires:\n - One of: Vulkan API version 1.1, device extension [`khr_sampler_ycbcr_conversion`](crate::device::DeviceExtensions::khr_sampler_ycbcr_conversion)"]
pub ext_ycbcr_image_arrays: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_buffer_marker.html)"]
pub amd_buffer_marker: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_device_coherent_memory.html)"]
pub amd_device_coherent_memory: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_display_native_hdr.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - instance extension [`khr_get_surface_capabilities2`](crate::instance::InstanceExtensions::khr_get_surface_capabilities2)\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)"]
pub amd_display_native_hdr: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_draw_indirect_count.html)\n- Promoted to [`khr_draw_indirect_count`](crate::device::DeviceExtensions::khr_draw_indirect_count)"]
pub amd_draw_indirect_count: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_gcn_shader.html)"]
pub amd_gcn_shader: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_gpu_shader_half_float.html)\n- Deprecated by [`khr_shader_float16_int8`](crate::device::DeviceExtensions::khr_shader_float16_int8)"]
pub amd_gpu_shader_half_float: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_gpu_shader_int16.html)\n- Deprecated by [`khr_shader_float16_int8`](crate::device::DeviceExtensions::khr_shader_float16_int8)"]
pub amd_gpu_shader_int16: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_memory_overallocation_behavior.html)"]
pub amd_memory_overallocation_behavior: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_mixed_attachment_samples.html)"]
pub amd_mixed_attachment_samples: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_pipeline_compiler_control.html)"]
pub amd_pipeline_compiler_control: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_rasterization_order.html)"]
pub amd_rasterization_order: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_shader_ballot.html)"]
pub amd_shader_ballot: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_shader_core_properties.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub amd_shader_core_properties: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_shader_core_properties2.html)\n- Requires:\n - device extension [`amd_shader_core_properties`](crate::device::DeviceExtensions::amd_shader_core_properties)"]
pub amd_shader_core_properties2: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_shader_early_and_late_fragment_tests.html)"]
pub amd_shader_early_and_late_fragment_tests: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_shader_explicit_vertex_parameter.html)"]
pub amd_shader_explicit_vertex_parameter: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_shader_fragment_mask.html)"]
pub amd_shader_fragment_mask: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_shader_image_load_store_lod.html)"]
pub amd_shader_image_load_store_lod: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_shader_info.html)"]
pub amd_shader_info: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_shader_trinary_minmax.html)"]
pub amd_shader_trinary_minmax: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_texture_gather_bias_lod.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub amd_texture_gather_bias_lod: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_ANDROID_external_memory_android_hardware_buffer.html)\n- Requires:\n - One of: Vulkan API version 1.1, device extension [`khr_sampler_ycbcr_conversion`](crate::device::DeviceExtensions::khr_sampler_ycbcr_conversion)\n - One of: Vulkan API version 1.1, device extension [`khr_external_memory`](crate::device::DeviceExtensions::khr_external_memory)\n - device extension [`ext_queue_family_foreign`](crate::device::DeviceExtensions::ext_queue_family_foreign)\n - One of: Vulkan API version 1.1, device extension [`khr_dedicated_allocation`](crate::device::DeviceExtensions::khr_dedicated_allocation)"]
pub android_external_memory_android_hardware_buffer: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_ARM_rasterization_order_attachment_access.html)\n- Promoted to [`ext_rasterization_order_attachment_access`](crate::device::DeviceExtensions::ext_rasterization_order_attachment_access)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub arm_rasterization_order_attachment_access: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_ARM_shader_core_builtins.html)"]
pub arm_shader_core_builtins: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_FUCHSIA_buffer_collection.html)\n- Requires:\n - device extension [`fuchsia_external_memory`](crate::device::DeviceExtensions::fuchsia_external_memory)\n - One of: Vulkan API version 1.1, device extension [`khr_sampler_ycbcr_conversion`](crate::device::DeviceExtensions::khr_sampler_ycbcr_conversion)"]
pub fuchsia_buffer_collection: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_FUCHSIA_external_memory.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_external_memory_capabilities`](crate::instance::InstanceExtensions::khr_external_memory_capabilities)\n - One of: Vulkan API version 1.1, device extension [`khr_external_memory`](crate::device::DeviceExtensions::khr_external_memory)"]
pub fuchsia_external_memory: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_FUCHSIA_external_semaphore.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_external_semaphore_capabilities`](crate::instance::InstanceExtensions::khr_external_semaphore_capabilities)\n - One of: Vulkan API version 1.1, device extension [`khr_external_semaphore`](crate::device::DeviceExtensions::khr_external_semaphore)"]
pub fuchsia_external_semaphore: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_GGP_frame_token.html)\n- Requires:\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)\n - instance extension [`ggp_stream_descriptor_surface`](crate::instance::InstanceExtensions::ggp_stream_descriptor_surface)"]
pub ggp_frame_token: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_GOOGLE_decorate_string.html)"]
pub google_decorate_string: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_GOOGLE_display_timing.html)\n- Requires:\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)"]
pub google_display_timing: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_GOOGLE_hlsl_functionality1.html)"]
pub google_hlsl_functionality1: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_GOOGLE_user_type.html)"]
pub google_user_type: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_HUAWEI_invocation_mask.html)\n- Requires:\n - device extension [`khr_ray_tracing_pipeline`](crate::device::DeviceExtensions::khr_ray_tracing_pipeline)\n - One of: Vulkan API version 1.3, device extension [`khr_synchronization2`](crate::device::DeviceExtensions::khr_synchronization2)"]
pub huawei_invocation_mask: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_HUAWEI_subpass_shading.html)\n- Requires:\n - One of: Vulkan API version 1.2, device extension [`khr_create_renderpass2`](crate::device::DeviceExtensions::khr_create_renderpass2)\n - One of: Vulkan API version 1.3, device extension [`khr_synchronization2`](crate::device::DeviceExtensions::khr_synchronization2)"]
pub huawei_subpass_shading: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_IMG_filter_cubic.html)"]
pub img_filter_cubic: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_IMG_format_pvrtc.html)\n- Deprecated without a replacement"]
pub img_format_pvrtc: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_INTEL_performance_query.html)"]
pub intel_performance_query: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_INTEL_shader_integer_functions2.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub intel_shader_integer_functions2: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NVX_binary_import.html)"]
pub nvx_binary_import: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NVX_image_view_handle.html)"]
pub nvx_image_view_handle: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NVX_multiview_per_view_attributes.html)\n- Requires:\n - One of: Vulkan API version 1.1, device extension [`khr_multiview`](crate::device::DeviceExtensions::khr_multiview)"]
pub nvx_multiview_per_view_attributes: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_acquire_winrt_display.html)\n- Requires:\n - instance extension [`ext_direct_mode_display`](crate::instance::InstanceExtensions::ext_direct_mode_display)"]
pub nv_acquire_winrt_display: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_clip_space_w_scaling.html)"]
pub nv_clip_space_w_scaling: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_compute_shader_derivatives.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub nv_compute_shader_derivatives: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_cooperative_matrix.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub nv_cooperative_matrix: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_copy_memory_indirect.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - One of: Vulkan API version 1.2, device extension [`khr_buffer_device_address`](crate::device::DeviceExtensions::khr_buffer_device_address)"]
pub nv_copy_memory_indirect: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_corner_sampled_image.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub nv_corner_sampled_image: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_coverage_reduction_mode.html)\n- Requires:\n - device extension [`nv_framebuffer_mixed_samples`](crate::device::DeviceExtensions::nv_framebuffer_mixed_samples)"]
pub nv_coverage_reduction_mode: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_dedicated_allocation.html)\n- Deprecated by [`khr_dedicated_allocation`](crate::device::DeviceExtensions::khr_dedicated_allocation)"]
pub nv_dedicated_allocation: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_dedicated_allocation_image_aliasing.html)\n- Requires:\n - One of: Vulkan API version 1.1, device extension [`khr_dedicated_allocation`](crate::device::DeviceExtensions::khr_dedicated_allocation)"]
pub nv_dedicated_allocation_image_aliasing: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_device_diagnostic_checkpoints.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub nv_device_diagnostic_checkpoints: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_device_diagnostics_config.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub nv_device_diagnostics_config: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_device_generated_commands.html)\n- Requires:\n - Vulkan API version 1.1\n - One of: Vulkan API version 1.2, device extension [`khr_buffer_device_address`](crate::device::DeviceExtensions::khr_buffer_device_address)"]
pub nv_device_generated_commands: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_external_memory.html)\n- Deprecated by [`khr_external_memory`](crate::device::DeviceExtensions::khr_external_memory)\n- Requires:\n - instance extension [`nv_external_memory_capabilities`](crate::instance::InstanceExtensions::nv_external_memory_capabilities)"]
pub nv_external_memory: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_external_memory_rdma.html)\n- Requires:\n - One of: Vulkan API version 1.1, device extension [`khr_external_memory`](crate::device::DeviceExtensions::khr_external_memory)"]
pub nv_external_memory_rdma: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_external_memory_win32.html)\n- Deprecated by [`khr_external_memory_win32`](crate::device::DeviceExtensions::khr_external_memory_win32)\n- Requires:\n - device extension [`nv_external_memory`](crate::device::DeviceExtensions::nv_external_memory)"]
pub nv_external_memory_win32: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_fill_rectangle.html)"]
pub nv_fill_rectangle: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_fragment_coverage_to_color.html)"]
pub nv_fragment_coverage_to_color: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_fragment_shader_barycentric.html)\n- Promoted to [`khr_fragment_shader_barycentric`](crate::device::DeviceExtensions::khr_fragment_shader_barycentric)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub nv_fragment_shader_barycentric: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_fragment_shading_rate_enums.html)\n- Requires:\n - device extension [`khr_fragment_shading_rate`](crate::device::DeviceExtensions::khr_fragment_shading_rate)"]
pub nv_fragment_shading_rate_enums: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_framebuffer_mixed_samples.html)"]
pub nv_framebuffer_mixed_samples: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_geometry_shader_passthrough.html)"]
pub nv_geometry_shader_passthrough: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_glsl_shader.html)\n- Deprecated without a replacement"]
pub nv_glsl_shader: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_inherited_viewport_scissor.html)"]
pub nv_inherited_viewport_scissor: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_linear_color_attachment.html)"]
pub nv_linear_color_attachment: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_memory_decompression.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - One of: Vulkan API version 1.2, device extension [`khr_buffer_device_address`](crate::device::DeviceExtensions::khr_buffer_device_address)"]
pub nv_memory_decompression: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_mesh_shader.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub nv_mesh_shader: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_optical_flow.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - One of: Vulkan API version 1.3, device extension [`khr_format_feature_flags2`](crate::device::DeviceExtensions::khr_format_feature_flags2)\n - One of: Vulkan API version 1.3, device extension [`khr_synchronization2`](crate::device::DeviceExtensions::khr_synchronization2)"]
pub nv_optical_flow: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_present_barrier.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - instance extension [`khr_surface`](crate::instance::InstanceExtensions::khr_surface)\n - instance extension [`khr_get_surface_capabilities2`](crate::instance::InstanceExtensions::khr_get_surface_capabilities2)\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)"]
pub nv_present_barrier: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_ray_tracing.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - One of: Vulkan API version 1.1, device extension [`khr_get_memory_requirements2`](crate::device::DeviceExtensions::khr_get_memory_requirements2)"]
pub nv_ray_tracing: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_ray_tracing_invocation_reorder.html)\n- Requires:\n - device extension [`khr_ray_tracing_pipeline`](crate::device::DeviceExtensions::khr_ray_tracing_pipeline)"]
pub nv_ray_tracing_invocation_reorder: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_ray_tracing_motion_blur.html)\n- Requires:\n - device extension [`khr_ray_tracing_pipeline`](crate::device::DeviceExtensions::khr_ray_tracing_pipeline)"]
pub nv_ray_tracing_motion_blur: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_representative_fragment_test.html)"]
pub nv_representative_fragment_test: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_sample_mask_override_coverage.html)"]
pub nv_sample_mask_override_coverage: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_scissor_exclusive.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub nv_scissor_exclusive: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_shader_image_footprint.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub nv_shader_image_footprint: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_shader_sm_builtins.html)\n- Requires:\n - Vulkan API version 1.1"]
pub nv_shader_sm_builtins: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_shader_subgroup_partitioned.html)\n- Requires:\n - Vulkan API version 1.1"]
pub nv_shader_subgroup_partitioned: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_shading_rate_image.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub nv_shading_rate_image: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_viewport_array2.html)"]
pub nv_viewport_array2: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_viewport_swizzle.html)"]
pub nv_viewport_swizzle: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_win32_keyed_mutex.html)\n- Promoted to [`khr_win32_keyed_mutex`](crate::device::DeviceExtensions::khr_win32_keyed_mutex)\n- Requires:\n - device extension [`nv_external_memory_win32`](crate::device::DeviceExtensions::nv_external_memory_win32)"]
pub nv_win32_keyed_mutex: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_QCOM_fragment_density_map_offset.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - device extension [`ext_fragment_density_map`](crate::device::DeviceExtensions::ext_fragment_density_map)"]
pub qcom_fragment_density_map_offset: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_QCOM_image_processing.html)\n- Requires:\n - One of: Vulkan API version 1.3, device extension [`khr_format_feature_flags2`](crate::device::DeviceExtensions::khr_format_feature_flags2)"]
pub qcom_image_processing: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_QCOM_multiview_per_view_viewports.html)"]
pub qcom_multiview_per_view_viewports: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_QCOM_render_pass_shader_resolve.html)"]
pub qcom_render_pass_shader_resolve: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_QCOM_render_pass_store_ops.html)"]
pub qcom_render_pass_store_ops: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_QCOM_render_pass_transform.html)\n- Requires:\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)\n - instance extension [`khr_surface`](crate::instance::InstanceExtensions::khr_surface)"]
pub qcom_render_pass_transform: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_QCOM_rotated_copy_commands.html)\n- Requires:\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)\n - One of: Vulkan API version 1.3, device extension [`khr_copy_commands2`](crate::device::DeviceExtensions::khr_copy_commands2)"]
pub qcom_rotated_copy_commands: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_QCOM_tile_properties.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub qcom_tile_properties: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_SEC_amigo_profiling.html)\n- Requires:\n - One of: Vulkan API version 1.1, instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
pub sec_amigo_profiling: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_VALVE_descriptor_set_host_mapping.html)"]
pub valve_descriptor_set_host_mapping: bool,
#[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_VALVE_mutable_descriptor_type.html)\n- Promoted to [`ext_mutable_descriptor_type`](crate::device::DeviceExtensions::ext_mutable_descriptor_type)\n- Requires:\n - One of: Vulkan API version 1.1, device extension [`khr_maintenance3`](crate::device::DeviceExtensions::khr_maintenance3)"]
pub valve_mutable_descriptor_type: bool,
pub _ne: crate::NonExhaustive,
}
impl Default for DeviceExtensions {
#[inline]
fn default() -> Self {
Self::empty()
}
}
impl DeviceExtensions {
#[doc = r" Returns an `Extensions` object with none of the members set."]
#[inline]
pub const fn empty() -> Self {
Self {
khr_16bit_storage: false,
khr_8bit_storage: false,
khr_acceleration_structure: false,
khr_bind_memory2: false,
khr_buffer_device_address: false,
khr_copy_commands2: false,
khr_create_renderpass2: false,
khr_dedicated_allocation: false,
khr_deferred_host_operations: false,
khr_depth_stencil_resolve: false,
khr_descriptor_update_template: false,
khr_device_group: false,
khr_display_swapchain: false,
khr_draw_indirect_count: false,
khr_driver_properties: false,
khr_dynamic_rendering: false,
khr_external_fence: false,
khr_external_fence_fd: false,
khr_external_fence_win32: false,
khr_external_memory: false,
khr_external_memory_fd: false,
khr_external_memory_win32: false,
khr_external_semaphore: false,
khr_external_semaphore_fd: false,
khr_external_semaphore_win32: false,
khr_format_feature_flags2: false,
khr_fragment_shader_barycentric: false,
khr_fragment_shading_rate: false,
khr_get_memory_requirements2: false,
khr_global_priority: false,
khr_image_format_list: false,
khr_imageless_framebuffer: false,
khr_incremental_present: false,
khr_maintenance1: false,
khr_maintenance2: false,
khr_maintenance3: false,
khr_maintenance4: false,
khr_multiview: false,
khr_performance_query: false,
khr_pipeline_executable_properties: false,
khr_pipeline_library: false,
khr_portability_subset: false,
khr_present_id: false,
khr_present_wait: false,
khr_push_descriptor: false,
khr_ray_query: false,
khr_ray_tracing_maintenance1: false,
khr_ray_tracing_pipeline: false,
khr_relaxed_block_layout: false,
khr_sampler_mirror_clamp_to_edge: false,
khr_sampler_ycbcr_conversion: false,
khr_separate_depth_stencil_layouts: false,
khr_shader_atomic_int64: false,
khr_shader_clock: false,
khr_shader_draw_parameters: false,
khr_shader_float16_int8: false,
khr_shader_float_controls: false,
khr_shader_integer_dot_product: false,
khr_shader_non_semantic_info: false,
khr_shader_subgroup_extended_types: false,
khr_shader_subgroup_uniform_control_flow: false,
khr_shader_terminate_invocation: false,
khr_shared_presentable_image: false,
khr_spirv_1_4: false,
khr_storage_buffer_storage_class: false,
khr_swapchain: false,
khr_swapchain_mutable_format: false,
khr_synchronization2: false,
khr_timeline_semaphore: false,
khr_uniform_buffer_standard_layout: false,
khr_variable_pointers: false,
khr_video_decode_h264: false,
khr_video_decode_h265: false,
khr_video_decode_queue: false,
khr_video_encode_queue: false,
khr_video_queue: false,
khr_vulkan_memory_model: false,
khr_win32_keyed_mutex: false,
khr_workgroup_memory_explicit_layout: false,
khr_zero_initialize_workgroup_memory: false,
ext_4444_formats: false,
ext_astc_decode_mode: false,
ext_attachment_feedback_loop_layout: false,
ext_blend_operation_advanced: false,
ext_border_color_swizzle: false,
ext_buffer_device_address: false,
ext_calibrated_timestamps: false,
ext_color_write_enable: false,
ext_conditional_rendering: false,
ext_conservative_rasterization: false,
ext_custom_border_color: false,
ext_debug_marker: false,
ext_depth_clamp_zero_one: false,
ext_depth_clip_control: false,
ext_depth_clip_enable: false,
ext_depth_range_unrestricted: false,
ext_descriptor_buffer: false,
ext_descriptor_indexing: false,
ext_device_address_binding_report: false,
ext_device_fault: false,
ext_device_memory_report: false,
ext_discard_rectangles: false,
ext_display_control: false,
ext_extended_dynamic_state: false,
ext_extended_dynamic_state2: false,
ext_extended_dynamic_state3: false,
ext_external_memory_dma_buf: false,
ext_external_memory_host: false,
ext_filter_cubic: false,
ext_fragment_density_map: false,
ext_fragment_density_map2: false,
ext_fragment_shader_interlock: false,
ext_full_screen_exclusive: false,
ext_global_priority: false,
ext_global_priority_query: false,
ext_graphics_pipeline_library: false,
ext_hdr_metadata: false,
ext_host_query_reset: false,
ext_image_2d_view_of_3d: false,
ext_image_compression_control: false,
ext_image_compression_control_swapchain: false,
ext_image_drm_format_modifier: false,
ext_image_robustness: false,
ext_image_view_min_lod: false,
ext_index_type_uint8: false,
ext_inline_uniform_block: false,
ext_legacy_dithering: false,
ext_line_rasterization: false,
ext_load_store_op_none: false,
ext_memory_budget: false,
ext_memory_priority: false,
ext_mesh_shader: false,
ext_metal_objects: false,
ext_multi_draw: false,
ext_multisampled_render_to_single_sampled: false,
ext_mutable_descriptor_type: false,
ext_non_seamless_cube_map: false,
ext_opacity_micromap: false,
ext_pageable_device_local_memory: false,
ext_pci_bus_info: false,
ext_physical_device_drm: false,
ext_pipeline_creation_cache_control: false,
ext_pipeline_creation_feedback: false,
ext_pipeline_properties: false,
ext_pipeline_protected_access: false,
ext_pipeline_robustness: false,
ext_post_depth_coverage: false,
ext_primitive_topology_list_restart: false,
ext_primitives_generated_query: false,
ext_private_data: false,
ext_provoking_vertex: false,
ext_queue_family_foreign: false,
ext_rasterization_order_attachment_access: false,
ext_rgba10x6_formats: false,
ext_robustness2: false,
ext_sample_locations: false,
ext_sampler_filter_minmax: false,
ext_scalar_block_layout: false,
ext_separate_stencil_usage: false,
ext_shader_atomic_float: false,
ext_shader_atomic_float2: false,
ext_shader_demote_to_helper_invocation: false,
ext_shader_image_atomic_int64: false,
ext_shader_module_identifier: false,
ext_shader_stencil_export: false,
ext_shader_subgroup_ballot: false,
ext_shader_subgroup_vote: false,
ext_shader_viewport_index_layer: false,
ext_subgroup_size_control: false,
ext_subpass_merge_feedback: false,
ext_swapchain_maintenance1: false,
ext_texel_buffer_alignment: false,
ext_texture_compression_astc_hdr: false,
ext_tooling_info: false,
ext_transform_feedback: false,
ext_validation_cache: false,
ext_vertex_attribute_divisor: false,
ext_vertex_input_dynamic_state: false,
ext_video_encode_h264: false,
ext_video_encode_h265: false,
ext_ycbcr_2plane_444_formats: false,
ext_ycbcr_image_arrays: false,
amd_buffer_marker: false,
amd_device_coherent_memory: false,
amd_display_native_hdr: false,
amd_draw_indirect_count: false,
amd_gcn_shader: false,
amd_gpu_shader_half_float: false,
amd_gpu_shader_int16: false,
amd_memory_overallocation_behavior: false,
amd_mixed_attachment_samples: false,
amd_pipeline_compiler_control: false,
amd_rasterization_order: false,
amd_shader_ballot: false,
amd_shader_core_properties: false,
amd_shader_core_properties2: false,
amd_shader_early_and_late_fragment_tests: false,
amd_shader_explicit_vertex_parameter: false,
amd_shader_fragment_mask: false,
amd_shader_image_load_store_lod: false,
amd_shader_info: false,
amd_shader_trinary_minmax: false,
amd_texture_gather_bias_lod: false,
android_external_memory_android_hardware_buffer: false,
arm_rasterization_order_attachment_access: false,
arm_shader_core_builtins: false,
fuchsia_buffer_collection: false,
fuchsia_external_memory: false,
fuchsia_external_semaphore: false,
ggp_frame_token: false,
google_decorate_string: false,
google_display_timing: false,
google_hlsl_functionality1: false,
google_user_type: false,
huawei_invocation_mask: false,
huawei_subpass_shading: false,
img_filter_cubic: false,
img_format_pvrtc: false,
intel_performance_query: false,
intel_shader_integer_functions2: false,
nvx_binary_import: false,
nvx_image_view_handle: false,
nvx_multiview_per_view_attributes: false,
nv_acquire_winrt_display: false,
nv_clip_space_w_scaling: false,
nv_compute_shader_derivatives: false,
nv_cooperative_matrix: false,
nv_copy_memory_indirect: false,
nv_corner_sampled_image: false,
nv_coverage_reduction_mode: false,
nv_dedicated_allocation: false,
nv_dedicated_allocation_image_aliasing: false,
nv_device_diagnostic_checkpoints: false,
nv_device_diagnostics_config: false,
nv_device_generated_commands: false,
nv_external_memory: false,
nv_external_memory_rdma: false,
nv_external_memory_win32: false,
nv_fill_rectangle: false,
nv_fragment_coverage_to_color: false,
nv_fragment_shader_barycentric: false,
nv_fragment_shading_rate_enums: false,
nv_framebuffer_mixed_samples: false,
nv_geometry_shader_passthrough: false,
nv_glsl_shader: false,
nv_inherited_viewport_scissor: false,
nv_linear_color_attachment: false,
nv_memory_decompression: false,
nv_mesh_shader: false,
nv_optical_flow: false,
nv_present_barrier: false,
nv_ray_tracing: false,
nv_ray_tracing_invocation_reorder: false,
nv_ray_tracing_motion_blur: false,
nv_representative_fragment_test: false,
nv_sample_mask_override_coverage: false,
nv_scissor_exclusive: false,
nv_shader_image_footprint: false,
nv_shader_sm_builtins: false,
nv_shader_subgroup_partitioned: false,
nv_shading_rate_image: false,
nv_viewport_array2: false,
nv_viewport_swizzle: false,
nv_win32_keyed_mutex: false,
qcom_fragment_density_map_offset: false,
qcom_image_processing: false,
qcom_multiview_per_view_viewports: false,
qcom_render_pass_shader_resolve: false,
qcom_render_pass_store_ops: false,
qcom_render_pass_transform: false,
qcom_rotated_copy_commands: false,
qcom_tile_properties: false,
sec_amigo_profiling: false,
valve_descriptor_set_host_mapping: false,
valve_mutable_descriptor_type: false,
_ne: crate::NonExhaustive(()),
}
}
#[doc = r" Returns an `Extensions` object with none of the members set."]
#[deprecated(since = "0.31.0", note = "Use `empty` instead.")]
#[inline]
pub const fn none() -> Self {
Self::empty()
}
#[doc = r" Returns whether any members are set in both `self` and `other`."]
#[inline]
pub const fn intersects(&self, other: &Self) -> bool {
(self.khr_16bit_storage && other.khr_16bit_storage)
|| (self.khr_8bit_storage && other.khr_8bit_storage)
|| (self.khr_acceleration_structure && other.khr_acceleration_structure)
|| (self.khr_bind_memory2 && other.khr_bind_memory2)
|| (self.khr_buffer_device_address && other.khr_buffer_device_address)
|| (self.khr_copy_commands2 && other.khr_copy_commands2)
|| (self.khr_create_renderpass2 && other.khr_create_renderpass2)
|| (self.khr_dedicated_allocation && other.khr_dedicated_allocation)
|| (self.khr_deferred_host_operations && other.khr_deferred_host_operations)
|| (self.khr_depth_stencil_resolve && other.khr_depth_stencil_resolve)
|| (self.khr_descriptor_update_template && other.khr_descriptor_update_template)
|| (self.khr_device_group && other.khr_device_group)
|| (self.khr_display_swapchain && other.khr_display_swapchain)
|| (self.khr_draw_indirect_count && other.khr_draw_indirect_count)
|| (self.khr_driver_properties && other.khr_driver_properties)
|| (self.khr_dynamic_rendering && other.khr_dynamic_rendering)
|| (self.khr_external_fence && other.khr_external_fence)
|| (self.khr_external_fence_fd && other.khr_external_fence_fd)
|| (self.khr_external_fence_win32 && other.khr_external_fence_win32)
|| (self.khr_external_memory && other.khr_external_memory)
|| (self.khr_external_memory_fd && other.khr_external_memory_fd)
|| (self.khr_external_memory_win32 && other.khr_external_memory_win32)
|| (self.khr_external_semaphore && other.khr_external_semaphore)
|| (self.khr_external_semaphore_fd && other.khr_external_semaphore_fd)
|| (self.khr_external_semaphore_win32 && other.khr_external_semaphore_win32)
|| (self.khr_format_feature_flags2 && other.khr_format_feature_flags2)
|| (self.khr_fragment_shader_barycentric && other.khr_fragment_shader_barycentric)
|| (self.khr_fragment_shading_rate && other.khr_fragment_shading_rate)
|| (self.khr_get_memory_requirements2 && other.khr_get_memory_requirements2)
|| (self.khr_global_priority && other.khr_global_priority)
|| (self.khr_image_format_list && other.khr_image_format_list)
|| (self.khr_imageless_framebuffer && other.khr_imageless_framebuffer)
|| (self.khr_incremental_present && other.khr_incremental_present)
|| (self.khr_maintenance1 && other.khr_maintenance1)
|| (self.khr_maintenance2 && other.khr_maintenance2)
|| (self.khr_maintenance3 && other.khr_maintenance3)
|| (self.khr_maintenance4 && other.khr_maintenance4)
|| (self.khr_multiview && other.khr_multiview)
|| (self.khr_performance_query && other.khr_performance_query)
|| (self.khr_pipeline_executable_properties && other.khr_pipeline_executable_properties)
|| (self.khr_pipeline_library && other.khr_pipeline_library)
|| (self.khr_portability_subset && other.khr_portability_subset)
|| (self.khr_present_id && other.khr_present_id)
|| (self.khr_present_wait && other.khr_present_wait)
|| (self.khr_push_descriptor && other.khr_push_descriptor)
|| (self.khr_ray_query && other.khr_ray_query)
|| (self.khr_ray_tracing_maintenance1 && other.khr_ray_tracing_maintenance1)
|| (self.khr_ray_tracing_pipeline && other.khr_ray_tracing_pipeline)
|| (self.khr_relaxed_block_layout && other.khr_relaxed_block_layout)
|| (self.khr_sampler_mirror_clamp_to_edge && other.khr_sampler_mirror_clamp_to_edge)
|| (self.khr_sampler_ycbcr_conversion && other.khr_sampler_ycbcr_conversion)
|| (self.khr_separate_depth_stencil_layouts && other.khr_separate_depth_stencil_layouts)
|| (self.khr_shader_atomic_int64 && other.khr_shader_atomic_int64)
|| (self.khr_shader_clock && other.khr_shader_clock)
|| (self.khr_shader_draw_parameters && other.khr_shader_draw_parameters)
|| (self.khr_shader_float16_int8 && other.khr_shader_float16_int8)
|| (self.khr_shader_float_controls && other.khr_shader_float_controls)
|| (self.khr_shader_integer_dot_product && other.khr_shader_integer_dot_product)
|| (self.khr_shader_non_semantic_info && other.khr_shader_non_semantic_info)
|| (self.khr_shader_subgroup_extended_types && other.khr_shader_subgroup_extended_types)
|| (self.khr_shader_subgroup_uniform_control_flow
&& other.khr_shader_subgroup_uniform_control_flow)
|| (self.khr_shader_terminate_invocation && other.khr_shader_terminate_invocation)
|| (self.khr_shared_presentable_image && other.khr_shared_presentable_image)
|| (self.khr_spirv_1_4 && other.khr_spirv_1_4)
|| (self.khr_storage_buffer_storage_class && other.khr_storage_buffer_storage_class)
|| (self.khr_swapchain && other.khr_swapchain)
|| (self.khr_swapchain_mutable_format && other.khr_swapchain_mutable_format)
|| (self.khr_synchronization2 && other.khr_synchronization2)
|| (self.khr_timeline_semaphore && other.khr_timeline_semaphore)
|| (self.khr_uniform_buffer_standard_layout && other.khr_uniform_buffer_standard_layout)
|| (self.khr_variable_pointers && other.khr_variable_pointers)
|| (self.khr_video_decode_h264 && other.khr_video_decode_h264)
|| (self.khr_video_decode_h265 && other.khr_video_decode_h265)
|| (self.khr_video_decode_queue && other.khr_video_decode_queue)
|| (self.khr_video_encode_queue && other.khr_video_encode_queue)
|| (self.khr_video_queue && other.khr_video_queue)
|| (self.khr_vulkan_memory_model && other.khr_vulkan_memory_model)
|| (self.khr_win32_keyed_mutex && other.khr_win32_keyed_mutex)
|| (self.khr_workgroup_memory_explicit_layout
&& other.khr_workgroup_memory_explicit_layout)
|| (self.khr_zero_initialize_workgroup_memory
&& other.khr_zero_initialize_workgroup_memory)
|| (self.ext_4444_formats && other.ext_4444_formats)
|| (self.ext_astc_decode_mode && other.ext_astc_decode_mode)
|| (self.ext_attachment_feedback_loop_layout
&& other.ext_attachment_feedback_loop_layout)
|| (self.ext_blend_operation_advanced && other.ext_blend_operation_advanced)
|| (self.ext_border_color_swizzle && other.ext_border_color_swizzle)
|| (self.ext_buffer_device_address && other.ext_buffer_device_address)
|| (self.ext_calibrated_timestamps && other.ext_calibrated_timestamps)
|| (self.ext_color_write_enable && other.ext_color_write_enable)
|| (self.ext_conditional_rendering && other.ext_conditional_rendering)
|| (self.ext_conservative_rasterization && other.ext_conservative_rasterization)
|| (self.ext_custom_border_color && other.ext_custom_border_color)
|| (self.ext_debug_marker && other.ext_debug_marker)
|| (self.ext_depth_clamp_zero_one && other.ext_depth_clamp_zero_one)
|| (self.ext_depth_clip_control && other.ext_depth_clip_control)
|| (self.ext_depth_clip_enable && other.ext_depth_clip_enable)
|| (self.ext_depth_range_unrestricted && other.ext_depth_range_unrestricted)
|| (self.ext_descriptor_buffer && other.ext_descriptor_buffer)
|| (self.ext_descriptor_indexing && other.ext_descriptor_indexing)
|| (self.ext_device_address_binding_report && other.ext_device_address_binding_report)
|| (self.ext_device_fault && other.ext_device_fault)
|| (self.ext_device_memory_report && other.ext_device_memory_report)
|| (self.ext_discard_rectangles && other.ext_discard_rectangles)
|| (self.ext_display_control && other.ext_display_control)
|| (self.ext_extended_dynamic_state && other.ext_extended_dynamic_state)
|| (self.ext_extended_dynamic_state2 && other.ext_extended_dynamic_state2)
|| (self.ext_extended_dynamic_state3 && other.ext_extended_dynamic_state3)
|| (self.ext_external_memory_dma_buf && other.ext_external_memory_dma_buf)
|| (self.ext_external_memory_host && other.ext_external_memory_host)
|| (self.ext_filter_cubic && other.ext_filter_cubic)
|| (self.ext_fragment_density_map && other.ext_fragment_density_map)
|| (self.ext_fragment_density_map2 && other.ext_fragment_density_map2)
|| (self.ext_fragment_shader_interlock && other.ext_fragment_shader_interlock)
|| (self.ext_full_screen_exclusive && other.ext_full_screen_exclusive)
|| (self.ext_global_priority && other.ext_global_priority)
|| (self.ext_global_priority_query && other.ext_global_priority_query)
|| (self.ext_graphics_pipeline_library && other.ext_graphics_pipeline_library)
|| (self.ext_hdr_metadata && other.ext_hdr_metadata)
|| (self.ext_host_query_reset && other.ext_host_query_reset)
|| (self.ext_image_2d_view_of_3d && other.ext_image_2d_view_of_3d)
|| (self.ext_image_compression_control && other.ext_image_compression_control)
|| (self.ext_image_compression_control_swapchain
&& other.ext_image_compression_control_swapchain)
|| (self.ext_image_drm_format_modifier && other.ext_image_drm_format_modifier)
|| (self.ext_image_robustness && other.ext_image_robustness)
|| (self.ext_image_view_min_lod && other.ext_image_view_min_lod)
|| (self.ext_index_type_uint8 && other.ext_index_type_uint8)
|| (self.ext_inline_uniform_block && other.ext_inline_uniform_block)
|| (self.ext_legacy_dithering && other.ext_legacy_dithering)
|| (self.ext_line_rasterization && other.ext_line_rasterization)
|| (self.ext_load_store_op_none && other.ext_load_store_op_none)
|| (self.ext_memory_budget && other.ext_memory_budget)
|| (self.ext_memory_priority && other.ext_memory_priority)
|| (self.ext_mesh_shader && other.ext_mesh_shader)
|| (self.ext_metal_objects && other.ext_metal_objects)
|| (self.ext_multi_draw && other.ext_multi_draw)
|| (self.ext_multisampled_render_to_single_sampled
&& other.ext_multisampled_render_to_single_sampled)
|| (self.ext_mutable_descriptor_type && other.ext_mutable_descriptor_type)
|| (self.ext_non_seamless_cube_map && other.ext_non_seamless_cube_map)
|| (self.ext_opacity_micromap && other.ext_opacity_micromap)
|| (self.ext_pageable_device_local_memory && other.ext_pageable_device_local_memory)
|| (self.ext_pci_bus_info && other.ext_pci_bus_info)
|| (self.ext_physical_device_drm && other.ext_physical_device_drm)
|| (self.ext_pipeline_creation_cache_control
&& other.ext_pipeline_creation_cache_control)
|| (self.ext_pipeline_creation_feedback && other.ext_pipeline_creation_feedback)
|| (self.ext_pipeline_properties && other.ext_pipeline_properties)
|| (self.ext_pipeline_protected_access && other.ext_pipeline_protected_access)
|| (self.ext_pipeline_robustness && other.ext_pipeline_robustness)
|| (self.ext_post_depth_coverage && other.ext_post_depth_coverage)
|| (self.ext_primitive_topology_list_restart
&& other.ext_primitive_topology_list_restart)
|| (self.ext_primitives_generated_query && other.ext_primitives_generated_query)
|| (self.ext_private_data && other.ext_private_data)
|| (self.ext_provoking_vertex && other.ext_provoking_vertex)
|| (self.ext_queue_family_foreign && other.ext_queue_family_foreign)
|| (self.ext_rasterization_order_attachment_access
&& other.ext_rasterization_order_attachment_access)
|| (self.ext_rgba10x6_formats && other.ext_rgba10x6_formats)
|| (self.ext_robustness2 && other.ext_robustness2)
|| (self.ext_sample_locations && other.ext_sample_locations)
|| (self.ext_sampler_filter_minmax && other.ext_sampler_filter_minmax)
|| (self.ext_scalar_block_layout && other.ext_scalar_block_layout)
|| (self.ext_separate_stencil_usage && other.ext_separate_stencil_usage)
|| (self.ext_shader_atomic_float && other.ext_shader_atomic_float)
|| (self.ext_shader_atomic_float2 && other.ext_shader_atomic_float2)
|| (self.ext_shader_demote_to_helper_invocation
&& other.ext_shader_demote_to_helper_invocation)
|| (self.ext_shader_image_atomic_int64 && other.ext_shader_image_atomic_int64)
|| (self.ext_shader_module_identifier && other.ext_shader_module_identifier)
|| (self.ext_shader_stencil_export && other.ext_shader_stencil_export)
|| (self.ext_shader_subgroup_ballot && other.ext_shader_subgroup_ballot)
|| (self.ext_shader_subgroup_vote && other.ext_shader_subgroup_vote)
|| (self.ext_shader_viewport_index_layer && other.ext_shader_viewport_index_layer)
|| (self.ext_subgroup_size_control && other.ext_subgroup_size_control)
|| (self.ext_subpass_merge_feedback && other.ext_subpass_merge_feedback)
|| (self.ext_swapchain_maintenance1 && other.ext_swapchain_maintenance1)
|| (self.ext_texel_buffer_alignment && other.ext_texel_buffer_alignment)
|| (self.ext_texture_compression_astc_hdr && other.ext_texture_compression_astc_hdr)
|| (self.ext_tooling_info && other.ext_tooling_info)
|| (self.ext_transform_feedback && other.ext_transform_feedback)
|| (self.ext_validation_cache && other.ext_validation_cache)
|| (self.ext_vertex_attribute_divisor && other.ext_vertex_attribute_divisor)
|| (self.ext_vertex_input_dynamic_state && other.ext_vertex_input_dynamic_state)
|| (self.ext_video_encode_h264 && other.ext_video_encode_h264)
|| (self.ext_video_encode_h265 && other.ext_video_encode_h265)
|| (self.ext_ycbcr_2plane_444_formats && other.ext_ycbcr_2plane_444_formats)
|| (self.ext_ycbcr_image_arrays && other.ext_ycbcr_image_arrays)
|| (self.amd_buffer_marker && other.amd_buffer_marker)
|| (self.amd_device_coherent_memory && other.amd_device_coherent_memory)
|| (self.amd_display_native_hdr && other.amd_display_native_hdr)
|| (self.amd_draw_indirect_count && other.amd_draw_indirect_count)
|| (self.amd_gcn_shader && other.amd_gcn_shader)
|| (self.amd_gpu_shader_half_float && other.amd_gpu_shader_half_float)
|| (self.amd_gpu_shader_int16 && other.amd_gpu_shader_int16)
|| (self.amd_memory_overallocation_behavior && other.amd_memory_overallocation_behavior)
|| (self.amd_mixed_attachment_samples && other.amd_mixed_attachment_samples)
|| (self.amd_pipeline_compiler_control && other.amd_pipeline_compiler_control)
|| (self.amd_rasterization_order && other.amd_rasterization_order)
|| (self.amd_shader_ballot && other.amd_shader_ballot)
|| (self.amd_shader_core_properties && other.amd_shader_core_properties)
|| (self.amd_shader_core_properties2 && other.amd_shader_core_properties2)
|| (self.amd_shader_early_and_late_fragment_tests
&& other.amd_shader_early_and_late_fragment_tests)
|| (self.amd_shader_explicit_vertex_parameter
&& other.amd_shader_explicit_vertex_parameter)
|| (self.amd_shader_fragment_mask && other.amd_shader_fragment_mask)
|| (self.amd_shader_image_load_store_lod && other.amd_shader_image_load_store_lod)
|| (self.amd_shader_info && other.amd_shader_info)
|| (self.amd_shader_trinary_minmax && other.amd_shader_trinary_minmax)
|| (self.amd_texture_gather_bias_lod && other.amd_texture_gather_bias_lod)
|| (self.android_external_memory_android_hardware_buffer
&& other.android_external_memory_android_hardware_buffer)
|| (self.arm_rasterization_order_attachment_access
&& other.arm_rasterization_order_attachment_access)
|| (self.arm_shader_core_builtins && other.arm_shader_core_builtins)
|| (self.fuchsia_buffer_collection && other.fuchsia_buffer_collection)
|| (self.fuchsia_external_memory && other.fuchsia_external_memory)
|| (self.fuchsia_external_semaphore && other.fuchsia_external_semaphore)
|| (self.ggp_frame_token && other.ggp_frame_token)
|| (self.google_decorate_string && other.google_decorate_string)
|| (self.google_display_timing && other.google_display_timing)
|| (self.google_hlsl_functionality1 && other.google_hlsl_functionality1)
|| (self.google_user_type && other.google_user_type)
|| (self.huawei_invocation_mask && other.huawei_invocation_mask)
|| (self.huawei_subpass_shading && other.huawei_subpass_shading)
|| (self.img_filter_cubic && other.img_filter_cubic)
|| (self.img_format_pvrtc && other.img_format_pvrtc)
|| (self.intel_performance_query && other.intel_performance_query)
|| (self.intel_shader_integer_functions2 && other.intel_shader_integer_functions2)
|| (self.nvx_binary_import && other.nvx_binary_import)
|| (self.nvx_image_view_handle && other.nvx_image_view_handle)
|| (self.nvx_multiview_per_view_attributes && other.nvx_multiview_per_view_attributes)
|| (self.nv_acquire_winrt_display && other.nv_acquire_winrt_display)
|| (self.nv_clip_space_w_scaling && other.nv_clip_space_w_scaling)
|| (self.nv_compute_shader_derivatives && other.nv_compute_shader_derivatives)
|| (self.nv_cooperative_matrix && other.nv_cooperative_matrix)
|| (self.nv_copy_memory_indirect && other.nv_copy_memory_indirect)
|| (self.nv_corner_sampled_image && other.nv_corner_sampled_image)
|| (self.nv_coverage_reduction_mode && other.nv_coverage_reduction_mode)
|| (self.nv_dedicated_allocation && other.nv_dedicated_allocation)
|| (self.nv_dedicated_allocation_image_aliasing
&& other.nv_dedicated_allocation_image_aliasing)
|| (self.nv_device_diagnostic_checkpoints && other.nv_device_diagnostic_checkpoints)
|| (self.nv_device_diagnostics_config && other.nv_device_diagnostics_config)
|| (self.nv_device_generated_commands && other.nv_device_generated_commands)
|| (self.nv_external_memory && other.nv_external_memory)
|| (self.nv_external_memory_rdma && other.nv_external_memory_rdma)
|| (self.nv_external_memory_win32 && other.nv_external_memory_win32)
|| (self.nv_fill_rectangle && other.nv_fill_rectangle)
|| (self.nv_fragment_coverage_to_color && other.nv_fragment_coverage_to_color)
|| (self.nv_fragment_shader_barycentric && other.nv_fragment_shader_barycentric)
|| (self.nv_fragment_shading_rate_enums && other.nv_fragment_shading_rate_enums)
|| (self.nv_framebuffer_mixed_samples && other.nv_framebuffer_mixed_samples)
|| (self.nv_geometry_shader_passthrough && other.nv_geometry_shader_passthrough)
|| (self.nv_glsl_shader && other.nv_glsl_shader)
|| (self.nv_inherited_viewport_scissor && other.nv_inherited_viewport_scissor)
|| (self.nv_linear_color_attachment && other.nv_linear_color_attachment)
|| (self.nv_memory_decompression && other.nv_memory_decompression)
|| (self.nv_mesh_shader && other.nv_mesh_shader)
|| (self.nv_optical_flow && other.nv_optical_flow)
|| (self.nv_present_barrier && other.nv_present_barrier)
|| (self.nv_ray_tracing && other.nv_ray_tracing)
|| (self.nv_ray_tracing_invocation_reorder && other.nv_ray_tracing_invocation_reorder)
|| (self.nv_ray_tracing_motion_blur && other.nv_ray_tracing_motion_blur)
|| (self.nv_representative_fragment_test && other.nv_representative_fragment_test)
|| (self.nv_sample_mask_override_coverage && other.nv_sample_mask_override_coverage)
|| (self.nv_scissor_exclusive && other.nv_scissor_exclusive)
|| (self.nv_shader_image_footprint && other.nv_shader_image_footprint)
|| (self.nv_shader_sm_builtins && other.nv_shader_sm_builtins)
|| (self.nv_shader_subgroup_partitioned && other.nv_shader_subgroup_partitioned)
|| (self.nv_shading_rate_image && other.nv_shading_rate_image)
|| (self.nv_viewport_array2 && other.nv_viewport_array2)
|| (self.nv_viewport_swizzle && other.nv_viewport_swizzle)
|| (self.nv_win32_keyed_mutex && other.nv_win32_keyed_mutex)
|| (self.qcom_fragment_density_map_offset && other.qcom_fragment_density_map_offset)
|| (self.qcom_image_processing && other.qcom_image_processing)
|| (self.qcom_multiview_per_view_viewports && other.qcom_multiview_per_view_viewports)
|| (self.qcom_render_pass_shader_resolve && other.qcom_render_pass_shader_resolve)
|| (self.qcom_render_pass_store_ops && other.qcom_render_pass_store_ops)
|| (self.qcom_render_pass_transform && other.qcom_render_pass_transform)
|| (self.qcom_rotated_copy_commands && other.qcom_rotated_copy_commands)
|| (self.qcom_tile_properties && other.qcom_tile_properties)
|| (self.sec_amigo_profiling && other.sec_amigo_profiling)
|| (self.valve_descriptor_set_host_mapping && other.valve_descriptor_set_host_mapping)
|| (self.valve_mutable_descriptor_type && other.valve_mutable_descriptor_type)
}
#[doc = r" Returns whether all members in `other` are set in `self`."]
#[inline]
pub const fn contains(&self, other: &Self) -> bool {
(self.khr_16bit_storage || !other.khr_16bit_storage)
&& (self.khr_8bit_storage || !other.khr_8bit_storage)
&& (self.khr_acceleration_structure || !other.khr_acceleration_structure)
&& (self.khr_bind_memory2 || !other.khr_bind_memory2)
&& (self.khr_buffer_device_address || !other.khr_buffer_device_address)
&& (self.khr_copy_commands2 || !other.khr_copy_commands2)
&& (self.khr_create_renderpass2 || !other.khr_create_renderpass2)
&& (self.khr_dedicated_allocation || !other.khr_dedicated_allocation)
&& (self.khr_deferred_host_operations || !other.khr_deferred_host_operations)
&& (self.khr_depth_stencil_resolve || !other.khr_depth_stencil_resolve)
&& (self.khr_descriptor_update_template || !other.khr_descriptor_update_template)
&& (self.khr_device_group || !other.khr_device_group)
&& (self.khr_display_swapchain || !other.khr_display_swapchain)
&& (self.khr_draw_indirect_count || !other.khr_draw_indirect_count)
&& (self.khr_driver_properties || !other.khr_driver_properties)
&& (self.khr_dynamic_rendering || !other.khr_dynamic_rendering)
&& (self.khr_external_fence || !other.khr_external_fence)
&& (self.khr_external_fence_fd || !other.khr_external_fence_fd)
&& (self.khr_external_fence_win32 || !other.khr_external_fence_win32)
&& (self.khr_external_memory || !other.khr_external_memory)
&& (self.khr_external_memory_fd || !other.khr_external_memory_fd)
&& (self.khr_external_memory_win32 || !other.khr_external_memory_win32)
&& (self.khr_external_semaphore || !other.khr_external_semaphore)
&& (self.khr_external_semaphore_fd || !other.khr_external_semaphore_fd)
&& (self.khr_external_semaphore_win32 || !other.khr_external_semaphore_win32)
&& (self.khr_format_feature_flags2 || !other.khr_format_feature_flags2)
&& (self.khr_fragment_shader_barycentric || !other.khr_fragment_shader_barycentric)
&& (self.khr_fragment_shading_rate || !other.khr_fragment_shading_rate)
&& (self.khr_get_memory_requirements2 || !other.khr_get_memory_requirements2)
&& (self.khr_global_priority || !other.khr_global_priority)
&& (self.khr_image_format_list || !other.khr_image_format_list)
&& (self.khr_imageless_framebuffer || !other.khr_imageless_framebuffer)
&& (self.khr_incremental_present || !other.khr_incremental_present)
&& (self.khr_maintenance1 || !other.khr_maintenance1)
&& (self.khr_maintenance2 || !other.khr_maintenance2)
&& (self.khr_maintenance3 || !other.khr_maintenance3)
&& (self.khr_maintenance4 || !other.khr_maintenance4)
&& (self.khr_multiview || !other.khr_multiview)
&& (self.khr_performance_query || !other.khr_performance_query)
&& (self.khr_pipeline_executable_properties
|| !other.khr_pipeline_executable_properties)
&& (self.khr_pipeline_library || !other.khr_pipeline_library)
&& (self.khr_portability_subset || !other.khr_portability_subset)
&& (self.khr_present_id || !other.khr_present_id)
&& (self.khr_present_wait || !other.khr_present_wait)
&& (self.khr_push_descriptor || !other.khr_push_descriptor)
&& (self.khr_ray_query || !other.khr_ray_query)
&& (self.khr_ray_tracing_maintenance1 || !other.khr_ray_tracing_maintenance1)
&& (self.khr_ray_tracing_pipeline || !other.khr_ray_tracing_pipeline)
&& (self.khr_relaxed_block_layout || !other.khr_relaxed_block_layout)
&& (self.khr_sampler_mirror_clamp_to_edge || !other.khr_sampler_mirror_clamp_to_edge)
&& (self.khr_sampler_ycbcr_conversion || !other.khr_sampler_ycbcr_conversion)
&& (self.khr_separate_depth_stencil_layouts
|| !other.khr_separate_depth_stencil_layouts)
&& (self.khr_shader_atomic_int64 || !other.khr_shader_atomic_int64)
&& (self.khr_shader_clock || !other.khr_shader_clock)
&& (self.khr_shader_draw_parameters || !other.khr_shader_draw_parameters)
&& (self.khr_shader_float16_int8 || !other.khr_shader_float16_int8)
&& (self.khr_shader_float_controls || !other.khr_shader_float_controls)
&& (self.khr_shader_integer_dot_product || !other.khr_shader_integer_dot_product)
&& (self.khr_shader_non_semantic_info || !other.khr_shader_non_semantic_info)
&& (self.khr_shader_subgroup_extended_types
|| !other.khr_shader_subgroup_extended_types)
&& (self.khr_shader_subgroup_uniform_control_flow
|| !other.khr_shader_subgroup_uniform_control_flow)
&& (self.khr_shader_terminate_invocation || !other.khr_shader_terminate_invocation)
&& (self.khr_shared_presentable_image || !other.khr_shared_presentable_image)
&& (self.khr_spirv_1_4 || !other.khr_spirv_1_4)
&& (self.khr_storage_buffer_storage_class || !other.khr_storage_buffer_storage_class)
&& (self.khr_swapchain || !other.khr_swapchain)
&& (self.khr_swapchain_mutable_format || !other.khr_swapchain_mutable_format)
&& (self.khr_synchronization2 || !other.khr_synchronization2)
&& (self.khr_timeline_semaphore || !other.khr_timeline_semaphore)
&& (self.khr_uniform_buffer_standard_layout
|| !other.khr_uniform_buffer_standard_layout)
&& (self.khr_variable_pointers || !other.khr_variable_pointers)
&& (self.khr_video_decode_h264 || !other.khr_video_decode_h264)
&& (self.khr_video_decode_h265 || !other.khr_video_decode_h265)
&& (self.khr_video_decode_queue || !other.khr_video_decode_queue)
&& (self.khr_video_encode_queue || !other.khr_video_encode_queue)
&& (self.khr_video_queue || !other.khr_video_queue)
&& (self.khr_vulkan_memory_model || !other.khr_vulkan_memory_model)
&& (self.khr_win32_keyed_mutex || !other.khr_win32_keyed_mutex)
&& (self.khr_workgroup_memory_explicit_layout
|| !other.khr_workgroup_memory_explicit_layout)
&& (self.khr_zero_initialize_workgroup_memory
|| !other.khr_zero_initialize_workgroup_memory)
&& (self.ext_4444_formats || !other.ext_4444_formats)
&& (self.ext_astc_decode_mode || !other.ext_astc_decode_mode)
&& (self.ext_attachment_feedback_loop_layout
|| !other.ext_attachment_feedback_loop_layout)
&& (self.ext_blend_operation_advanced || !other.ext_blend_operation_advanced)
&& (self.ext_border_color_swizzle || !other.ext_border_color_swizzle)
&& (self.ext_buffer_device_address || !other.ext_buffer_device_address)
&& (self.ext_calibrated_timestamps || !other.ext_calibrated_timestamps)
&& (self.ext_color_write_enable || !other.ext_color_write_enable)
&& (self.ext_conditional_rendering || !other.ext_conditional_rendering)
&& (self.ext_conservative_rasterization || !other.ext_conservative_rasterization)
&& (self.ext_custom_border_color || !other.ext_custom_border_color)
&& (self.ext_debug_marker || !other.ext_debug_marker)
&& (self.ext_depth_clamp_zero_one || !other.ext_depth_clamp_zero_one)
&& (self.ext_depth_clip_control || !other.ext_depth_clip_control)
&& (self.ext_depth_clip_enable || !other.ext_depth_clip_enable)
&& (self.ext_depth_range_unrestricted || !other.ext_depth_range_unrestricted)
&& (self.ext_descriptor_buffer || !other.ext_descriptor_buffer)
&& (self.ext_descriptor_indexing || !other.ext_descriptor_indexing)
&& (self.ext_device_address_binding_report || !other.ext_device_address_binding_report)
&& (self.ext_device_fault || !other.ext_device_fault)
&& (self.ext_device_memory_report || !other.ext_device_memory_report)
&& (self.ext_discard_rectangles || !other.ext_discard_rectangles)
&& (self.ext_display_control || !other.ext_display_control)
&& (self.ext_extended_dynamic_state || !other.ext_extended_dynamic_state)
&& (self.ext_extended_dynamic_state2 || !other.ext_extended_dynamic_state2)
&& (self.ext_extended_dynamic_state3 || !other.ext_extended_dynamic_state3)
&& (self.ext_external_memory_dma_buf || !other.ext_external_memory_dma_buf)
&& (self.ext_external_memory_host || !other.ext_external_memory_host)
&& (self.ext_filter_cubic || !other.ext_filter_cubic)
&& (self.ext_fragment_density_map || !other.ext_fragment_density_map)
&& (self.ext_fragment_density_map2 || !other.ext_fragment_density_map2)
&& (self.ext_fragment_shader_interlock || !other.ext_fragment_shader_interlock)
&& (self.ext_full_screen_exclusive || !other.ext_full_screen_exclusive)
&& (self.ext_global_priority || !other.ext_global_priority)
&& (self.ext_global_priority_query || !other.ext_global_priority_query)
&& (self.ext_graphics_pipeline_library || !other.ext_graphics_pipeline_library)
&& (self.ext_hdr_metadata || !other.ext_hdr_metadata)
&& (self.ext_host_query_reset || !other.ext_host_query_reset)
&& (self.ext_image_2d_view_of_3d || !other.ext_image_2d_view_of_3d)
&& (self.ext_image_compression_control || !other.ext_image_compression_control)
&& (self.ext_image_compression_control_swapchain
|| !other.ext_image_compression_control_swapchain)
&& (self.ext_image_drm_format_modifier || !other.ext_image_drm_format_modifier)
&& (self.ext_image_robustness || !other.ext_image_robustness)
&& (self.ext_image_view_min_lod || !other.ext_image_view_min_lod)
&& (self.ext_index_type_uint8 || !other.ext_index_type_uint8)
&& (self.ext_inline_uniform_block || !other.ext_inline_uniform_block)
&& (self.ext_legacy_dithering || !other.ext_legacy_dithering)
&& (self.ext_line_rasterization || !other.ext_line_rasterization)
&& (self.ext_load_store_op_none || !other.ext_load_store_op_none)
&& (self.ext_memory_budget || !other.ext_memory_budget)
&& (self.ext_memory_priority || !other.ext_memory_priority)
&& (self.ext_mesh_shader || !other.ext_mesh_shader)
&& (self.ext_metal_objects || !other.ext_metal_objects)
&& (self.ext_multi_draw || !other.ext_multi_draw)
&& (self.ext_multisampled_render_to_single_sampled
|| !other.ext_multisampled_render_to_single_sampled)
&& (self.ext_mutable_descriptor_type || !other.ext_mutable_descriptor_type)
&& (self.ext_non_seamless_cube_map || !other.ext_non_seamless_cube_map)
&& (self.ext_opacity_micromap || !other.ext_opacity_micromap)
&& (self.ext_pageable_device_local_memory || !other.ext_pageable_device_local_memory)
&& (self.ext_pci_bus_info || !other.ext_pci_bus_info)
&& (self.ext_physical_device_drm || !other.ext_physical_device_drm)
&& (self.ext_pipeline_creation_cache_control
|| !other.ext_pipeline_creation_cache_control)
&& (self.ext_pipeline_creation_feedback || !other.ext_pipeline_creation_feedback)
&& (self.ext_pipeline_properties || !other.ext_pipeline_properties)
&& (self.ext_pipeline_protected_access || !other.ext_pipeline_protected_access)
&& (self.ext_pipeline_robustness || !other.ext_pipeline_robustness)
&& (self.ext_post_depth_coverage || !other.ext_post_depth_coverage)
&& (self.ext_primitive_topology_list_restart
|| !other.ext_primitive_topology_list_restart)
&& (self.ext_primitives_generated_query || !other.ext_primitives_generated_query)
&& (self.ext_private_data || !other.ext_private_data)
&& (self.ext_provoking_vertex || !other.ext_provoking_vertex)
&& (self.ext_queue_family_foreign || !other.ext_queue_family_foreign)
&& (self.ext_rasterization_order_attachment_access
|| !other.ext_rasterization_order_attachment_access)
&& (self.ext_rgba10x6_formats || !other.ext_rgba10x6_formats)
&& (self.ext_robustness2 || !other.ext_robustness2)
&& (self.ext_sample_locations || !other.ext_sample_locations)
&& (self.ext_sampler_filter_minmax || !other.ext_sampler_filter_minmax)
&& (self.ext_scalar_block_layout || !other.ext_scalar_block_layout)
&& (self.ext_separate_stencil_usage || !other.ext_separate_stencil_usage)
&& (self.ext_shader_atomic_float || !other.ext_shader_atomic_float)
&& (self.ext_shader_atomic_float2 || !other.ext_shader_atomic_float2)
&& (self.ext_shader_demote_to_helper_invocation
|| !other.ext_shader_demote_to_helper_invocation)
&& (self.ext_shader_image_atomic_int64 || !other.ext_shader_image_atomic_int64)
&& (self.ext_shader_module_identifier || !other.ext_shader_module_identifier)
&& (self.ext_shader_stencil_export || !other.ext_shader_stencil_export)
&& (self.ext_shader_subgroup_ballot || !other.ext_shader_subgroup_ballot)
&& (self.ext_shader_subgroup_vote || !other.ext_shader_subgroup_vote)
&& (self.ext_shader_viewport_index_layer || !other.ext_shader_viewport_index_layer)
&& (self.ext_subgroup_size_control || !other.ext_subgroup_size_control)
&& (self.ext_subpass_merge_feedback || !other.ext_subpass_merge_feedback)
&& (self.ext_swapchain_maintenance1 || !other.ext_swapchain_maintenance1)
&& (self.ext_texel_buffer_alignment || !other.ext_texel_buffer_alignment)
&& (self.ext_texture_compression_astc_hdr || !other.ext_texture_compression_astc_hdr)
&& (self.ext_tooling_info || !other.ext_tooling_info)
&& (self.ext_transform_feedback || !other.ext_transform_feedback)
&& (self.ext_validation_cache || !other.ext_validation_cache)
&& (self.ext_vertex_attribute_divisor || !other.ext_vertex_attribute_divisor)
&& (self.ext_vertex_input_dynamic_state || !other.ext_vertex_input_dynamic_state)
&& (self.ext_video_encode_h264 || !other.ext_video_encode_h264)
&& (self.ext_video_encode_h265 || !other.ext_video_encode_h265)
&& (self.ext_ycbcr_2plane_444_formats || !other.ext_ycbcr_2plane_444_formats)
&& (self.ext_ycbcr_image_arrays || !other.ext_ycbcr_image_arrays)
&& (self.amd_buffer_marker || !other.amd_buffer_marker)
&& (self.amd_device_coherent_memory || !other.amd_device_coherent_memory)
&& (self.amd_display_native_hdr || !other.amd_display_native_hdr)
&& (self.amd_draw_indirect_count || !other.amd_draw_indirect_count)
&& (self.amd_gcn_shader || !other.amd_gcn_shader)
&& (self.amd_gpu_shader_half_float || !other.amd_gpu_shader_half_float)
&& (self.amd_gpu_shader_int16 || !other.amd_gpu_shader_int16)
&& (self.amd_memory_overallocation_behavior
|| !other.amd_memory_overallocation_behavior)
&& (self.amd_mixed_attachment_samples || !other.amd_mixed_attachment_samples)
&& (self.amd_pipeline_compiler_control || !other.amd_pipeline_compiler_control)
&& (self.amd_rasterization_order || !other.amd_rasterization_order)
&& (self.amd_shader_ballot || !other.amd_shader_ballot)
&& (self.amd_shader_core_properties || !other.amd_shader_core_properties)
&& (self.amd_shader_core_properties2 || !other.amd_shader_core_properties2)
&& (self.amd_shader_early_and_late_fragment_tests
|| !other.amd_shader_early_and_late_fragment_tests)
&& (self.amd_shader_explicit_vertex_parameter
|| !other.amd_shader_explicit_vertex_parameter)
&& (self.amd_shader_fragment_mask || !other.amd_shader_fragment_mask)
&& (self.amd_shader_image_load_store_lod || !other.amd_shader_image_load_store_lod)
&& (self.amd_shader_info || !other.amd_shader_info)
&& (self.amd_shader_trinary_minmax || !other.amd_shader_trinary_minmax)
&& (self.amd_texture_gather_bias_lod || !other.amd_texture_gather_bias_lod)
&& (self.android_external_memory_android_hardware_buffer
|| !other.android_external_memory_android_hardware_buffer)
&& (self.arm_rasterization_order_attachment_access
|| !other.arm_rasterization_order_attachment_access)
&& (self.arm_shader_core_builtins || !other.arm_shader_core_builtins)
&& (self.fuchsia_buffer_collection || !other.fuchsia_buffer_collection)
&& (self.fuchsia_external_memory || !other.fuchsia_external_memory)
&& (self.fuchsia_external_semaphore || !other.fuchsia_external_semaphore)
&& (self.ggp_frame_token || !other.ggp_frame_token)
&& (self.google_decorate_string || !other.google_decorate_string)
&& (self.google_display_timing || !other.google_display_timing)
&& (self.google_hlsl_functionality1 || !other.google_hlsl_functionality1)
&& (self.google_user_type || !other.google_user_type)
&& (self.huawei_invocation_mask || !other.huawei_invocation_mask)
&& (self.huawei_subpass_shading || !other.huawei_subpass_shading)
&& (self.img_filter_cubic || !other.img_filter_cubic)
&& (self.img_format_pvrtc || !other.img_format_pvrtc)
&& (self.intel_performance_query || !other.intel_performance_query)
&& (self.intel_shader_integer_functions2 || !other.intel_shader_integer_functions2)
&& (self.nvx_binary_import || !other.nvx_binary_import)
&& (self.nvx_image_view_handle || !other.nvx_image_view_handle)
&& (self.nvx_multiview_per_view_attributes || !other.nvx_multiview_per_view_attributes)
&& (self.nv_acquire_winrt_display || !other.nv_acquire_winrt_display)
&& (self.nv_clip_space_w_scaling || !other.nv_clip_space_w_scaling)
&& (self.nv_compute_shader_derivatives || !other.nv_compute_shader_derivatives)
&& (self.nv_cooperative_matrix || !other.nv_cooperative_matrix)
&& (self.nv_copy_memory_indirect || !other.nv_copy_memory_indirect)
&& (self.nv_corner_sampled_image || !other.nv_corner_sampled_image)
&& (self.nv_coverage_reduction_mode || !other.nv_coverage_reduction_mode)
&& (self.nv_dedicated_allocation || !other.nv_dedicated_allocation)
&& (self.nv_dedicated_allocation_image_aliasing
|| !other.nv_dedicated_allocation_image_aliasing)
&& (self.nv_device_diagnostic_checkpoints || !other.nv_device_diagnostic_checkpoints)
&& (self.nv_device_diagnostics_config || !other.nv_device_diagnostics_config)
&& (self.nv_device_generated_commands || !other.nv_device_generated_commands)
&& (self.nv_external_memory || !other.nv_external_memory)
&& (self.nv_external_memory_rdma || !other.nv_external_memory_rdma)
&& (self.nv_external_memory_win32 || !other.nv_external_memory_win32)
&& (self.nv_fill_rectangle || !other.nv_fill_rectangle)
&& (self.nv_fragment_coverage_to_color || !other.nv_fragment_coverage_to_color)
&& (self.nv_fragment_shader_barycentric || !other.nv_fragment_shader_barycentric)
&& (self.nv_fragment_shading_rate_enums || !other.nv_fragment_shading_rate_enums)
&& (self.nv_framebuffer_mixed_samples || !other.nv_framebuffer_mixed_samples)
&& (self.nv_geometry_shader_passthrough || !other.nv_geometry_shader_passthrough)
&& (self.nv_glsl_shader || !other.nv_glsl_shader)
&& (self.nv_inherited_viewport_scissor || !other.nv_inherited_viewport_scissor)
&& (self.nv_linear_color_attachment || !other.nv_linear_color_attachment)
&& (self.nv_memory_decompression || !other.nv_memory_decompression)
&& (self.nv_mesh_shader || !other.nv_mesh_shader)
&& (self.nv_optical_flow || !other.nv_optical_flow)
&& (self.nv_present_barrier || !other.nv_present_barrier)
&& (self.nv_ray_tracing || !other.nv_ray_tracing)
&& (self.nv_ray_tracing_invocation_reorder || !other.nv_ray_tracing_invocation_reorder)
&& (self.nv_ray_tracing_motion_blur || !other.nv_ray_tracing_motion_blur)
&& (self.nv_representative_fragment_test || !other.nv_representative_fragment_test)
&& (self.nv_sample_mask_override_coverage || !other.nv_sample_mask_override_coverage)
&& (self.nv_scissor_exclusive || !other.nv_scissor_exclusive)
&& (self.nv_shader_image_footprint || !other.nv_shader_image_footprint)
&& (self.nv_shader_sm_builtins || !other.nv_shader_sm_builtins)
&& (self.nv_shader_subgroup_partitioned || !other.nv_shader_subgroup_partitioned)
&& (self.nv_shading_rate_image || !other.nv_shading_rate_image)
&& (self.nv_viewport_array2 || !other.nv_viewport_array2)
&& (self.nv_viewport_swizzle || !other.nv_viewport_swizzle)
&& (self.nv_win32_keyed_mutex || !other.nv_win32_keyed_mutex)
&& (self.qcom_fragment_density_map_offset || !other.qcom_fragment_density_map_offset)
&& (self.qcom_image_processing || !other.qcom_image_processing)
&& (self.qcom_multiview_per_view_viewports || !other.qcom_multiview_per_view_viewports)
&& (self.qcom_render_pass_shader_resolve || !other.qcom_render_pass_shader_resolve)
&& (self.qcom_render_pass_store_ops || !other.qcom_render_pass_store_ops)
&& (self.qcom_render_pass_transform || !other.qcom_render_pass_transform)
&& (self.qcom_rotated_copy_commands || !other.qcom_rotated_copy_commands)
&& (self.qcom_tile_properties || !other.qcom_tile_properties)
&& (self.sec_amigo_profiling || !other.sec_amigo_profiling)
&& (self.valve_descriptor_set_host_mapping || !other.valve_descriptor_set_host_mapping)
&& (self.valve_mutable_descriptor_type || !other.valve_mutable_descriptor_type)
}
#[doc = r" Returns whether all members in `other` are set in `self`."]
#[deprecated(since = "0.31.0", note = "Use `contains` instead.")]
#[inline]
pub const fn is_superset_of(&self, other: &Self) -> bool {
self.contains(other)
}
#[doc = r" Returns the union of `self` and `other`."]
#[inline]
pub const fn union(&self, other: &Self) -> Self {
Self {
khr_16bit_storage: self.khr_16bit_storage || other.khr_16bit_storage,
khr_8bit_storage: self.khr_8bit_storage || other.khr_8bit_storage,
khr_acceleration_structure: self.khr_acceleration_structure
|| other.khr_acceleration_structure,
khr_bind_memory2: self.khr_bind_memory2 || other.khr_bind_memory2,
khr_buffer_device_address: self.khr_buffer_device_address
|| other.khr_buffer_device_address,
khr_copy_commands2: self.khr_copy_commands2 || other.khr_copy_commands2,
khr_create_renderpass2: self.khr_create_renderpass2 || other.khr_create_renderpass2,
khr_dedicated_allocation: self.khr_dedicated_allocation
|| other.khr_dedicated_allocation,
khr_deferred_host_operations: self.khr_deferred_host_operations
|| other.khr_deferred_host_operations,
khr_depth_stencil_resolve: self.khr_depth_stencil_resolve
|| other.khr_depth_stencil_resolve,
khr_descriptor_update_template: self.khr_descriptor_update_template
|| other.khr_descriptor_update_template,
khr_device_group: self.khr_device_group || other.khr_device_group,
khr_display_swapchain: self.khr_display_swapchain || other.khr_display_swapchain,
khr_draw_indirect_count: self.khr_draw_indirect_count || other.khr_draw_indirect_count,
khr_driver_properties: self.khr_driver_properties || other.khr_driver_properties,
khr_dynamic_rendering: self.khr_dynamic_rendering || other.khr_dynamic_rendering,
khr_external_fence: self.khr_external_fence || other.khr_external_fence,
khr_external_fence_fd: self.khr_external_fence_fd || other.khr_external_fence_fd,
khr_external_fence_win32: self.khr_external_fence_win32
|| other.khr_external_fence_win32,
khr_external_memory: self.khr_external_memory || other.khr_external_memory,
khr_external_memory_fd: self.khr_external_memory_fd || other.khr_external_memory_fd,
khr_external_memory_win32: self.khr_external_memory_win32
|| other.khr_external_memory_win32,
khr_external_semaphore: self.khr_external_semaphore || other.khr_external_semaphore,
khr_external_semaphore_fd: self.khr_external_semaphore_fd
|| other.khr_external_semaphore_fd,
khr_external_semaphore_win32: self.khr_external_semaphore_win32
|| other.khr_external_semaphore_win32,
khr_format_feature_flags2: self.khr_format_feature_flags2
|| other.khr_format_feature_flags2,
khr_fragment_shader_barycentric: self.khr_fragment_shader_barycentric
|| other.khr_fragment_shader_barycentric,
khr_fragment_shading_rate: self.khr_fragment_shading_rate
|| other.khr_fragment_shading_rate,
khr_get_memory_requirements2: self.khr_get_memory_requirements2
|| other.khr_get_memory_requirements2,
khr_global_priority: self.khr_global_priority || other.khr_global_priority,
khr_image_format_list: self.khr_image_format_list || other.khr_image_format_list,
khr_imageless_framebuffer: self.khr_imageless_framebuffer
|| other.khr_imageless_framebuffer,
khr_incremental_present: self.khr_incremental_present || other.khr_incremental_present,
khr_maintenance1: self.khr_maintenance1 || other.khr_maintenance1,
khr_maintenance2: self.khr_maintenance2 || other.khr_maintenance2,
khr_maintenance3: self.khr_maintenance3 || other.khr_maintenance3,
khr_maintenance4: self.khr_maintenance4 || other.khr_maintenance4,
khr_multiview: self.khr_multiview || other.khr_multiview,
khr_performance_query: self.khr_performance_query || other.khr_performance_query,
khr_pipeline_executable_properties: self.khr_pipeline_executable_properties
|| other.khr_pipeline_executable_properties,
khr_pipeline_library: self.khr_pipeline_library || other.khr_pipeline_library,
khr_portability_subset: self.khr_portability_subset || other.khr_portability_subset,
khr_present_id: self.khr_present_id || other.khr_present_id,
khr_present_wait: self.khr_present_wait || other.khr_present_wait,
khr_push_descriptor: self.khr_push_descriptor || other.khr_push_descriptor,
khr_ray_query: self.khr_ray_query || other.khr_ray_query,
khr_ray_tracing_maintenance1: self.khr_ray_tracing_maintenance1
|| other.khr_ray_tracing_maintenance1,
khr_ray_tracing_pipeline: self.khr_ray_tracing_pipeline
|| other.khr_ray_tracing_pipeline,
khr_relaxed_block_layout: self.khr_relaxed_block_layout
|| other.khr_relaxed_block_layout,
khr_sampler_mirror_clamp_to_edge: self.khr_sampler_mirror_clamp_to_edge
|| other.khr_sampler_mirror_clamp_to_edge,
khr_sampler_ycbcr_conversion: self.khr_sampler_ycbcr_conversion
|| other.khr_sampler_ycbcr_conversion,
khr_separate_depth_stencil_layouts: self.khr_separate_depth_stencil_layouts
|| other.khr_separate_depth_stencil_layouts,
khr_shader_atomic_int64: self.khr_shader_atomic_int64 || other.khr_shader_atomic_int64,
khr_shader_clock: self.khr_shader_clock || other.khr_shader_clock,
khr_shader_draw_parameters: self.khr_shader_draw_parameters
|| other.khr_shader_draw_parameters,
khr_shader_float16_int8: self.khr_shader_float16_int8 || other.khr_shader_float16_int8,
khr_shader_float_controls: self.khr_shader_float_controls
|| other.khr_shader_float_controls,
khr_shader_integer_dot_product: self.khr_shader_integer_dot_product
|| other.khr_shader_integer_dot_product,
khr_shader_non_semantic_info: self.khr_shader_non_semantic_info
|| other.khr_shader_non_semantic_info,
khr_shader_subgroup_extended_types: self.khr_shader_subgroup_extended_types
|| other.khr_shader_subgroup_extended_types,
khr_shader_subgroup_uniform_control_flow: self.khr_shader_subgroup_uniform_control_flow
|| other.khr_shader_subgroup_uniform_control_flow,
khr_shader_terminate_invocation: self.khr_shader_terminate_invocation
|| other.khr_shader_terminate_invocation,
khr_shared_presentable_image: self.khr_shared_presentable_image
|| other.khr_shared_presentable_image,
khr_spirv_1_4: self.khr_spirv_1_4 || other.khr_spirv_1_4,
khr_storage_buffer_storage_class: self.khr_storage_buffer_storage_class
|| other.khr_storage_buffer_storage_class,
khr_swapchain: self.khr_swapchain || other.khr_swapchain,
khr_swapchain_mutable_format: self.khr_swapchain_mutable_format
|| other.khr_swapchain_mutable_format,
khr_synchronization2: self.khr_synchronization2 || other.khr_synchronization2,
khr_timeline_semaphore: self.khr_timeline_semaphore || other.khr_timeline_semaphore,
khr_uniform_buffer_standard_layout: self.khr_uniform_buffer_standard_layout
|| other.khr_uniform_buffer_standard_layout,
khr_variable_pointers: self.khr_variable_pointers || other.khr_variable_pointers,
khr_video_decode_h264: self.khr_video_decode_h264 || other.khr_video_decode_h264,
khr_video_decode_h265: self.khr_video_decode_h265 || other.khr_video_decode_h265,
khr_video_decode_queue: self.khr_video_decode_queue || other.khr_video_decode_queue,
khr_video_encode_queue: self.khr_video_encode_queue || other.khr_video_encode_queue,
khr_video_queue: self.khr_video_queue || other.khr_video_queue,
khr_vulkan_memory_model: self.khr_vulkan_memory_model || other.khr_vulkan_memory_model,
khr_win32_keyed_mutex: self.khr_win32_keyed_mutex || other.khr_win32_keyed_mutex,
khr_workgroup_memory_explicit_layout: self.khr_workgroup_memory_explicit_layout
|| other.khr_workgroup_memory_explicit_layout,
khr_zero_initialize_workgroup_memory: self.khr_zero_initialize_workgroup_memory
|| other.khr_zero_initialize_workgroup_memory,
ext_4444_formats: self.ext_4444_formats || other.ext_4444_formats,
ext_astc_decode_mode: self.ext_astc_decode_mode || other.ext_astc_decode_mode,
ext_attachment_feedback_loop_layout: self.ext_attachment_feedback_loop_layout
|| other.ext_attachment_feedback_loop_layout,
ext_blend_operation_advanced: self.ext_blend_operation_advanced
|| other.ext_blend_operation_advanced,
ext_border_color_swizzle: self.ext_border_color_swizzle
|| other.ext_border_color_swizzle,
ext_buffer_device_address: self.ext_buffer_device_address
|| other.ext_buffer_device_address,
ext_calibrated_timestamps: self.ext_calibrated_timestamps
|| other.ext_calibrated_timestamps,
ext_color_write_enable: self.ext_color_write_enable || other.ext_color_write_enable,
ext_conditional_rendering: self.ext_conditional_rendering
|| other.ext_conditional_rendering,
ext_conservative_rasterization: self.ext_conservative_rasterization
|| other.ext_conservative_rasterization,
ext_custom_border_color: self.ext_custom_border_color || other.ext_custom_border_color,
ext_debug_marker: self.ext_debug_marker || other.ext_debug_marker,
ext_depth_clamp_zero_one: self.ext_depth_clamp_zero_one
|| other.ext_depth_clamp_zero_one,
ext_depth_clip_control: self.ext_depth_clip_control || other.ext_depth_clip_control,
ext_depth_clip_enable: self.ext_depth_clip_enable || other.ext_depth_clip_enable,
ext_depth_range_unrestricted: self.ext_depth_range_unrestricted
|| other.ext_depth_range_unrestricted,
ext_descriptor_buffer: self.ext_descriptor_buffer || other.ext_descriptor_buffer,
ext_descriptor_indexing: self.ext_descriptor_indexing || other.ext_descriptor_indexing,
ext_device_address_binding_report: self.ext_device_address_binding_report
|| other.ext_device_address_binding_report,
ext_device_fault: self.ext_device_fault || other.ext_device_fault,
ext_device_memory_report: self.ext_device_memory_report
|| other.ext_device_memory_report,
ext_discard_rectangles: self.ext_discard_rectangles || other.ext_discard_rectangles,
ext_display_control: self.ext_display_control || other.ext_display_control,
ext_extended_dynamic_state: self.ext_extended_dynamic_state
|| other.ext_extended_dynamic_state,
ext_extended_dynamic_state2: self.ext_extended_dynamic_state2
|| other.ext_extended_dynamic_state2,
ext_extended_dynamic_state3: self.ext_extended_dynamic_state3
|| other.ext_extended_dynamic_state3,
ext_external_memory_dma_buf: self.ext_external_memory_dma_buf
|| other.ext_external_memory_dma_buf,
ext_external_memory_host: self.ext_external_memory_host
|| other.ext_external_memory_host,
ext_filter_cubic: self.ext_filter_cubic || other.ext_filter_cubic,
ext_fragment_density_map: self.ext_fragment_density_map
|| other.ext_fragment_density_map,
ext_fragment_density_map2: self.ext_fragment_density_map2
|| other.ext_fragment_density_map2,
ext_fragment_shader_interlock: self.ext_fragment_shader_interlock
|| other.ext_fragment_shader_interlock,
ext_full_screen_exclusive: self.ext_full_screen_exclusive
|| other.ext_full_screen_exclusive,
ext_global_priority: self.ext_global_priority || other.ext_global_priority,
ext_global_priority_query: self.ext_global_priority_query
|| other.ext_global_priority_query,
ext_graphics_pipeline_library: self.ext_graphics_pipeline_library
|| other.ext_graphics_pipeline_library,
ext_hdr_metadata: self.ext_hdr_metadata || other.ext_hdr_metadata,
ext_host_query_reset: self.ext_host_query_reset || other.ext_host_query_reset,
ext_image_2d_view_of_3d: self.ext_image_2d_view_of_3d || other.ext_image_2d_view_of_3d,
ext_image_compression_control: self.ext_image_compression_control
|| other.ext_image_compression_control,
ext_image_compression_control_swapchain: self.ext_image_compression_control_swapchain
|| other.ext_image_compression_control_swapchain,
ext_image_drm_format_modifier: self.ext_image_drm_format_modifier
|| other.ext_image_drm_format_modifier,
ext_image_robustness: self.ext_image_robustness || other.ext_image_robustness,
ext_image_view_min_lod: self.ext_image_view_min_lod || other.ext_image_view_min_lod,
ext_index_type_uint8: self.ext_index_type_uint8 || other.ext_index_type_uint8,
ext_inline_uniform_block: self.ext_inline_uniform_block
|| other.ext_inline_uniform_block,
ext_legacy_dithering: self.ext_legacy_dithering || other.ext_legacy_dithering,
ext_line_rasterization: self.ext_line_rasterization || other.ext_line_rasterization,
ext_load_store_op_none: self.ext_load_store_op_none || other.ext_load_store_op_none,
ext_memory_budget: self.ext_memory_budget || other.ext_memory_budget,
ext_memory_priority: self.ext_memory_priority || other.ext_memory_priority,
ext_mesh_shader: self.ext_mesh_shader || other.ext_mesh_shader,
ext_metal_objects: self.ext_metal_objects || other.ext_metal_objects,
ext_multi_draw: self.ext_multi_draw || other.ext_multi_draw,
ext_multisampled_render_to_single_sampled: self
.ext_multisampled_render_to_single_sampled
|| other.ext_multisampled_render_to_single_sampled,
ext_mutable_descriptor_type: self.ext_mutable_descriptor_type
|| other.ext_mutable_descriptor_type,
ext_non_seamless_cube_map: self.ext_non_seamless_cube_map
|| other.ext_non_seamless_cube_map,
ext_opacity_micromap: self.ext_opacity_micromap || other.ext_opacity_micromap,
ext_pageable_device_local_memory: self.ext_pageable_device_local_memory
|| other.ext_pageable_device_local_memory,
ext_pci_bus_info: self.ext_pci_bus_info || other.ext_pci_bus_info,
ext_physical_device_drm: self.ext_physical_device_drm || other.ext_physical_device_drm,
ext_pipeline_creation_cache_control: self.ext_pipeline_creation_cache_control
|| other.ext_pipeline_creation_cache_control,
ext_pipeline_creation_feedback: self.ext_pipeline_creation_feedback
|| other.ext_pipeline_creation_feedback,
ext_pipeline_properties: self.ext_pipeline_properties || other.ext_pipeline_properties,
ext_pipeline_protected_access: self.ext_pipeline_protected_access
|| other.ext_pipeline_protected_access,
ext_pipeline_robustness: self.ext_pipeline_robustness || other.ext_pipeline_robustness,
ext_post_depth_coverage: self.ext_post_depth_coverage || other.ext_post_depth_coverage,
ext_primitive_topology_list_restart: self.ext_primitive_topology_list_restart
|| other.ext_primitive_topology_list_restart,
ext_primitives_generated_query: self.ext_primitives_generated_query
|| other.ext_primitives_generated_query,
ext_private_data: self.ext_private_data || other.ext_private_data,
ext_provoking_vertex: self.ext_provoking_vertex || other.ext_provoking_vertex,
ext_queue_family_foreign: self.ext_queue_family_foreign
|| other.ext_queue_family_foreign,
ext_rasterization_order_attachment_access: self
.ext_rasterization_order_attachment_access
|| other.ext_rasterization_order_attachment_access,
ext_rgba10x6_formats: self.ext_rgba10x6_formats || other.ext_rgba10x6_formats,
ext_robustness2: self.ext_robustness2 || other.ext_robustness2,
ext_sample_locations: self.ext_sample_locations || other.ext_sample_locations,
ext_sampler_filter_minmax: self.ext_sampler_filter_minmax
|| other.ext_sampler_filter_minmax,
ext_scalar_block_layout: self.ext_scalar_block_layout || other.ext_scalar_block_layout,
ext_separate_stencil_usage: self.ext_separate_stencil_usage
|| other.ext_separate_stencil_usage,
ext_shader_atomic_float: self.ext_shader_atomic_float || other.ext_shader_atomic_float,
ext_shader_atomic_float2: self.ext_shader_atomic_float2
|| other.ext_shader_atomic_float2,
ext_shader_demote_to_helper_invocation: self.ext_shader_demote_to_helper_invocation
|| other.ext_shader_demote_to_helper_invocation,
ext_shader_image_atomic_int64: self.ext_shader_image_atomic_int64
|| other.ext_shader_image_atomic_int64,
ext_shader_module_identifier: self.ext_shader_module_identifier
|| other.ext_shader_module_identifier,
ext_shader_stencil_export: self.ext_shader_stencil_export
|| other.ext_shader_stencil_export,
ext_shader_subgroup_ballot: self.ext_shader_subgroup_ballot
|| other.ext_shader_subgroup_ballot,
ext_shader_subgroup_vote: self.ext_shader_subgroup_vote
|| other.ext_shader_subgroup_vote,
ext_shader_viewport_index_layer: self.ext_shader_viewport_index_layer
|| other.ext_shader_viewport_index_layer,
ext_subgroup_size_control: self.ext_subgroup_size_control
|| other.ext_subgroup_size_control,
ext_subpass_merge_feedback: self.ext_subpass_merge_feedback
|| other.ext_subpass_merge_feedback,
ext_swapchain_maintenance1: self.ext_swapchain_maintenance1
|| other.ext_swapchain_maintenance1,
ext_texel_buffer_alignment: self.ext_texel_buffer_alignment
|| other.ext_texel_buffer_alignment,
ext_texture_compression_astc_hdr: self.ext_texture_compression_astc_hdr
|| other.ext_texture_compression_astc_hdr,
ext_tooling_info: self.ext_tooling_info || other.ext_tooling_info,
ext_transform_feedback: self.ext_transform_feedback || other.ext_transform_feedback,
ext_validation_cache: self.ext_validation_cache || other.ext_validation_cache,
ext_vertex_attribute_divisor: self.ext_vertex_attribute_divisor
|| other.ext_vertex_attribute_divisor,
ext_vertex_input_dynamic_state: self.ext_vertex_input_dynamic_state
|| other.ext_vertex_input_dynamic_state,
ext_video_encode_h264: self.ext_video_encode_h264 || other.ext_video_encode_h264,
ext_video_encode_h265: self.ext_video_encode_h265 || other.ext_video_encode_h265,
ext_ycbcr_2plane_444_formats: self.ext_ycbcr_2plane_444_formats
|| other.ext_ycbcr_2plane_444_formats,
ext_ycbcr_image_arrays: self.ext_ycbcr_image_arrays || other.ext_ycbcr_image_arrays,
amd_buffer_marker: self.amd_buffer_marker || other.amd_buffer_marker,
amd_device_coherent_memory: self.amd_device_coherent_memory
|| other.amd_device_coherent_memory,
amd_display_native_hdr: self.amd_display_native_hdr || other.amd_display_native_hdr,
amd_draw_indirect_count: self.amd_draw_indirect_count || other.amd_draw_indirect_count,
amd_gcn_shader: self.amd_gcn_shader || other.amd_gcn_shader,
amd_gpu_shader_half_float: self.amd_gpu_shader_half_float
|| other.amd_gpu_shader_half_float,
amd_gpu_shader_int16: self.amd_gpu_shader_int16 || other.amd_gpu_shader_int16,
amd_memory_overallocation_behavior: self.amd_memory_overallocation_behavior
|| other.amd_memory_overallocation_behavior,
amd_mixed_attachment_samples: self.amd_mixed_attachment_samples
|| other.amd_mixed_attachment_samples,
amd_pipeline_compiler_control: self.amd_pipeline_compiler_control
|| other.amd_pipeline_compiler_control,
amd_rasterization_order: self.amd_rasterization_order || other.amd_rasterization_order,
amd_shader_ballot: self.amd_shader_ballot || other.amd_shader_ballot,
amd_shader_core_properties: self.amd_shader_core_properties
|| other.amd_shader_core_properties,
amd_shader_core_properties2: self.amd_shader_core_properties2
|| other.amd_shader_core_properties2,
amd_shader_early_and_late_fragment_tests: self.amd_shader_early_and_late_fragment_tests
|| other.amd_shader_early_and_late_fragment_tests,
amd_shader_explicit_vertex_parameter: self.amd_shader_explicit_vertex_parameter
|| other.amd_shader_explicit_vertex_parameter,
amd_shader_fragment_mask: self.amd_shader_fragment_mask
|| other.amd_shader_fragment_mask,
amd_shader_image_load_store_lod: self.amd_shader_image_load_store_lod
|| other.amd_shader_image_load_store_lod,
amd_shader_info: self.amd_shader_info || other.amd_shader_info,
amd_shader_trinary_minmax: self.amd_shader_trinary_minmax
|| other.amd_shader_trinary_minmax,
amd_texture_gather_bias_lod: self.amd_texture_gather_bias_lod
|| other.amd_texture_gather_bias_lod,
android_external_memory_android_hardware_buffer: self
.android_external_memory_android_hardware_buffer
|| other.android_external_memory_android_hardware_buffer,
arm_rasterization_order_attachment_access: self
.arm_rasterization_order_attachment_access
|| other.arm_rasterization_order_attachment_access,
arm_shader_core_builtins: self.arm_shader_core_builtins
|| other.arm_shader_core_builtins,
fuchsia_buffer_collection: self.fuchsia_buffer_collection
|| other.fuchsia_buffer_collection,
fuchsia_external_memory: self.fuchsia_external_memory || other.fuchsia_external_memory,
fuchsia_external_semaphore: self.fuchsia_external_semaphore
|| other.fuchsia_external_semaphore,
ggp_frame_token: self.ggp_frame_token || other.ggp_frame_token,
google_decorate_string: self.google_decorate_string || other.google_decorate_string,
google_display_timing: self.google_display_timing || other.google_display_timing,
google_hlsl_functionality1: self.google_hlsl_functionality1
|| other.google_hlsl_functionality1,
google_user_type: self.google_user_type || other.google_user_type,
huawei_invocation_mask: self.huawei_invocation_mask || other.huawei_invocation_mask,
huawei_subpass_shading: self.huawei_subpass_shading || other.huawei_subpass_shading,
img_filter_cubic: self.img_filter_cubic || other.img_filter_cubic,
img_format_pvrtc: self.img_format_pvrtc || other.img_format_pvrtc,
intel_performance_query: self.intel_performance_query || other.intel_performance_query,
intel_shader_integer_functions2: self.intel_shader_integer_functions2
|| other.intel_shader_integer_functions2,
nvx_binary_import: self.nvx_binary_import || other.nvx_binary_import,
nvx_image_view_handle: self.nvx_image_view_handle || other.nvx_image_view_handle,
nvx_multiview_per_view_attributes: self.nvx_multiview_per_view_attributes
|| other.nvx_multiview_per_view_attributes,
nv_acquire_winrt_display: self.nv_acquire_winrt_display
|| other.nv_acquire_winrt_display,
nv_clip_space_w_scaling: self.nv_clip_space_w_scaling || other.nv_clip_space_w_scaling,
nv_compute_shader_derivatives: self.nv_compute_shader_derivatives
|| other.nv_compute_shader_derivatives,
nv_cooperative_matrix: self.nv_cooperative_matrix || other.nv_cooperative_matrix,
nv_copy_memory_indirect: self.nv_copy_memory_indirect || other.nv_copy_memory_indirect,
nv_corner_sampled_image: self.nv_corner_sampled_image || other.nv_corner_sampled_image,
nv_coverage_reduction_mode: self.nv_coverage_reduction_mode
|| other.nv_coverage_reduction_mode,
nv_dedicated_allocation: self.nv_dedicated_allocation || other.nv_dedicated_allocation,
nv_dedicated_allocation_image_aliasing: self.nv_dedicated_allocation_image_aliasing
|| other.nv_dedicated_allocation_image_aliasing,
nv_device_diagnostic_checkpoints: self.nv_device_diagnostic_checkpoints
|| other.nv_device_diagnostic_checkpoints,
nv_device_diagnostics_config: self.nv_device_diagnostics_config
|| other.nv_device_diagnostics_config,
nv_device_generated_commands: self.nv_device_generated_commands
|| other.nv_device_generated_commands,
nv_external_memory: self.nv_external_memory || other.nv_external_memory,
nv_external_memory_rdma: self.nv_external_memory_rdma || other.nv_external_memory_rdma,
nv_external_memory_win32: self.nv_external_memory_win32
|| other.nv_external_memory_win32,
nv_fill_rectangle: self.nv_fill_rectangle || other.nv_fill_rectangle,
nv_fragment_coverage_to_color: self.nv_fragment_coverage_to_color
|| other.nv_fragment_coverage_to_color,
nv_fragment_shader_barycentric: self.nv_fragment_shader_barycentric
|| other.nv_fragment_shader_barycentric,
nv_fragment_shading_rate_enums: self.nv_fragment_shading_rate_enums
|| other.nv_fragment_shading_rate_enums,
nv_framebuffer_mixed_samples: self.nv_framebuffer_mixed_samples
|| other.nv_framebuffer_mixed_samples,
nv_geometry_shader_passthrough: self.nv_geometry_shader_passthrough
|| other.nv_geometry_shader_passthrough,
nv_glsl_shader: self.nv_glsl_shader || other.nv_glsl_shader,
nv_inherited_viewport_scissor: self.nv_inherited_viewport_scissor
|| other.nv_inherited_viewport_scissor,
nv_linear_color_attachment: self.nv_linear_color_attachment
|| other.nv_linear_color_attachment,
nv_memory_decompression: self.nv_memory_decompression || other.nv_memory_decompression,
nv_mesh_shader: self.nv_mesh_shader || other.nv_mesh_shader,
nv_optical_flow: self.nv_optical_flow || other.nv_optical_flow,
nv_present_barrier: self.nv_present_barrier || other.nv_present_barrier,
nv_ray_tracing: self.nv_ray_tracing || other.nv_ray_tracing,
nv_ray_tracing_invocation_reorder: self.nv_ray_tracing_invocation_reorder
|| other.nv_ray_tracing_invocation_reorder,
nv_ray_tracing_motion_blur: self.nv_ray_tracing_motion_blur
|| other.nv_ray_tracing_motion_blur,
nv_representative_fragment_test: self.nv_representative_fragment_test
|| other.nv_representative_fragment_test,
nv_sample_mask_override_coverage: self.nv_sample_mask_override_coverage
|| other.nv_sample_mask_override_coverage,
nv_scissor_exclusive: self.nv_scissor_exclusive || other.nv_scissor_exclusive,
nv_shader_image_footprint: self.nv_shader_image_footprint
|| other.nv_shader_image_footprint,
nv_shader_sm_builtins: self.nv_shader_sm_builtins || other.nv_shader_sm_builtins,
nv_shader_subgroup_partitioned: self.nv_shader_subgroup_partitioned
|| other.nv_shader_subgroup_partitioned,
nv_shading_rate_image: self.nv_shading_rate_image || other.nv_shading_rate_image,
nv_viewport_array2: self.nv_viewport_array2 || other.nv_viewport_array2,
nv_viewport_swizzle: self.nv_viewport_swizzle || other.nv_viewport_swizzle,
nv_win32_keyed_mutex: self.nv_win32_keyed_mutex || other.nv_win32_keyed_mutex,
qcom_fragment_density_map_offset: self.qcom_fragment_density_map_offset
|| other.qcom_fragment_density_map_offset,
qcom_image_processing: self.qcom_image_processing || other.qcom_image_processing,
qcom_multiview_per_view_viewports: self.qcom_multiview_per_view_viewports
|| other.qcom_multiview_per_view_viewports,
qcom_render_pass_shader_resolve: self.qcom_render_pass_shader_resolve
|| other.qcom_render_pass_shader_resolve,
qcom_render_pass_store_ops: self.qcom_render_pass_store_ops
|| other.qcom_render_pass_store_ops,
qcom_render_pass_transform: self.qcom_render_pass_transform
|| other.qcom_render_pass_transform,
qcom_rotated_copy_commands: self.qcom_rotated_copy_commands
|| other.qcom_rotated_copy_commands,
qcom_tile_properties: self.qcom_tile_properties || other.qcom_tile_properties,
sec_amigo_profiling: self.sec_amigo_profiling || other.sec_amigo_profiling,
valve_descriptor_set_host_mapping: self.valve_descriptor_set_host_mapping
|| other.valve_descriptor_set_host_mapping,
valve_mutable_descriptor_type: self.valve_mutable_descriptor_type
|| other.valve_mutable_descriptor_type,
_ne: crate::NonExhaustive(()),
}
}
#[doc = r" Returns the intersection of `self` and `other`."]
#[inline]
pub const fn intersection(&self, other: &Self) -> Self {
Self {
khr_16bit_storage: self.khr_16bit_storage && other.khr_16bit_storage,
khr_8bit_storage: self.khr_8bit_storage && other.khr_8bit_storage,
khr_acceleration_structure: self.khr_acceleration_structure
&& other.khr_acceleration_structure,
khr_bind_memory2: self.khr_bind_memory2 && other.khr_bind_memory2,
khr_buffer_device_address: self.khr_buffer_device_address
&& other.khr_buffer_device_address,
khr_copy_commands2: self.khr_copy_commands2 && other.khr_copy_commands2,
khr_create_renderpass2: self.khr_create_renderpass2 && other.khr_create_renderpass2,
khr_dedicated_allocation: self.khr_dedicated_allocation
&& other.khr_dedicated_allocation,
khr_deferred_host_operations: self.khr_deferred_host_operations
&& other.khr_deferred_host_operations,
khr_depth_stencil_resolve: self.khr_depth_stencil_resolve
&& other.khr_depth_stencil_resolve,
khr_descriptor_update_template: self.khr_descriptor_update_template
&& other.khr_descriptor_update_template,
khr_device_group: self.khr_device_group && other.khr_device_group,
khr_display_swapchain: self.khr_display_swapchain && other.khr_display_swapchain,
khr_draw_indirect_count: self.khr_draw_indirect_count && other.khr_draw_indirect_count,
khr_driver_properties: self.khr_driver_properties && other.khr_driver_properties,
khr_dynamic_rendering: self.khr_dynamic_rendering && other.khr_dynamic_rendering,
khr_external_fence: self.khr_external_fence && other.khr_external_fence,
khr_external_fence_fd: self.khr_external_fence_fd && other.khr_external_fence_fd,
khr_external_fence_win32: self.khr_external_fence_win32
&& other.khr_external_fence_win32,
khr_external_memory: self.khr_external_memory && other.khr_external_memory,
khr_external_memory_fd: self.khr_external_memory_fd && other.khr_external_memory_fd,
khr_external_memory_win32: self.khr_external_memory_win32
&& other.khr_external_memory_win32,
khr_external_semaphore: self.khr_external_semaphore && other.khr_external_semaphore,
khr_external_semaphore_fd: self.khr_external_semaphore_fd
&& other.khr_external_semaphore_fd,
khr_external_semaphore_win32: self.khr_external_semaphore_win32
&& other.khr_external_semaphore_win32,
khr_format_feature_flags2: self.khr_format_feature_flags2
&& other.khr_format_feature_flags2,
khr_fragment_shader_barycentric: self.khr_fragment_shader_barycentric
&& other.khr_fragment_shader_barycentric,
khr_fragment_shading_rate: self.khr_fragment_shading_rate
&& other.khr_fragment_shading_rate,
khr_get_memory_requirements2: self.khr_get_memory_requirements2
&& other.khr_get_memory_requirements2,
khr_global_priority: self.khr_global_priority && other.khr_global_priority,
khr_image_format_list: self.khr_image_format_list && other.khr_image_format_list,
khr_imageless_framebuffer: self.khr_imageless_framebuffer
&& other.khr_imageless_framebuffer,
khr_incremental_present: self.khr_incremental_present && other.khr_incremental_present,
khr_maintenance1: self.khr_maintenance1 && other.khr_maintenance1,
khr_maintenance2: self.khr_maintenance2 && other.khr_maintenance2,
khr_maintenance3: self.khr_maintenance3 && other.khr_maintenance3,
khr_maintenance4: self.khr_maintenance4 && other.khr_maintenance4,
khr_multiview: self.khr_multiview && other.khr_multiview,
khr_performance_query: self.khr_performance_query && other.khr_performance_query,
khr_pipeline_executable_properties: self.khr_pipeline_executable_properties
&& other.khr_pipeline_executable_properties,
khr_pipeline_library: self.khr_pipeline_library && other.khr_pipeline_library,
khr_portability_subset: self.khr_portability_subset && other.khr_portability_subset,
khr_present_id: self.khr_present_id && other.khr_present_id,
khr_present_wait: self.khr_present_wait && other.khr_present_wait,
khr_push_descriptor: self.khr_push_descriptor && other.khr_push_descriptor,
khr_ray_query: self.khr_ray_query && other.khr_ray_query,
khr_ray_tracing_maintenance1: self.khr_ray_tracing_maintenance1
&& other.khr_ray_tracing_maintenance1,
khr_ray_tracing_pipeline: self.khr_ray_tracing_pipeline
&& other.khr_ray_tracing_pipeline,
khr_relaxed_block_layout: self.khr_relaxed_block_layout
&& other.khr_relaxed_block_layout,
khr_sampler_mirror_clamp_to_edge: self.khr_sampler_mirror_clamp_to_edge
&& other.khr_sampler_mirror_clamp_to_edge,
khr_sampler_ycbcr_conversion: self.khr_sampler_ycbcr_conversion
&& other.khr_sampler_ycbcr_conversion,
khr_separate_depth_stencil_layouts: self.khr_separate_depth_stencil_layouts
&& other.khr_separate_depth_stencil_layouts,
khr_shader_atomic_int64: self.khr_shader_atomic_int64 && other.khr_shader_atomic_int64,
khr_shader_clock: self.khr_shader_clock && other.khr_shader_clock,
khr_shader_draw_parameters: self.khr_shader_draw_parameters
&& other.khr_shader_draw_parameters,
khr_shader_float16_int8: self.khr_shader_float16_int8 && other.khr_shader_float16_int8,
khr_shader_float_controls: self.khr_shader_float_controls
&& other.khr_shader_float_controls,
khr_shader_integer_dot_product: self.khr_shader_integer_dot_product
&& other.khr_shader_integer_dot_product,
khr_shader_non_semantic_info: self.khr_shader_non_semantic_info
&& other.khr_shader_non_semantic_info,
khr_shader_subgroup_extended_types: self.khr_shader_subgroup_extended_types
&& other.khr_shader_subgroup_extended_types,
khr_shader_subgroup_uniform_control_flow: self.khr_shader_subgroup_uniform_control_flow
&& other.khr_shader_subgroup_uniform_control_flow,
khr_shader_terminate_invocation: self.khr_shader_terminate_invocation
&& other.khr_shader_terminate_invocation,
khr_shared_presentable_image: self.khr_shared_presentable_image
&& other.khr_shared_presentable_image,
khr_spirv_1_4: self.khr_spirv_1_4 && other.khr_spirv_1_4,
khr_storage_buffer_storage_class: self.khr_storage_buffer_storage_class
&& other.khr_storage_buffer_storage_class,
khr_swapchain: self.khr_swapchain && other.khr_swapchain,
khr_swapchain_mutable_format: self.khr_swapchain_mutable_format
&& other.khr_swapchain_mutable_format,
khr_synchronization2: self.khr_synchronization2 && other.khr_synchronization2,
khr_timeline_semaphore: self.khr_timeline_semaphore && other.khr_timeline_semaphore,
khr_uniform_buffer_standard_layout: self.khr_uniform_buffer_standard_layout
&& other.khr_uniform_buffer_standard_layout,
khr_variable_pointers: self.khr_variable_pointers && other.khr_variable_pointers,
khr_video_decode_h264: self.khr_video_decode_h264 && other.khr_video_decode_h264,
khr_video_decode_h265: self.khr_video_decode_h265 && other.khr_video_decode_h265,
khr_video_decode_queue: self.khr_video_decode_queue && other.khr_video_decode_queue,
khr_video_encode_queue: self.khr_video_encode_queue && other.khr_video_encode_queue,
khr_video_queue: self.khr_video_queue && other.khr_video_queue,
khr_vulkan_memory_model: self.khr_vulkan_memory_model && other.khr_vulkan_memory_model,
khr_win32_keyed_mutex: self.khr_win32_keyed_mutex && other.khr_win32_keyed_mutex,
khr_workgroup_memory_explicit_layout: self.khr_workgroup_memory_explicit_layout
&& other.khr_workgroup_memory_explicit_layout,
khr_zero_initialize_workgroup_memory: self.khr_zero_initialize_workgroup_memory
&& other.khr_zero_initialize_workgroup_memory,
ext_4444_formats: self.ext_4444_formats && other.ext_4444_formats,
ext_astc_decode_mode: self.ext_astc_decode_mode && other.ext_astc_decode_mode,
ext_attachment_feedback_loop_layout: self.ext_attachment_feedback_loop_layout
&& other.ext_attachment_feedback_loop_layout,
ext_blend_operation_advanced: self.ext_blend_operation_advanced
&& other.ext_blend_operation_advanced,
ext_border_color_swizzle: self.ext_border_color_swizzle
&& other.ext_border_color_swizzle,
ext_buffer_device_address: self.ext_buffer_device_address
&& other.ext_buffer_device_address,
ext_calibrated_timestamps: self.ext_calibrated_timestamps
&& other.ext_calibrated_timestamps,
ext_color_write_enable: self.ext_color_write_enable && other.ext_color_write_enable,
ext_conditional_rendering: self.ext_conditional_rendering
&& other.ext_conditional_rendering,
ext_conservative_rasterization: self.ext_conservative_rasterization
&& other.ext_conservative_rasterization,
ext_custom_border_color: self.ext_custom_border_color && other.ext_custom_border_color,
ext_debug_marker: self.ext_debug_marker && other.ext_debug_marker,
ext_depth_clamp_zero_one: self.ext_depth_clamp_zero_one
&& other.ext_depth_clamp_zero_one,
ext_depth_clip_control: self.ext_depth_clip_control && other.ext_depth_clip_control,
ext_depth_clip_enable: self.ext_depth_clip_enable && other.ext_depth_clip_enable,
ext_depth_range_unrestricted: self.ext_depth_range_unrestricted
&& other.ext_depth_range_unrestricted,
ext_descriptor_buffer: self.ext_descriptor_buffer && other.ext_descriptor_buffer,
ext_descriptor_indexing: self.ext_descriptor_indexing && other.ext_descriptor_indexing,
ext_device_address_binding_report: self.ext_device_address_binding_report
&& other.ext_device_address_binding_report,
ext_device_fault: self.ext_device_fault && other.ext_device_fault,
ext_device_memory_report: self.ext_device_memory_report
&& other.ext_device_memory_report,
ext_discard_rectangles: self.ext_discard_rectangles && other.ext_discard_rectangles,
ext_display_control: self.ext_display_control && other.ext_display_control,
ext_extended_dynamic_state: self.ext_extended_dynamic_state
&& other.ext_extended_dynamic_state,
ext_extended_dynamic_state2: self.ext_extended_dynamic_state2
&& other.ext_extended_dynamic_state2,
ext_extended_dynamic_state3: self.ext_extended_dynamic_state3
&& other.ext_extended_dynamic_state3,
ext_external_memory_dma_buf: self.ext_external_memory_dma_buf
&& other.ext_external_memory_dma_buf,
ext_external_memory_host: self.ext_external_memory_host
&& other.ext_external_memory_host,
ext_filter_cubic: self.ext_filter_cubic && other.ext_filter_cubic,
ext_fragment_density_map: self.ext_fragment_density_map
&& other.ext_fragment_density_map,
ext_fragment_density_map2: self.ext_fragment_density_map2
&& other.ext_fragment_density_map2,
ext_fragment_shader_interlock: self.ext_fragment_shader_interlock
&& other.ext_fragment_shader_interlock,
ext_full_screen_exclusive: self.ext_full_screen_exclusive
&& other.ext_full_screen_exclusive,
ext_global_priority: self.ext_global_priority && other.ext_global_priority,
ext_global_priority_query: self.ext_global_priority_query
&& other.ext_global_priority_query,
ext_graphics_pipeline_library: self.ext_graphics_pipeline_library
&& other.ext_graphics_pipeline_library,
ext_hdr_metadata: self.ext_hdr_metadata && other.ext_hdr_metadata,
ext_host_query_reset: self.ext_host_query_reset && other.ext_host_query_reset,
ext_image_2d_view_of_3d: self.ext_image_2d_view_of_3d && other.ext_image_2d_view_of_3d,
ext_image_compression_control: self.ext_image_compression_control
&& other.ext_image_compression_control,
ext_image_compression_control_swapchain: self.ext_image_compression_control_swapchain
&& other.ext_image_compression_control_swapchain,
ext_image_drm_format_modifier: self.ext_image_drm_format_modifier
&& other.ext_image_drm_format_modifier,
ext_image_robustness: self.ext_image_robustness && other.ext_image_robustness,
ext_image_view_min_lod: self.ext_image_view_min_lod && other.ext_image_view_min_lod,
ext_index_type_uint8: self.ext_index_type_uint8 && other.ext_index_type_uint8,
ext_inline_uniform_block: self.ext_inline_uniform_block
&& other.ext_inline_uniform_block,
ext_legacy_dithering: self.ext_legacy_dithering && other.ext_legacy_dithering,
ext_line_rasterization: self.ext_line_rasterization && other.ext_line_rasterization,
ext_load_store_op_none: self.ext_load_store_op_none && other.ext_load_store_op_none,
ext_memory_budget: self.ext_memory_budget && other.ext_memory_budget,
ext_memory_priority: self.ext_memory_priority && other.ext_memory_priority,
ext_mesh_shader: self.ext_mesh_shader && other.ext_mesh_shader,
ext_metal_objects: self.ext_metal_objects && other.ext_metal_objects,
ext_multi_draw: self.ext_multi_draw && other.ext_multi_draw,
ext_multisampled_render_to_single_sampled: self
.ext_multisampled_render_to_single_sampled
&& other.ext_multisampled_render_to_single_sampled,
ext_mutable_descriptor_type: self.ext_mutable_descriptor_type
&& other.ext_mutable_descriptor_type,
ext_non_seamless_cube_map: self.ext_non_seamless_cube_map
&& other.ext_non_seamless_cube_map,
ext_opacity_micromap: self.ext_opacity_micromap && other.ext_opacity_micromap,
ext_pageable_device_local_memory: self.ext_pageable_device_local_memory
&& other.ext_pageable_device_local_memory,
ext_pci_bus_info: self.ext_pci_bus_info && other.ext_pci_bus_info,
ext_physical_device_drm: self.ext_physical_device_drm && other.ext_physical_device_drm,
ext_pipeline_creation_cache_control: self.ext_pipeline_creation_cache_control
&& other.ext_pipeline_creation_cache_control,
ext_pipeline_creation_feedback: self.ext_pipeline_creation_feedback
&& other.ext_pipeline_creation_feedback,
ext_pipeline_properties: self.ext_pipeline_properties && other.ext_pipeline_properties,
ext_pipeline_protected_access: self.ext_pipeline_protected_access
&& other.ext_pipeline_protected_access,
ext_pipeline_robustness: self.ext_pipeline_robustness && other.ext_pipeline_robustness,
ext_post_depth_coverage: self.ext_post_depth_coverage && other.ext_post_depth_coverage,
ext_primitive_topology_list_restart: self.ext_primitive_topology_list_restart
&& other.ext_primitive_topology_list_restart,
ext_primitives_generated_query: self.ext_primitives_generated_query
&& other.ext_primitives_generated_query,
ext_private_data: self.ext_private_data && other.ext_private_data,
ext_provoking_vertex: self.ext_provoking_vertex && other.ext_provoking_vertex,
ext_queue_family_foreign: self.ext_queue_family_foreign
&& other.ext_queue_family_foreign,
ext_rasterization_order_attachment_access: self
.ext_rasterization_order_attachment_access
&& other.ext_rasterization_order_attachment_access,
ext_rgba10x6_formats: self.ext_rgba10x6_formats && other.ext_rgba10x6_formats,
ext_robustness2: self.ext_robustness2 && other.ext_robustness2,
ext_sample_locations: self.ext_sample_locations && other.ext_sample_locations,
ext_sampler_filter_minmax: self.ext_sampler_filter_minmax
&& other.ext_sampler_filter_minmax,
ext_scalar_block_layout: self.ext_scalar_block_layout && other.ext_scalar_block_layout,
ext_separate_stencil_usage: self.ext_separate_stencil_usage
&& other.ext_separate_stencil_usage,
ext_shader_atomic_float: self.ext_shader_atomic_float && other.ext_shader_atomic_float,
ext_shader_atomic_float2: self.ext_shader_atomic_float2
&& other.ext_shader_atomic_float2,
ext_shader_demote_to_helper_invocation: self.ext_shader_demote_to_helper_invocation
&& other.ext_shader_demote_to_helper_invocation,
ext_shader_image_atomic_int64: self.ext_shader_image_atomic_int64
&& other.ext_shader_image_atomic_int64,
ext_shader_module_identifier: self.ext_shader_module_identifier
&& other.ext_shader_module_identifier,
ext_shader_stencil_export: self.ext_shader_stencil_export
&& other.ext_shader_stencil_export,
ext_shader_subgroup_ballot: self.ext_shader_subgroup_ballot
&& other.ext_shader_subgroup_ballot,
ext_shader_subgroup_vote: self.ext_shader_subgroup_vote
&& other.ext_shader_subgroup_vote,
ext_shader_viewport_index_layer: self.ext_shader_viewport_index_layer
&& other.ext_shader_viewport_index_layer,
ext_subgroup_size_control: self.ext_subgroup_size_control
&& other.ext_subgroup_size_control,
ext_subpass_merge_feedback: self.ext_subpass_merge_feedback
&& other.ext_subpass_merge_feedback,
ext_swapchain_maintenance1: self.ext_swapchain_maintenance1
&& other.ext_swapchain_maintenance1,
ext_texel_buffer_alignment: self.ext_texel_buffer_alignment
&& other.ext_texel_buffer_alignment,
ext_texture_compression_astc_hdr: self.ext_texture_compression_astc_hdr
&& other.ext_texture_compression_astc_hdr,
ext_tooling_info: self.ext_tooling_info && other.ext_tooling_info,
ext_transform_feedback: self.ext_transform_feedback && other.ext_transform_feedback,
ext_validation_cache: self.ext_validation_cache && other.ext_validation_cache,
ext_vertex_attribute_divisor: self.ext_vertex_attribute_divisor
&& other.ext_vertex_attribute_divisor,
ext_vertex_input_dynamic_state: self.ext_vertex_input_dynamic_state
&& other.ext_vertex_input_dynamic_state,
ext_video_encode_h264: self.ext_video_encode_h264 && other.ext_video_encode_h264,
ext_video_encode_h265: self.ext_video_encode_h265 && other.ext_video_encode_h265,
ext_ycbcr_2plane_444_formats: self.ext_ycbcr_2plane_444_formats
&& other.ext_ycbcr_2plane_444_formats,
ext_ycbcr_image_arrays: self.ext_ycbcr_image_arrays && other.ext_ycbcr_image_arrays,
amd_buffer_marker: self.amd_buffer_marker && other.amd_buffer_marker,
amd_device_coherent_memory: self.amd_device_coherent_memory
&& other.amd_device_coherent_memory,
amd_display_native_hdr: self.amd_display_native_hdr && other.amd_display_native_hdr,
amd_draw_indirect_count: self.amd_draw_indirect_count && other.amd_draw_indirect_count,
amd_gcn_shader: self.amd_gcn_shader && other.amd_gcn_shader,
amd_gpu_shader_half_float: self.amd_gpu_shader_half_float
&& other.amd_gpu_shader_half_float,
amd_gpu_shader_int16: self.amd_gpu_shader_int16 && other.amd_gpu_shader_int16,
amd_memory_overallocation_behavior: self.amd_memory_overallocation_behavior
&& other.amd_memory_overallocation_behavior,
amd_mixed_attachment_samples: self.amd_mixed_attachment_samples
&& other.amd_mixed_attachment_samples,
amd_pipeline_compiler_control: self.amd_pipeline_compiler_control
&& other.amd_pipeline_compiler_control,
amd_rasterization_order: self.amd_rasterization_order && other.amd_rasterization_order,
amd_shader_ballot: self.amd_shader_ballot && other.amd_shader_ballot,
amd_shader_core_properties: self.amd_shader_core_properties
&& other.amd_shader_core_properties,
amd_shader_core_properties2: self.amd_shader_core_properties2
&& other.amd_shader_core_properties2,
amd_shader_early_and_late_fragment_tests: self.amd_shader_early_and_late_fragment_tests
&& other.amd_shader_early_and_late_fragment_tests,
amd_shader_explicit_vertex_parameter: self.amd_shader_explicit_vertex_parameter
&& other.amd_shader_explicit_vertex_parameter,
amd_shader_fragment_mask: self.amd_shader_fragment_mask
&& other.amd_shader_fragment_mask,
amd_shader_image_load_store_lod: self.amd_shader_image_load_store_lod
&& other.amd_shader_image_load_store_lod,
amd_shader_info: self.amd_shader_info && other.amd_shader_info,
amd_shader_trinary_minmax: self.amd_shader_trinary_minmax
&& other.amd_shader_trinary_minmax,
amd_texture_gather_bias_lod: self.amd_texture_gather_bias_lod
&& other.amd_texture_gather_bias_lod,
android_external_memory_android_hardware_buffer: self
.android_external_memory_android_hardware_buffer
&& other.android_external_memory_android_hardware_buffer,
arm_rasterization_order_attachment_access: self
.arm_rasterization_order_attachment_access
&& other.arm_rasterization_order_attachment_access,
arm_shader_core_builtins: self.arm_shader_core_builtins
&& other.arm_shader_core_builtins,
fuchsia_buffer_collection: self.fuchsia_buffer_collection
&& other.fuchsia_buffer_collection,
fuchsia_external_memory: self.fuchsia_external_memory && other.fuchsia_external_memory,
fuchsia_external_semaphore: self.fuchsia_external_semaphore
&& other.fuchsia_external_semaphore,
ggp_frame_token: self.ggp_frame_token && other.ggp_frame_token,
google_decorate_string: self.google_decorate_string && other.google_decorate_string,
google_display_timing: self.google_display_timing && other.google_display_timing,
google_hlsl_functionality1: self.google_hlsl_functionality1
&& other.google_hlsl_functionality1,
google_user_type: self.google_user_type && other.google_user_type,
huawei_invocation_mask: self.huawei_invocation_mask && other.huawei_invocation_mask,
huawei_subpass_shading: self.huawei_subpass_shading && other.huawei_subpass_shading,
img_filter_cubic: self.img_filter_cubic && other.img_filter_cubic,
img_format_pvrtc: self.img_format_pvrtc && other.img_format_pvrtc,
intel_performance_query: self.intel_performance_query && other.intel_performance_query,
intel_shader_integer_functions2: self.intel_shader_integer_functions2
&& other.intel_shader_integer_functions2,
nvx_binary_import: self.nvx_binary_import && other.nvx_binary_import,
nvx_image_view_handle: self.nvx_image_view_handle && other.nvx_image_view_handle,
nvx_multiview_per_view_attributes: self.nvx_multiview_per_view_attributes
&& other.nvx_multiview_per_view_attributes,
nv_acquire_winrt_display: self.nv_acquire_winrt_display
&& other.nv_acquire_winrt_display,
nv_clip_space_w_scaling: self.nv_clip_space_w_scaling && other.nv_clip_space_w_scaling,
nv_compute_shader_derivatives: self.nv_compute_shader_derivatives
&& other.nv_compute_shader_derivatives,
nv_cooperative_matrix: self.nv_cooperative_matrix && other.nv_cooperative_matrix,
nv_copy_memory_indirect: self.nv_copy_memory_indirect && other.nv_copy_memory_indirect,
nv_corner_sampled_image: self.nv_corner_sampled_image && other.nv_corner_sampled_image,
nv_coverage_reduction_mode: self.nv_coverage_reduction_mode
&& other.nv_coverage_reduction_mode,
nv_dedicated_allocation: self.nv_dedicated_allocation && other.nv_dedicated_allocation,
nv_dedicated_allocation_image_aliasing: self.nv_dedicated_allocation_image_aliasing
&& other.nv_dedicated_allocation_image_aliasing,
nv_device_diagnostic_checkpoints: self.nv_device_diagnostic_checkpoints
&& other.nv_device_diagnostic_checkpoints,
nv_device_diagnostics_config: self.nv_device_diagnostics_config
&& other.nv_device_diagnostics_config,
nv_device_generated_commands: self.nv_device_generated_commands
&& other.nv_device_generated_commands,
nv_external_memory: self.nv_external_memory && other.nv_external_memory,
nv_external_memory_rdma: self.nv_external_memory_rdma && other.nv_external_memory_rdma,
nv_external_memory_win32: self.nv_external_memory_win32
&& other.nv_external_memory_win32,
nv_fill_rectangle: self.nv_fill_rectangle && other.nv_fill_rectangle,
nv_fragment_coverage_to_color: self.nv_fragment_coverage_to_color
&& other.nv_fragment_coverage_to_color,
nv_fragment_shader_barycentric: self.nv_fragment_shader_barycentric
&& other.nv_fragment_shader_barycentric,
nv_fragment_shading_rate_enums: self.nv_fragment_shading_rate_enums
&& other.nv_fragment_shading_rate_enums,
nv_framebuffer_mixed_samples: self.nv_framebuffer_mixed_samples
&& other.nv_framebuffer_mixed_samples,
nv_geometry_shader_passthrough: self.nv_geometry_shader_passthrough
&& other.nv_geometry_shader_passthrough,
nv_glsl_shader: self.nv_glsl_shader && other.nv_glsl_shader,
nv_inherited_viewport_scissor: self.nv_inherited_viewport_scissor
&& other.nv_inherited_viewport_scissor,
nv_linear_color_attachment: self.nv_linear_color_attachment
&& other.nv_linear_color_attachment,
nv_memory_decompression: self.nv_memory_decompression && other.nv_memory_decompression,
nv_mesh_shader: self.nv_mesh_shader && other.nv_mesh_shader,
nv_optical_flow: self.nv_optical_flow && other.nv_optical_flow,
nv_present_barrier: self.nv_present_barrier && other.nv_present_barrier,
nv_ray_tracing: self.nv_ray_tracing && other.nv_ray_tracing,
nv_ray_tracing_invocation_reorder: self.nv_ray_tracing_invocation_reorder
&& other.nv_ray_tracing_invocation_reorder,
nv_ray_tracing_motion_blur: self.nv_ray_tracing_motion_blur
&& other.nv_ray_tracing_motion_blur,
nv_representative_fragment_test: self.nv_representative_fragment_test
&& other.nv_representative_fragment_test,
nv_sample_mask_override_coverage: self.nv_sample_mask_override_coverage
&& other.nv_sample_mask_override_coverage,
nv_scissor_exclusive: self.nv_scissor_exclusive && other.nv_scissor_exclusive,
nv_shader_image_footprint: self.nv_shader_image_footprint
&& other.nv_shader_image_footprint,
nv_shader_sm_builtins: self.nv_shader_sm_builtins && other.nv_shader_sm_builtins,
nv_shader_subgroup_partitioned: self.nv_shader_subgroup_partitioned
&& other.nv_shader_subgroup_partitioned,
nv_shading_rate_image: self.nv_shading_rate_image && other.nv_shading_rate_image,
nv_viewport_array2: self.nv_viewport_array2 && other.nv_viewport_array2,
nv_viewport_swizzle: self.nv_viewport_swizzle && other.nv_viewport_swizzle,
nv_win32_keyed_mutex: self.nv_win32_keyed_mutex && other.nv_win32_keyed_mutex,
qcom_fragment_density_map_offset: self.qcom_fragment_density_map_offset
&& other.qcom_fragment_density_map_offset,
qcom_image_processing: self.qcom_image_processing && other.qcom_image_processing,
qcom_multiview_per_view_viewports: self.qcom_multiview_per_view_viewports
&& other.qcom_multiview_per_view_viewports,
qcom_render_pass_shader_resolve: self.qcom_render_pass_shader_resolve
&& other.qcom_render_pass_shader_resolve,
qcom_render_pass_store_ops: self.qcom_render_pass_store_ops
&& other.qcom_render_pass_store_ops,
qcom_render_pass_transform: self.qcom_render_pass_transform
&& other.qcom_render_pass_transform,
qcom_rotated_copy_commands: self.qcom_rotated_copy_commands
&& other.qcom_rotated_copy_commands,
qcom_tile_properties: self.qcom_tile_properties && other.qcom_tile_properties,
sec_amigo_profiling: self.sec_amigo_profiling && other.sec_amigo_profiling,
valve_descriptor_set_host_mapping: self.valve_descriptor_set_host_mapping
&& other.valve_descriptor_set_host_mapping,
valve_mutable_descriptor_type: self.valve_mutable_descriptor_type
&& other.valve_mutable_descriptor_type,
_ne: crate::NonExhaustive(()),
}
}
#[doc = r" Returns `self` without the members set in `other`."]
#[inline]
pub const fn difference(&self, other: &Self) -> Self {
Self {
khr_16bit_storage: self.khr_16bit_storage && !other.khr_16bit_storage,
khr_8bit_storage: self.khr_8bit_storage && !other.khr_8bit_storage,
khr_acceleration_structure: self.khr_acceleration_structure
&& !other.khr_acceleration_structure,
khr_bind_memory2: self.khr_bind_memory2 && !other.khr_bind_memory2,
khr_buffer_device_address: self.khr_buffer_device_address
&& !other.khr_buffer_device_address,
khr_copy_commands2: self.khr_copy_commands2 && !other.khr_copy_commands2,
khr_create_renderpass2: self.khr_create_renderpass2 && !other.khr_create_renderpass2,
khr_dedicated_allocation: self.khr_dedicated_allocation
&& !other.khr_dedicated_allocation,
khr_deferred_host_operations: self.khr_deferred_host_operations
&& !other.khr_deferred_host_operations,
khr_depth_stencil_resolve: self.khr_depth_stencil_resolve
&& !other.khr_depth_stencil_resolve,
khr_descriptor_update_template: self.khr_descriptor_update_template
&& !other.khr_descriptor_update_template,
khr_device_group: self.khr_device_group && !other.khr_device_group,
khr_display_swapchain: self.khr_display_swapchain && !other.khr_display_swapchain,
khr_draw_indirect_count: self.khr_draw_indirect_count && !other.khr_draw_indirect_count,
khr_driver_properties: self.khr_driver_properties && !other.khr_driver_properties,
khr_dynamic_rendering: self.khr_dynamic_rendering && !other.khr_dynamic_rendering,
khr_external_fence: self.khr_external_fence && !other.khr_external_fence,
khr_external_fence_fd: self.khr_external_fence_fd && !other.khr_external_fence_fd,
khr_external_fence_win32: self.khr_external_fence_win32
&& !other.khr_external_fence_win32,
khr_external_memory: self.khr_external_memory && !other.khr_external_memory,
khr_external_memory_fd: self.khr_external_memory_fd && !other.khr_external_memory_fd,
khr_external_memory_win32: self.khr_external_memory_win32
&& !other.khr_external_memory_win32,
khr_external_semaphore: self.khr_external_semaphore && !other.khr_external_semaphore,
khr_external_semaphore_fd: self.khr_external_semaphore_fd
&& !other.khr_external_semaphore_fd,
khr_external_semaphore_win32: self.khr_external_semaphore_win32
&& !other.khr_external_semaphore_win32,
khr_format_feature_flags2: self.khr_format_feature_flags2
&& !other.khr_format_feature_flags2,
khr_fragment_shader_barycentric: self.khr_fragment_shader_barycentric
&& !other.khr_fragment_shader_barycentric,
khr_fragment_shading_rate: self.khr_fragment_shading_rate
&& !other.khr_fragment_shading_rate,
khr_get_memory_requirements2: self.khr_get_memory_requirements2
&& !other.khr_get_memory_requirements2,
khr_global_priority: self.khr_global_priority && !other.khr_global_priority,
khr_image_format_list: self.khr_image_format_list && !other.khr_image_format_list,
khr_imageless_framebuffer: self.khr_imageless_framebuffer
&& !other.khr_imageless_framebuffer,
khr_incremental_present: self.khr_incremental_present && !other.khr_incremental_present,
khr_maintenance1: self.khr_maintenance1 && !other.khr_maintenance1,
khr_maintenance2: self.khr_maintenance2 && !other.khr_maintenance2,
khr_maintenance3: self.khr_maintenance3 && !other.khr_maintenance3,
khr_maintenance4: self.khr_maintenance4 && !other.khr_maintenance4,
khr_multiview: self.khr_multiview && !other.khr_multiview,
khr_performance_query: self.khr_performance_query && !other.khr_performance_query,
khr_pipeline_executable_properties: self.khr_pipeline_executable_properties
&& !other.khr_pipeline_executable_properties,
khr_pipeline_library: self.khr_pipeline_library && !other.khr_pipeline_library,
khr_portability_subset: self.khr_portability_subset && !other.khr_portability_subset,
khr_present_id: self.khr_present_id && !other.khr_present_id,
khr_present_wait: self.khr_present_wait && !other.khr_present_wait,
khr_push_descriptor: self.khr_push_descriptor && !other.khr_push_descriptor,
khr_ray_query: self.khr_ray_query && !other.khr_ray_query,
khr_ray_tracing_maintenance1: self.khr_ray_tracing_maintenance1
&& !other.khr_ray_tracing_maintenance1,
khr_ray_tracing_pipeline: self.khr_ray_tracing_pipeline
&& !other.khr_ray_tracing_pipeline,
khr_relaxed_block_layout: self.khr_relaxed_block_layout
&& !other.khr_relaxed_block_layout,
khr_sampler_mirror_clamp_to_edge: self.khr_sampler_mirror_clamp_to_edge
&& !other.khr_sampler_mirror_clamp_to_edge,
khr_sampler_ycbcr_conversion: self.khr_sampler_ycbcr_conversion
&& !other.khr_sampler_ycbcr_conversion,
khr_separate_depth_stencil_layouts: self.khr_separate_depth_stencil_layouts
&& !other.khr_separate_depth_stencil_layouts,
khr_shader_atomic_int64: self.khr_shader_atomic_int64 && !other.khr_shader_atomic_int64,
khr_shader_clock: self.khr_shader_clock && !other.khr_shader_clock,
khr_shader_draw_parameters: self.khr_shader_draw_parameters
&& !other.khr_shader_draw_parameters,
khr_shader_float16_int8: self.khr_shader_float16_int8 && !other.khr_shader_float16_int8,
khr_shader_float_controls: self.khr_shader_float_controls
&& !other.khr_shader_float_controls,
khr_shader_integer_dot_product: self.khr_shader_integer_dot_product
&& !other.khr_shader_integer_dot_product,
khr_shader_non_semantic_info: self.khr_shader_non_semantic_info
&& !other.khr_shader_non_semantic_info,
khr_shader_subgroup_extended_types: self.khr_shader_subgroup_extended_types
&& !other.khr_shader_subgroup_extended_types,
khr_shader_subgroup_uniform_control_flow: self.khr_shader_subgroup_uniform_control_flow
&& !other.khr_shader_subgroup_uniform_control_flow,
khr_shader_terminate_invocation: self.khr_shader_terminate_invocation
&& !other.khr_shader_terminate_invocation,
khr_shared_presentable_image: self.khr_shared_presentable_image
&& !other.khr_shared_presentable_image,
khr_spirv_1_4: self.khr_spirv_1_4 && !other.khr_spirv_1_4,
khr_storage_buffer_storage_class: self.khr_storage_buffer_storage_class
&& !other.khr_storage_buffer_storage_class,
khr_swapchain: self.khr_swapchain && !other.khr_swapchain,
khr_swapchain_mutable_format: self.khr_swapchain_mutable_format
&& !other.khr_swapchain_mutable_format,
khr_synchronization2: self.khr_synchronization2 && !other.khr_synchronization2,
khr_timeline_semaphore: self.khr_timeline_semaphore && !other.khr_timeline_semaphore,
khr_uniform_buffer_standard_layout: self.khr_uniform_buffer_standard_layout
&& !other.khr_uniform_buffer_standard_layout,
khr_variable_pointers: self.khr_variable_pointers && !other.khr_variable_pointers,
khr_video_decode_h264: self.khr_video_decode_h264 && !other.khr_video_decode_h264,
khr_video_decode_h265: self.khr_video_decode_h265 && !other.khr_video_decode_h265,
khr_video_decode_queue: self.khr_video_decode_queue && !other.khr_video_decode_queue,
khr_video_encode_queue: self.khr_video_encode_queue && !other.khr_video_encode_queue,
khr_video_queue: self.khr_video_queue && !other.khr_video_queue,
khr_vulkan_memory_model: self.khr_vulkan_memory_model && !other.khr_vulkan_memory_model,
khr_win32_keyed_mutex: self.khr_win32_keyed_mutex && !other.khr_win32_keyed_mutex,
khr_workgroup_memory_explicit_layout: self.khr_workgroup_memory_explicit_layout
&& !other.khr_workgroup_memory_explicit_layout,
khr_zero_initialize_workgroup_memory: self.khr_zero_initialize_workgroup_memory
&& !other.khr_zero_initialize_workgroup_memory,
ext_4444_formats: self.ext_4444_formats && !other.ext_4444_formats,
ext_astc_decode_mode: self.ext_astc_decode_mode && !other.ext_astc_decode_mode,
ext_attachment_feedback_loop_layout: self.ext_attachment_feedback_loop_layout
&& !other.ext_attachment_feedback_loop_layout,
ext_blend_operation_advanced: self.ext_blend_operation_advanced
&& !other.ext_blend_operation_advanced,
ext_border_color_swizzle: self.ext_border_color_swizzle
&& !other.ext_border_color_swizzle,
ext_buffer_device_address: self.ext_buffer_device_address
&& !other.ext_buffer_device_address,
ext_calibrated_timestamps: self.ext_calibrated_timestamps
&& !other.ext_calibrated_timestamps,
ext_color_write_enable: self.ext_color_write_enable && !other.ext_color_write_enable,
ext_conditional_rendering: self.ext_conditional_rendering
&& !other.ext_conditional_rendering,
ext_conservative_rasterization: self.ext_conservative_rasterization
&& !other.ext_conservative_rasterization,
ext_custom_border_color: self.ext_custom_border_color && !other.ext_custom_border_color,
ext_debug_marker: self.ext_debug_marker && !other.ext_debug_marker,
ext_depth_clamp_zero_one: self.ext_depth_clamp_zero_one
&& !other.ext_depth_clamp_zero_one,
ext_depth_clip_control: self.ext_depth_clip_control && !other.ext_depth_clip_control,
ext_depth_clip_enable: self.ext_depth_clip_enable && !other.ext_depth_clip_enable,
ext_depth_range_unrestricted: self.ext_depth_range_unrestricted
&& !other.ext_depth_range_unrestricted,
ext_descriptor_buffer: self.ext_descriptor_buffer && !other.ext_descriptor_buffer,
ext_descriptor_indexing: self.ext_descriptor_indexing && !other.ext_descriptor_indexing,
ext_device_address_binding_report: self.ext_device_address_binding_report
&& !other.ext_device_address_binding_report,
ext_device_fault: self.ext_device_fault && !other.ext_device_fault,
ext_device_memory_report: self.ext_device_memory_report
&& !other.ext_device_memory_report,
ext_discard_rectangles: self.ext_discard_rectangles && !other.ext_discard_rectangles,
ext_display_control: self.ext_display_control && !other.ext_display_control,
ext_extended_dynamic_state: self.ext_extended_dynamic_state
&& !other.ext_extended_dynamic_state,
ext_extended_dynamic_state2: self.ext_extended_dynamic_state2
&& !other.ext_extended_dynamic_state2,
ext_extended_dynamic_state3: self.ext_extended_dynamic_state3
&& !other.ext_extended_dynamic_state3,
ext_external_memory_dma_buf: self.ext_external_memory_dma_buf
&& !other.ext_external_memory_dma_buf,
ext_external_memory_host: self.ext_external_memory_host
&& !other.ext_external_memory_host,
ext_filter_cubic: self.ext_filter_cubic && !other.ext_filter_cubic,
ext_fragment_density_map: self.ext_fragment_density_map
&& !other.ext_fragment_density_map,
ext_fragment_density_map2: self.ext_fragment_density_map2
&& !other.ext_fragment_density_map2,
ext_fragment_shader_interlock: self.ext_fragment_shader_interlock
&& !other.ext_fragment_shader_interlock,
ext_full_screen_exclusive: self.ext_full_screen_exclusive
&& !other.ext_full_screen_exclusive,
ext_global_priority: self.ext_global_priority && !other.ext_global_priority,
ext_global_priority_query: self.ext_global_priority_query
&& !other.ext_global_priority_query,
ext_graphics_pipeline_library: self.ext_graphics_pipeline_library
&& !other.ext_graphics_pipeline_library,
ext_hdr_metadata: self.ext_hdr_metadata && !other.ext_hdr_metadata,
ext_host_query_reset: self.ext_host_query_reset && !other.ext_host_query_reset,
ext_image_2d_view_of_3d: self.ext_image_2d_view_of_3d && !other.ext_image_2d_view_of_3d,
ext_image_compression_control: self.ext_image_compression_control
&& !other.ext_image_compression_control,
ext_image_compression_control_swapchain: self.ext_image_compression_control_swapchain
&& !other.ext_image_compression_control_swapchain,
ext_image_drm_format_modifier: self.ext_image_drm_format_modifier
&& !other.ext_image_drm_format_modifier,
ext_image_robustness: self.ext_image_robustness && !other.ext_image_robustness,
ext_image_view_min_lod: self.ext_image_view_min_lod && !other.ext_image_view_min_lod,
ext_index_type_uint8: self.ext_index_type_uint8 && !other.ext_index_type_uint8,
ext_inline_uniform_block: self.ext_inline_uniform_block
&& !other.ext_inline_uniform_block,
ext_legacy_dithering: self.ext_legacy_dithering && !other.ext_legacy_dithering,
ext_line_rasterization: self.ext_line_rasterization && !other.ext_line_rasterization,
ext_load_store_op_none: self.ext_load_store_op_none && !other.ext_load_store_op_none,
ext_memory_budget: self.ext_memory_budget && !other.ext_memory_budget,
ext_memory_priority: self.ext_memory_priority && !other.ext_memory_priority,
ext_mesh_shader: self.ext_mesh_shader && !other.ext_mesh_shader,
ext_metal_objects: self.ext_metal_objects && !other.ext_metal_objects,
ext_multi_draw: self.ext_multi_draw && !other.ext_multi_draw,
ext_multisampled_render_to_single_sampled: self
.ext_multisampled_render_to_single_sampled
&& !other.ext_multisampled_render_to_single_sampled,
ext_mutable_descriptor_type: self.ext_mutable_descriptor_type
&& !other.ext_mutable_descriptor_type,
ext_non_seamless_cube_map: self.ext_non_seamless_cube_map
&& !other.ext_non_seamless_cube_map,
ext_opacity_micromap: self.ext_opacity_micromap && !other.ext_opacity_micromap,
ext_pageable_device_local_memory: self.ext_pageable_device_local_memory
&& !other.ext_pageable_device_local_memory,
ext_pci_bus_info: self.ext_pci_bus_info && !other.ext_pci_bus_info,
ext_physical_device_drm: self.ext_physical_device_drm && !other.ext_physical_device_drm,
ext_pipeline_creation_cache_control: self.ext_pipeline_creation_cache_control
&& !other.ext_pipeline_creation_cache_control,
ext_pipeline_creation_feedback: self.ext_pipeline_creation_feedback
&& !other.ext_pipeline_creation_feedback,
ext_pipeline_properties: self.ext_pipeline_properties && !other.ext_pipeline_properties,
ext_pipeline_protected_access: self.ext_pipeline_protected_access
&& !other.ext_pipeline_protected_access,
ext_pipeline_robustness: self.ext_pipeline_robustness && !other.ext_pipeline_robustness,
ext_post_depth_coverage: self.ext_post_depth_coverage && !other.ext_post_depth_coverage,
ext_primitive_topology_list_restart: self.ext_primitive_topology_list_restart
&& !other.ext_primitive_topology_list_restart,
ext_primitives_generated_query: self.ext_primitives_generated_query
&& !other.ext_primitives_generated_query,
ext_private_data: self.ext_private_data && !other.ext_private_data,
ext_provoking_vertex: self.ext_provoking_vertex && !other.ext_provoking_vertex,
ext_queue_family_foreign: self.ext_queue_family_foreign
&& !other.ext_queue_family_foreign,
ext_rasterization_order_attachment_access: self
.ext_rasterization_order_attachment_access
&& !other.ext_rasterization_order_attachment_access,
ext_rgba10x6_formats: self.ext_rgba10x6_formats && !other.ext_rgba10x6_formats,
ext_robustness2: self.ext_robustness2 && !other.ext_robustness2,
ext_sample_locations: self.ext_sample_locations && !other.ext_sample_locations,
ext_sampler_filter_minmax: self.ext_sampler_filter_minmax
&& !other.ext_sampler_filter_minmax,
ext_scalar_block_layout: self.ext_scalar_block_layout && !other.ext_scalar_block_layout,
ext_separate_stencil_usage: self.ext_separate_stencil_usage
&& !other.ext_separate_stencil_usage,
ext_shader_atomic_float: self.ext_shader_atomic_float && !other.ext_shader_atomic_float,
ext_shader_atomic_float2: self.ext_shader_atomic_float2
&& !other.ext_shader_atomic_float2,
ext_shader_demote_to_helper_invocation: self.ext_shader_demote_to_helper_invocation
&& !other.ext_shader_demote_to_helper_invocation,
ext_shader_image_atomic_int64: self.ext_shader_image_atomic_int64
&& !other.ext_shader_image_atomic_int64,
ext_shader_module_identifier: self.ext_shader_module_identifier
&& !other.ext_shader_module_identifier,
ext_shader_stencil_export: self.ext_shader_stencil_export
&& !other.ext_shader_stencil_export,
ext_shader_subgroup_ballot: self.ext_shader_subgroup_ballot
&& !other.ext_shader_subgroup_ballot,
ext_shader_subgroup_vote: self.ext_shader_subgroup_vote
&& !other.ext_shader_subgroup_vote,
ext_shader_viewport_index_layer: self.ext_shader_viewport_index_layer
&& !other.ext_shader_viewport_index_layer,
ext_subgroup_size_control: self.ext_subgroup_size_control
&& !other.ext_subgroup_size_control,
ext_subpass_merge_feedback: self.ext_subpass_merge_feedback
&& !other.ext_subpass_merge_feedback,
ext_swapchain_maintenance1: self.ext_swapchain_maintenance1
&& !other.ext_swapchain_maintenance1,
ext_texel_buffer_alignment: self.ext_texel_buffer_alignment
&& !other.ext_texel_buffer_alignment,
ext_texture_compression_astc_hdr: self.ext_texture_compression_astc_hdr
&& !other.ext_texture_compression_astc_hdr,
ext_tooling_info: self.ext_tooling_info && !other.ext_tooling_info,
ext_transform_feedback: self.ext_transform_feedback && !other.ext_transform_feedback,
ext_validation_cache: self.ext_validation_cache && !other.ext_validation_cache,
ext_vertex_attribute_divisor: self.ext_vertex_attribute_divisor
&& !other.ext_vertex_attribute_divisor,
ext_vertex_input_dynamic_state: self.ext_vertex_input_dynamic_state
&& !other.ext_vertex_input_dynamic_state,
ext_video_encode_h264: self.ext_video_encode_h264 && !other.ext_video_encode_h264,
ext_video_encode_h265: self.ext_video_encode_h265 && !other.ext_video_encode_h265,
ext_ycbcr_2plane_444_formats: self.ext_ycbcr_2plane_444_formats
&& !other.ext_ycbcr_2plane_444_formats,
ext_ycbcr_image_arrays: self.ext_ycbcr_image_arrays && !other.ext_ycbcr_image_arrays,
amd_buffer_marker: self.amd_buffer_marker && !other.amd_buffer_marker,
amd_device_coherent_memory: self.amd_device_coherent_memory
&& !other.amd_device_coherent_memory,
amd_display_native_hdr: self.amd_display_native_hdr && !other.amd_display_native_hdr,
amd_draw_indirect_count: self.amd_draw_indirect_count && !other.amd_draw_indirect_count,
amd_gcn_shader: self.amd_gcn_shader && !other.amd_gcn_shader,
amd_gpu_shader_half_float: self.amd_gpu_shader_half_float
&& !other.amd_gpu_shader_half_float,
amd_gpu_shader_int16: self.amd_gpu_shader_int16 && !other.amd_gpu_shader_int16,
amd_memory_overallocation_behavior: self.amd_memory_overallocation_behavior
&& !other.amd_memory_overallocation_behavior,
amd_mixed_attachment_samples: self.amd_mixed_attachment_samples
&& !other.amd_mixed_attachment_samples,
amd_pipeline_compiler_control: self.amd_pipeline_compiler_control
&& !other.amd_pipeline_compiler_control,
amd_rasterization_order: self.amd_rasterization_order && !other.amd_rasterization_order,
amd_shader_ballot: self.amd_shader_ballot && !other.amd_shader_ballot,
amd_shader_core_properties: self.amd_shader_core_properties
&& !other.amd_shader_core_properties,
amd_shader_core_properties2: self.amd_shader_core_properties2
&& !other.amd_shader_core_properties2,
amd_shader_early_and_late_fragment_tests: self.amd_shader_early_and_late_fragment_tests
&& !other.amd_shader_early_and_late_fragment_tests,
amd_shader_explicit_vertex_parameter: self.amd_shader_explicit_vertex_parameter
&& !other.amd_shader_explicit_vertex_parameter,
amd_shader_fragment_mask: self.amd_shader_fragment_mask
&& !other.amd_shader_fragment_mask,
amd_shader_image_load_store_lod: self.amd_shader_image_load_store_lod
&& !other.amd_shader_image_load_store_lod,
amd_shader_info: self.amd_shader_info && !other.amd_shader_info,
amd_shader_trinary_minmax: self.amd_shader_trinary_minmax
&& !other.amd_shader_trinary_minmax,
amd_texture_gather_bias_lod: self.amd_texture_gather_bias_lod
&& !other.amd_texture_gather_bias_lod,
android_external_memory_android_hardware_buffer: self
.android_external_memory_android_hardware_buffer
&& !other.android_external_memory_android_hardware_buffer,
arm_rasterization_order_attachment_access: self
.arm_rasterization_order_attachment_access
&& !other.arm_rasterization_order_attachment_access,
arm_shader_core_builtins: self.arm_shader_core_builtins
&& !other.arm_shader_core_builtins,
fuchsia_buffer_collection: self.fuchsia_buffer_collection
&& !other.fuchsia_buffer_collection,
fuchsia_external_memory: self.fuchsia_external_memory && !other.fuchsia_external_memory,
fuchsia_external_semaphore: self.fuchsia_external_semaphore
&& !other.fuchsia_external_semaphore,
ggp_frame_token: self.ggp_frame_token && !other.ggp_frame_token,
google_decorate_string: self.google_decorate_string && !other.google_decorate_string,
google_display_timing: self.google_display_timing && !other.google_display_timing,
google_hlsl_functionality1: self.google_hlsl_functionality1
&& !other.google_hlsl_functionality1,
google_user_type: self.google_user_type && !other.google_user_type,
huawei_invocation_mask: self.huawei_invocation_mask && !other.huawei_invocation_mask,
huawei_subpass_shading: self.huawei_subpass_shading && !other.huawei_subpass_shading,
img_filter_cubic: self.img_filter_cubic && !other.img_filter_cubic,
img_format_pvrtc: self.img_format_pvrtc && !other.img_format_pvrtc,
intel_performance_query: self.intel_performance_query && !other.intel_performance_query,
intel_shader_integer_functions2: self.intel_shader_integer_functions2
&& !other.intel_shader_integer_functions2,
nvx_binary_import: self.nvx_binary_import && !other.nvx_binary_import,
nvx_image_view_handle: self.nvx_image_view_handle && !other.nvx_image_view_handle,
nvx_multiview_per_view_attributes: self.nvx_multiview_per_view_attributes
&& !other.nvx_multiview_per_view_attributes,
nv_acquire_winrt_display: self.nv_acquire_winrt_display
&& !other.nv_acquire_winrt_display,
nv_clip_space_w_scaling: self.nv_clip_space_w_scaling && !other.nv_clip_space_w_scaling,
nv_compute_shader_derivatives: self.nv_compute_shader_derivatives
&& !other.nv_compute_shader_derivatives,
nv_cooperative_matrix: self.nv_cooperative_matrix && !other.nv_cooperative_matrix,
nv_copy_memory_indirect: self.nv_copy_memory_indirect && !other.nv_copy_memory_indirect,
nv_corner_sampled_image: self.nv_corner_sampled_image && !other.nv_corner_sampled_image,
nv_coverage_reduction_mode: self.nv_coverage_reduction_mode
&& !other.nv_coverage_reduction_mode,
nv_dedicated_allocation: self.nv_dedicated_allocation && !other.nv_dedicated_allocation,
nv_dedicated_allocation_image_aliasing: self.nv_dedicated_allocation_image_aliasing
&& !other.nv_dedicated_allocation_image_aliasing,
nv_device_diagnostic_checkpoints: self.nv_device_diagnostic_checkpoints
&& !other.nv_device_diagnostic_checkpoints,
nv_device_diagnostics_config: self.nv_device_diagnostics_config
&& !other.nv_device_diagnostics_config,
nv_device_generated_commands: self.nv_device_generated_commands
&& !other.nv_device_generated_commands,
nv_external_memory: self.nv_external_memory && !other.nv_external_memory,
nv_external_memory_rdma: self.nv_external_memory_rdma && !other.nv_external_memory_rdma,
nv_external_memory_win32: self.nv_external_memory_win32
&& !other.nv_external_memory_win32,
nv_fill_rectangle: self.nv_fill_rectangle && !other.nv_fill_rectangle,
nv_fragment_coverage_to_color: self.nv_fragment_coverage_to_color
&& !other.nv_fragment_coverage_to_color,
nv_fragment_shader_barycentric: self.nv_fragment_shader_barycentric
&& !other.nv_fragment_shader_barycentric,
nv_fragment_shading_rate_enums: self.nv_fragment_shading_rate_enums
&& !other.nv_fragment_shading_rate_enums,
nv_framebuffer_mixed_samples: self.nv_framebuffer_mixed_samples
&& !other.nv_framebuffer_mixed_samples,
nv_geometry_shader_passthrough: self.nv_geometry_shader_passthrough
&& !other.nv_geometry_shader_passthrough,
nv_glsl_shader: self.nv_glsl_shader && !other.nv_glsl_shader,
nv_inherited_viewport_scissor: self.nv_inherited_viewport_scissor
&& !other.nv_inherited_viewport_scissor,
nv_linear_color_attachment: self.nv_linear_color_attachment
&& !other.nv_linear_color_attachment,
nv_memory_decompression: self.nv_memory_decompression && !other.nv_memory_decompression,
nv_mesh_shader: self.nv_mesh_shader && !other.nv_mesh_shader,
nv_optical_flow: self.nv_optical_flow && !other.nv_optical_flow,
nv_present_barrier: self.nv_present_barrier && !other.nv_present_barrier,
nv_ray_tracing: self.nv_ray_tracing && !other.nv_ray_tracing,
nv_ray_tracing_invocation_reorder: self.nv_ray_tracing_invocation_reorder
&& !other.nv_ray_tracing_invocation_reorder,
nv_ray_tracing_motion_blur: self.nv_ray_tracing_motion_blur
&& !other.nv_ray_tracing_motion_blur,
nv_representative_fragment_test: self.nv_representative_fragment_test
&& !other.nv_representative_fragment_test,
nv_sample_mask_override_coverage: self.nv_sample_mask_override_coverage
&& !other.nv_sample_mask_override_coverage,
nv_scissor_exclusive: self.nv_scissor_exclusive && !other.nv_scissor_exclusive,
nv_shader_image_footprint: self.nv_shader_image_footprint
&& !other.nv_shader_image_footprint,
nv_shader_sm_builtins: self.nv_shader_sm_builtins && !other.nv_shader_sm_builtins,
nv_shader_subgroup_partitioned: self.nv_shader_subgroup_partitioned
&& !other.nv_shader_subgroup_partitioned,
nv_shading_rate_image: self.nv_shading_rate_image && !other.nv_shading_rate_image,
nv_viewport_array2: self.nv_viewport_array2 && !other.nv_viewport_array2,
nv_viewport_swizzle: self.nv_viewport_swizzle && !other.nv_viewport_swizzle,
nv_win32_keyed_mutex: self.nv_win32_keyed_mutex && !other.nv_win32_keyed_mutex,
qcom_fragment_density_map_offset: self.qcom_fragment_density_map_offset
&& !other.qcom_fragment_density_map_offset,
qcom_image_processing: self.qcom_image_processing && !other.qcom_image_processing,
qcom_multiview_per_view_viewports: self.qcom_multiview_per_view_viewports
&& !other.qcom_multiview_per_view_viewports,
qcom_render_pass_shader_resolve: self.qcom_render_pass_shader_resolve
&& !other.qcom_render_pass_shader_resolve,
qcom_render_pass_store_ops: self.qcom_render_pass_store_ops
&& !other.qcom_render_pass_store_ops,
qcom_render_pass_transform: self.qcom_render_pass_transform
&& !other.qcom_render_pass_transform,
qcom_rotated_copy_commands: self.qcom_rotated_copy_commands
&& !other.qcom_rotated_copy_commands,
qcom_tile_properties: self.qcom_tile_properties && !other.qcom_tile_properties,
sec_amigo_profiling: self.sec_amigo_profiling && !other.sec_amigo_profiling,
valve_descriptor_set_host_mapping: self.valve_descriptor_set_host_mapping
&& !other.valve_descriptor_set_host_mapping,
valve_mutable_descriptor_type: self.valve_mutable_descriptor_type
&& !other.valve_mutable_descriptor_type,
_ne: crate::NonExhaustive(()),
}
}
#[doc = r" Returns the members set in `self` or `other`, but not both."]
#[inline]
pub const fn symmetric_difference(&self, other: &Self) -> Self {
Self {
khr_16bit_storage: self.khr_16bit_storage ^ other.khr_16bit_storage,
khr_8bit_storage: self.khr_8bit_storage ^ other.khr_8bit_storage,
khr_acceleration_structure: self.khr_acceleration_structure
^ other.khr_acceleration_structure,
khr_bind_memory2: self.khr_bind_memory2 ^ other.khr_bind_memory2,
khr_buffer_device_address: self.khr_buffer_device_address
^ other.khr_buffer_device_address,
khr_copy_commands2: self.khr_copy_commands2 ^ other.khr_copy_commands2,
khr_create_renderpass2: self.khr_create_renderpass2 ^ other.khr_create_renderpass2,
khr_dedicated_allocation: self.khr_dedicated_allocation
^ other.khr_dedicated_allocation,
khr_deferred_host_operations: self.khr_deferred_host_operations
^ other.khr_deferred_host_operations,
khr_depth_stencil_resolve: self.khr_depth_stencil_resolve
^ other.khr_depth_stencil_resolve,
khr_descriptor_update_template: self.khr_descriptor_update_template
^ other.khr_descriptor_update_template,
khr_device_group: self.khr_device_group ^ other.khr_device_group,
khr_display_swapchain: self.khr_display_swapchain ^ other.khr_display_swapchain,
khr_draw_indirect_count: self.khr_draw_indirect_count ^ other.khr_draw_indirect_count,
khr_driver_properties: self.khr_driver_properties ^ other.khr_driver_properties,
khr_dynamic_rendering: self.khr_dynamic_rendering ^ other.khr_dynamic_rendering,
khr_external_fence: self.khr_external_fence ^ other.khr_external_fence,
khr_external_fence_fd: self.khr_external_fence_fd ^ other.khr_external_fence_fd,
khr_external_fence_win32: self.khr_external_fence_win32
^ other.khr_external_fence_win32,
khr_external_memory: self.khr_external_memory ^ other.khr_external_memory,
khr_external_memory_fd: self.khr_external_memory_fd ^ other.khr_external_memory_fd,
khr_external_memory_win32: self.khr_external_memory_win32
^ other.khr_external_memory_win32,
khr_external_semaphore: self.khr_external_semaphore ^ other.khr_external_semaphore,
khr_external_semaphore_fd: self.khr_external_semaphore_fd
^ other.khr_external_semaphore_fd,
khr_external_semaphore_win32: self.khr_external_semaphore_win32
^ other.khr_external_semaphore_win32,
khr_format_feature_flags2: self.khr_format_feature_flags2
^ other.khr_format_feature_flags2,
khr_fragment_shader_barycentric: self.khr_fragment_shader_barycentric
^ other.khr_fragment_shader_barycentric,
khr_fragment_shading_rate: self.khr_fragment_shading_rate
^ other.khr_fragment_shading_rate,
khr_get_memory_requirements2: self.khr_get_memory_requirements2
^ other.khr_get_memory_requirements2,
khr_global_priority: self.khr_global_priority ^ other.khr_global_priority,
khr_image_format_list: self.khr_image_format_list ^ other.khr_image_format_list,
khr_imageless_framebuffer: self.khr_imageless_framebuffer
^ other.khr_imageless_framebuffer,
khr_incremental_present: self.khr_incremental_present ^ other.khr_incremental_present,
khr_maintenance1: self.khr_maintenance1 ^ other.khr_maintenance1,
khr_maintenance2: self.khr_maintenance2 ^ other.khr_maintenance2,
khr_maintenance3: self.khr_maintenance3 ^ other.khr_maintenance3,
khr_maintenance4: self.khr_maintenance4 ^ other.khr_maintenance4,
khr_multiview: self.khr_multiview ^ other.khr_multiview,
khr_performance_query: self.khr_performance_query ^ other.khr_performance_query,
khr_pipeline_executable_properties: self.khr_pipeline_executable_properties
^ other.khr_pipeline_executable_properties,
khr_pipeline_library: self.khr_pipeline_library ^ other.khr_pipeline_library,
khr_portability_subset: self.khr_portability_subset ^ other.khr_portability_subset,
khr_present_id: self.khr_present_id ^ other.khr_present_id,
khr_present_wait: self.khr_present_wait ^ other.khr_present_wait,
khr_push_descriptor: self.khr_push_descriptor ^ other.khr_push_descriptor,
khr_ray_query: self.khr_ray_query ^ other.khr_ray_query,
khr_ray_tracing_maintenance1: self.khr_ray_tracing_maintenance1
^ other.khr_ray_tracing_maintenance1,
khr_ray_tracing_pipeline: self.khr_ray_tracing_pipeline
^ other.khr_ray_tracing_pipeline,
khr_relaxed_block_layout: self.khr_relaxed_block_layout
^ other.khr_relaxed_block_layout,
khr_sampler_mirror_clamp_to_edge: self.khr_sampler_mirror_clamp_to_edge
^ other.khr_sampler_mirror_clamp_to_edge,
khr_sampler_ycbcr_conversion: self.khr_sampler_ycbcr_conversion
^ other.khr_sampler_ycbcr_conversion,
khr_separate_depth_stencil_layouts: self.khr_separate_depth_stencil_layouts
^ other.khr_separate_depth_stencil_layouts,
khr_shader_atomic_int64: self.khr_shader_atomic_int64 ^ other.khr_shader_atomic_int64,
khr_shader_clock: self.khr_shader_clock ^ other.khr_shader_clock,
khr_shader_draw_parameters: self.khr_shader_draw_parameters
^ other.khr_shader_draw_parameters,
khr_shader_float16_int8: self.khr_shader_float16_int8 ^ other.khr_shader_float16_int8,
khr_shader_float_controls: self.khr_shader_float_controls
^ other.khr_shader_float_controls,
khr_shader_integer_dot_product: self.khr_shader_integer_dot_product
^ other.khr_shader_integer_dot_product,
khr_shader_non_semantic_info: self.khr_shader_non_semantic_info
^ other.khr_shader_non_semantic_info,
khr_shader_subgroup_extended_types: self.khr_shader_subgroup_extended_types
^ other.khr_shader_subgroup_extended_types,
khr_shader_subgroup_uniform_control_flow: self.khr_shader_subgroup_uniform_control_flow
^ other.khr_shader_subgroup_uniform_control_flow,
khr_shader_terminate_invocation: self.khr_shader_terminate_invocation
^ other.khr_shader_terminate_invocation,
khr_shared_presentable_image: self.khr_shared_presentable_image
^ other.khr_shared_presentable_image,
khr_spirv_1_4: self.khr_spirv_1_4 ^ other.khr_spirv_1_4,
khr_storage_buffer_storage_class: self.khr_storage_buffer_storage_class
^ other.khr_storage_buffer_storage_class,
khr_swapchain: self.khr_swapchain ^ other.khr_swapchain,
khr_swapchain_mutable_format: self.khr_swapchain_mutable_format
^ other.khr_swapchain_mutable_format,
khr_synchronization2: self.khr_synchronization2 ^ other.khr_synchronization2,
khr_timeline_semaphore: self.khr_timeline_semaphore ^ other.khr_timeline_semaphore,
khr_uniform_buffer_standard_layout: self.khr_uniform_buffer_standard_layout
^ other.khr_uniform_buffer_standard_layout,
khr_variable_pointers: self.khr_variable_pointers ^ other.khr_variable_pointers,
khr_video_decode_h264: self.khr_video_decode_h264 ^ other.khr_video_decode_h264,
khr_video_decode_h265: self.khr_video_decode_h265 ^ other.khr_video_decode_h265,
khr_video_decode_queue: self.khr_video_decode_queue ^ other.khr_video_decode_queue,
khr_video_encode_queue: self.khr_video_encode_queue ^ other.khr_video_encode_queue,
khr_video_queue: self.khr_video_queue ^ other.khr_video_queue,
khr_vulkan_memory_model: self.khr_vulkan_memory_model ^ other.khr_vulkan_memory_model,
khr_win32_keyed_mutex: self.khr_win32_keyed_mutex ^ other.khr_win32_keyed_mutex,
khr_workgroup_memory_explicit_layout: self.khr_workgroup_memory_explicit_layout
^ other.khr_workgroup_memory_explicit_layout,
khr_zero_initialize_workgroup_memory: self.khr_zero_initialize_workgroup_memory
^ other.khr_zero_initialize_workgroup_memory,
ext_4444_formats: self.ext_4444_formats ^ other.ext_4444_formats,
ext_astc_decode_mode: self.ext_astc_decode_mode ^ other.ext_astc_decode_mode,
ext_attachment_feedback_loop_layout: self.ext_attachment_feedback_loop_layout
^ other.ext_attachment_feedback_loop_layout,
ext_blend_operation_advanced: self.ext_blend_operation_advanced
^ other.ext_blend_operation_advanced,
ext_border_color_swizzle: self.ext_border_color_swizzle
^ other.ext_border_color_swizzle,
ext_buffer_device_address: self.ext_buffer_device_address
^ other.ext_buffer_device_address,
ext_calibrated_timestamps: self.ext_calibrated_timestamps
^ other.ext_calibrated_timestamps,
ext_color_write_enable: self.ext_color_write_enable ^ other.ext_color_write_enable,
ext_conditional_rendering: self.ext_conditional_rendering
^ other.ext_conditional_rendering,
ext_conservative_rasterization: self.ext_conservative_rasterization
^ other.ext_conservative_rasterization,
ext_custom_border_color: self.ext_custom_border_color ^ other.ext_custom_border_color,
ext_debug_marker: self.ext_debug_marker ^ other.ext_debug_marker,
ext_depth_clamp_zero_one: self.ext_depth_clamp_zero_one
^ other.ext_depth_clamp_zero_one,
ext_depth_clip_control: self.ext_depth_clip_control ^ other.ext_depth_clip_control,
ext_depth_clip_enable: self.ext_depth_clip_enable ^ other.ext_depth_clip_enable,
ext_depth_range_unrestricted: self.ext_depth_range_unrestricted
^ other.ext_depth_range_unrestricted,
ext_descriptor_buffer: self.ext_descriptor_buffer ^ other.ext_descriptor_buffer,
ext_descriptor_indexing: self.ext_descriptor_indexing ^ other.ext_descriptor_indexing,
ext_device_address_binding_report: self.ext_device_address_binding_report
^ other.ext_device_address_binding_report,
ext_device_fault: self.ext_device_fault ^ other.ext_device_fault,
ext_device_memory_report: self.ext_device_memory_report
^ other.ext_device_memory_report,
ext_discard_rectangles: self.ext_discard_rectangles ^ other.ext_discard_rectangles,
ext_display_control: self.ext_display_control ^ other.ext_display_control,
ext_extended_dynamic_state: self.ext_extended_dynamic_state
^ other.ext_extended_dynamic_state,
ext_extended_dynamic_state2: self.ext_extended_dynamic_state2
^ other.ext_extended_dynamic_state2,
ext_extended_dynamic_state3: self.ext_extended_dynamic_state3
^ other.ext_extended_dynamic_state3,
ext_external_memory_dma_buf: self.ext_external_memory_dma_buf
^ other.ext_external_memory_dma_buf,
ext_external_memory_host: self.ext_external_memory_host
^ other.ext_external_memory_host,
ext_filter_cubic: self.ext_filter_cubic ^ other.ext_filter_cubic,
ext_fragment_density_map: self.ext_fragment_density_map
^ other.ext_fragment_density_map,
ext_fragment_density_map2: self.ext_fragment_density_map2
^ other.ext_fragment_density_map2,
ext_fragment_shader_interlock: self.ext_fragment_shader_interlock
^ other.ext_fragment_shader_interlock,
ext_full_screen_exclusive: self.ext_full_screen_exclusive
^ other.ext_full_screen_exclusive,
ext_global_priority: self.ext_global_priority ^ other.ext_global_priority,
ext_global_priority_query: self.ext_global_priority_query
^ other.ext_global_priority_query,
ext_graphics_pipeline_library: self.ext_graphics_pipeline_library
^ other.ext_graphics_pipeline_library,
ext_hdr_metadata: self.ext_hdr_metadata ^ other.ext_hdr_metadata,
ext_host_query_reset: self.ext_host_query_reset ^ other.ext_host_query_reset,
ext_image_2d_view_of_3d: self.ext_image_2d_view_of_3d ^ other.ext_image_2d_view_of_3d,
ext_image_compression_control: self.ext_image_compression_control
^ other.ext_image_compression_control,
ext_image_compression_control_swapchain: self.ext_image_compression_control_swapchain
^ other.ext_image_compression_control_swapchain,
ext_image_drm_format_modifier: self.ext_image_drm_format_modifier
^ other.ext_image_drm_format_modifier,
ext_image_robustness: self.ext_image_robustness ^ other.ext_image_robustness,
ext_image_view_min_lod: self.ext_image_view_min_lod ^ other.ext_image_view_min_lod,
ext_index_type_uint8: self.ext_index_type_uint8 ^ other.ext_index_type_uint8,
ext_inline_uniform_block: self.ext_inline_uniform_block
^ other.ext_inline_uniform_block,
ext_legacy_dithering: self.ext_legacy_dithering ^ other.ext_legacy_dithering,
ext_line_rasterization: self.ext_line_rasterization ^ other.ext_line_rasterization,
ext_load_store_op_none: self.ext_load_store_op_none ^ other.ext_load_store_op_none,
ext_memory_budget: self.ext_memory_budget ^ other.ext_memory_budget,
ext_memory_priority: self.ext_memory_priority ^ other.ext_memory_priority,
ext_mesh_shader: self.ext_mesh_shader ^ other.ext_mesh_shader,
ext_metal_objects: self.ext_metal_objects ^ other.ext_metal_objects,
ext_multi_draw: self.ext_multi_draw ^ other.ext_multi_draw,
ext_multisampled_render_to_single_sampled: self
.ext_multisampled_render_to_single_sampled
^ other.ext_multisampled_render_to_single_sampled,
ext_mutable_descriptor_type: self.ext_mutable_descriptor_type
^ other.ext_mutable_descriptor_type,
ext_non_seamless_cube_map: self.ext_non_seamless_cube_map
^ other.ext_non_seamless_cube_map,
ext_opacity_micromap: self.ext_opacity_micromap ^ other.ext_opacity_micromap,
ext_pageable_device_local_memory: self.ext_pageable_device_local_memory
^ other.ext_pageable_device_local_memory,
ext_pci_bus_info: self.ext_pci_bus_info ^ other.ext_pci_bus_info,
ext_physical_device_drm: self.ext_physical_device_drm ^ other.ext_physical_device_drm,
ext_pipeline_creation_cache_control: self.ext_pipeline_creation_cache_control
^ other.ext_pipeline_creation_cache_control,
ext_pipeline_creation_feedback: self.ext_pipeline_creation_feedback
^ other.ext_pipeline_creation_feedback,
ext_pipeline_properties: self.ext_pipeline_properties ^ other.ext_pipeline_properties,
ext_pipeline_protected_access: self.ext_pipeline_protected_access
^ other.ext_pipeline_protected_access,
ext_pipeline_robustness: self.ext_pipeline_robustness ^ other.ext_pipeline_robustness,
ext_post_depth_coverage: self.ext_post_depth_coverage ^ other.ext_post_depth_coverage,
ext_primitive_topology_list_restart: self.ext_primitive_topology_list_restart
^ other.ext_primitive_topology_list_restart,
ext_primitives_generated_query: self.ext_primitives_generated_query
^ other.ext_primitives_generated_query,
ext_private_data: self.ext_private_data ^ other.ext_private_data,
ext_provoking_vertex: self.ext_provoking_vertex ^ other.ext_provoking_vertex,
ext_queue_family_foreign: self.ext_queue_family_foreign
^ other.ext_queue_family_foreign,
ext_rasterization_order_attachment_access: self
.ext_rasterization_order_attachment_access
^ other.ext_rasterization_order_attachment_access,
ext_rgba10x6_formats: self.ext_rgba10x6_formats ^ other.ext_rgba10x6_formats,
ext_robustness2: self.ext_robustness2 ^ other.ext_robustness2,
ext_sample_locations: self.ext_sample_locations ^ other.ext_sample_locations,
ext_sampler_filter_minmax: self.ext_sampler_filter_minmax
^ other.ext_sampler_filter_minmax,
ext_scalar_block_layout: self.ext_scalar_block_layout ^ other.ext_scalar_block_layout,
ext_separate_stencil_usage: self.ext_separate_stencil_usage
^ other.ext_separate_stencil_usage,
ext_shader_atomic_float: self.ext_shader_atomic_float ^ other.ext_shader_atomic_float,
ext_shader_atomic_float2: self.ext_shader_atomic_float2
^ other.ext_shader_atomic_float2,
ext_shader_demote_to_helper_invocation: self.ext_shader_demote_to_helper_invocation
^ other.ext_shader_demote_to_helper_invocation,
ext_shader_image_atomic_int64: self.ext_shader_image_atomic_int64
^ other.ext_shader_image_atomic_int64,
ext_shader_module_identifier: self.ext_shader_module_identifier
^ other.ext_shader_module_identifier,
ext_shader_stencil_export: self.ext_shader_stencil_export
^ other.ext_shader_stencil_export,
ext_shader_subgroup_ballot: self.ext_shader_subgroup_ballot
^ other.ext_shader_subgroup_ballot,
ext_shader_subgroup_vote: self.ext_shader_subgroup_vote
^ other.ext_shader_subgroup_vote,
ext_shader_viewport_index_layer: self.ext_shader_viewport_index_layer
^ other.ext_shader_viewport_index_layer,
ext_subgroup_size_control: self.ext_subgroup_size_control
^ other.ext_subgroup_size_control,
ext_subpass_merge_feedback: self.ext_subpass_merge_feedback
^ other.ext_subpass_merge_feedback,
ext_swapchain_maintenance1: self.ext_swapchain_maintenance1
^ other.ext_swapchain_maintenance1,
ext_texel_buffer_alignment: self.ext_texel_buffer_alignment
^ other.ext_texel_buffer_alignment,
ext_texture_compression_astc_hdr: self.ext_texture_compression_astc_hdr
^ other.ext_texture_compression_astc_hdr,
ext_tooling_info: self.ext_tooling_info ^ other.ext_tooling_info,
ext_transform_feedback: self.ext_transform_feedback ^ other.ext_transform_feedback,
ext_validation_cache: self.ext_validation_cache ^ other.ext_validation_cache,
ext_vertex_attribute_divisor: self.ext_vertex_attribute_divisor
^ other.ext_vertex_attribute_divisor,
ext_vertex_input_dynamic_state: self.ext_vertex_input_dynamic_state
^ other.ext_vertex_input_dynamic_state,
ext_video_encode_h264: self.ext_video_encode_h264 ^ other.ext_video_encode_h264,
ext_video_encode_h265: self.ext_video_encode_h265 ^ other.ext_video_encode_h265,
ext_ycbcr_2plane_444_formats: self.ext_ycbcr_2plane_444_formats
^ other.ext_ycbcr_2plane_444_formats,
ext_ycbcr_image_arrays: self.ext_ycbcr_image_arrays ^ other.ext_ycbcr_image_arrays,
amd_buffer_marker: self.amd_buffer_marker ^ other.amd_buffer_marker,
amd_device_coherent_memory: self.amd_device_coherent_memory
^ other.amd_device_coherent_memory,
amd_display_native_hdr: self.amd_display_native_hdr ^ other.amd_display_native_hdr,
amd_draw_indirect_count: self.amd_draw_indirect_count ^ other.amd_draw_indirect_count,
amd_gcn_shader: self.amd_gcn_shader ^ other.amd_gcn_shader,
amd_gpu_shader_half_float: self.amd_gpu_shader_half_float
^ other.amd_gpu_shader_half_float,
amd_gpu_shader_int16: self.amd_gpu_shader_int16 ^ other.amd_gpu_shader_int16,
amd_memory_overallocation_behavior: self.amd_memory_overallocation_behavior
^ other.amd_memory_overallocation_behavior,
amd_mixed_attachment_samples: self.amd_mixed_attachment_samples
^ other.amd_mixed_attachment_samples,
amd_pipeline_compiler_control: self.amd_pipeline_compiler_control
^ other.amd_pipeline_compiler_control,
amd_rasterization_order: self.amd_rasterization_order ^ other.amd_rasterization_order,
amd_shader_ballot: self.amd_shader_ballot ^ other.amd_shader_ballot,
amd_shader_core_properties: self.amd_shader_core_properties
^ other.amd_shader_core_properties,
amd_shader_core_properties2: self.amd_shader_core_properties2
^ other.amd_shader_core_properties2,
amd_shader_early_and_late_fragment_tests: self.amd_shader_early_and_late_fragment_tests
^ other.amd_shader_early_and_late_fragment_tests,
amd_shader_explicit_vertex_parameter: self.amd_shader_explicit_vertex_parameter
^ other.amd_shader_explicit_vertex_parameter,
amd_shader_fragment_mask: self.amd_shader_fragment_mask
^ other.amd_shader_fragment_mask,
amd_shader_image_load_store_lod: self.amd_shader_image_load_store_lod
^ other.amd_shader_image_load_store_lod,
amd_shader_info: self.amd_shader_info ^ other.amd_shader_info,
amd_shader_trinary_minmax: self.amd_shader_trinary_minmax
^ other.amd_shader_trinary_minmax,
amd_texture_gather_bias_lod: self.amd_texture_gather_bias_lod
^ other.amd_texture_gather_bias_lod,
android_external_memory_android_hardware_buffer: self
.android_external_memory_android_hardware_buffer
^ other.android_external_memory_android_hardware_buffer,
arm_rasterization_order_attachment_access: self
.arm_rasterization_order_attachment_access
^ other.arm_rasterization_order_attachment_access,
arm_shader_core_builtins: self.arm_shader_core_builtins
^ other.arm_shader_core_builtins,
fuchsia_buffer_collection: self.fuchsia_buffer_collection
^ other.fuchsia_buffer_collection,
fuchsia_external_memory: self.fuchsia_external_memory ^ other.fuchsia_external_memory,
fuchsia_external_semaphore: self.fuchsia_external_semaphore
^ other.fuchsia_external_semaphore,
ggp_frame_token: self.ggp_frame_token ^ other.ggp_frame_token,
google_decorate_string: self.google_decorate_string ^ other.google_decorate_string,
google_display_timing: self.google_display_timing ^ other.google_display_timing,
google_hlsl_functionality1: self.google_hlsl_functionality1
^ other.google_hlsl_functionality1,
google_user_type: self.google_user_type ^ other.google_user_type,
huawei_invocation_mask: self.huawei_invocation_mask ^ other.huawei_invocation_mask,
huawei_subpass_shading: self.huawei_subpass_shading ^ other.huawei_subpass_shading,
img_filter_cubic: self.img_filter_cubic ^ other.img_filter_cubic,
img_format_pvrtc: self.img_format_pvrtc ^ other.img_format_pvrtc,
intel_performance_query: self.intel_performance_query ^ other.intel_performance_query,
intel_shader_integer_functions2: self.intel_shader_integer_functions2
^ other.intel_shader_integer_functions2,
nvx_binary_import: self.nvx_binary_import ^ other.nvx_binary_import,
nvx_image_view_handle: self.nvx_image_view_handle ^ other.nvx_image_view_handle,
nvx_multiview_per_view_attributes: self.nvx_multiview_per_view_attributes
^ other.nvx_multiview_per_view_attributes,
nv_acquire_winrt_display: self.nv_acquire_winrt_display
^ other.nv_acquire_winrt_display,
nv_clip_space_w_scaling: self.nv_clip_space_w_scaling ^ other.nv_clip_space_w_scaling,
nv_compute_shader_derivatives: self.nv_compute_shader_derivatives
^ other.nv_compute_shader_derivatives,
nv_cooperative_matrix: self.nv_cooperative_matrix ^ other.nv_cooperative_matrix,
nv_copy_memory_indirect: self.nv_copy_memory_indirect ^ other.nv_copy_memory_indirect,
nv_corner_sampled_image: self.nv_corner_sampled_image ^ other.nv_corner_sampled_image,
nv_coverage_reduction_mode: self.nv_coverage_reduction_mode
^ other.nv_coverage_reduction_mode,
nv_dedicated_allocation: self.nv_dedicated_allocation ^ other.nv_dedicated_allocation,
nv_dedicated_allocation_image_aliasing: self.nv_dedicated_allocation_image_aliasing
^ other.nv_dedicated_allocation_image_aliasing,
nv_device_diagnostic_checkpoints: self.nv_device_diagnostic_checkpoints
^ other.nv_device_diagnostic_checkpoints,
nv_device_diagnostics_config: self.nv_device_diagnostics_config
^ other.nv_device_diagnostics_config,
nv_device_generated_commands: self.nv_device_generated_commands
^ other.nv_device_generated_commands,
nv_external_memory: self.nv_external_memory ^ other.nv_external_memory,
nv_external_memory_rdma: self.nv_external_memory_rdma ^ other.nv_external_memory_rdma,
nv_external_memory_win32: self.nv_external_memory_win32
^ other.nv_external_memory_win32,
nv_fill_rectangle: self.nv_fill_rectangle ^ other.nv_fill_rectangle,
nv_fragment_coverage_to_color: self.nv_fragment_coverage_to_color
^ other.nv_fragment_coverage_to_color,
nv_fragment_shader_barycentric: self.nv_fragment_shader_barycentric
^ other.nv_fragment_shader_barycentric,
nv_fragment_shading_rate_enums: self.nv_fragment_shading_rate_enums
^ other.nv_fragment_shading_rate_enums,
nv_framebuffer_mixed_samples: self.nv_framebuffer_mixed_samples
^ other.nv_framebuffer_mixed_samples,
nv_geometry_shader_passthrough: self.nv_geometry_shader_passthrough
^ other.nv_geometry_shader_passthrough,
nv_glsl_shader: self.nv_glsl_shader ^ other.nv_glsl_shader,
nv_inherited_viewport_scissor: self.nv_inherited_viewport_scissor
^ other.nv_inherited_viewport_scissor,
nv_linear_color_attachment: self.nv_linear_color_attachment
^ other.nv_linear_color_attachment,
nv_memory_decompression: self.nv_memory_decompression ^ other.nv_memory_decompression,
nv_mesh_shader: self.nv_mesh_shader ^ other.nv_mesh_shader,
nv_optical_flow: self.nv_optical_flow ^ other.nv_optical_flow,
nv_present_barrier: self.nv_present_barrier ^ other.nv_present_barrier,
nv_ray_tracing: self.nv_ray_tracing ^ other.nv_ray_tracing,
nv_ray_tracing_invocation_reorder: self.nv_ray_tracing_invocation_reorder
^ other.nv_ray_tracing_invocation_reorder,
nv_ray_tracing_motion_blur: self.nv_ray_tracing_motion_blur
^ other.nv_ray_tracing_motion_blur,
nv_representative_fragment_test: self.nv_representative_fragment_test
^ other.nv_representative_fragment_test,
nv_sample_mask_override_coverage: self.nv_sample_mask_override_coverage
^ other.nv_sample_mask_override_coverage,
nv_scissor_exclusive: self.nv_scissor_exclusive ^ other.nv_scissor_exclusive,
nv_shader_image_footprint: self.nv_shader_image_footprint
^ other.nv_shader_image_footprint,
nv_shader_sm_builtins: self.nv_shader_sm_builtins ^ other.nv_shader_sm_builtins,
nv_shader_subgroup_partitioned: self.nv_shader_subgroup_partitioned
^ other.nv_shader_subgroup_partitioned,
nv_shading_rate_image: self.nv_shading_rate_image ^ other.nv_shading_rate_image,
nv_viewport_array2: self.nv_viewport_array2 ^ other.nv_viewport_array2,
nv_viewport_swizzle: self.nv_viewport_swizzle ^ other.nv_viewport_swizzle,
nv_win32_keyed_mutex: self.nv_win32_keyed_mutex ^ other.nv_win32_keyed_mutex,
qcom_fragment_density_map_offset: self.qcom_fragment_density_map_offset
^ other.qcom_fragment_density_map_offset,
qcom_image_processing: self.qcom_image_processing ^ other.qcom_image_processing,
qcom_multiview_per_view_viewports: self.qcom_multiview_per_view_viewports
^ other.qcom_multiview_per_view_viewports,
qcom_render_pass_shader_resolve: self.qcom_render_pass_shader_resolve
^ other.qcom_render_pass_shader_resolve,
qcom_render_pass_store_ops: self.qcom_render_pass_store_ops
^ other.qcom_render_pass_store_ops,
qcom_render_pass_transform: self.qcom_render_pass_transform
^ other.qcom_render_pass_transform,
qcom_rotated_copy_commands: self.qcom_rotated_copy_commands
^ other.qcom_rotated_copy_commands,
qcom_tile_properties: self.qcom_tile_properties ^ other.qcom_tile_properties,
sec_amigo_profiling: self.sec_amigo_profiling ^ other.sec_amigo_profiling,
valve_descriptor_set_host_mapping: self.valve_descriptor_set_host_mapping
^ other.valve_descriptor_set_host_mapping,
valve_mutable_descriptor_type: self.valve_mutable_descriptor_type
^ other.valve_mutable_descriptor_type,
_ne: crate::NonExhaustive(()),
}
}
}
impl std::ops::BitAnd for DeviceExtensions {
type Output = DeviceExtensions;
#[inline]
fn bitand(self, rhs: Self) -> Self::Output {
self.union(&rhs)
}
}
impl std::ops::BitAndAssign for DeviceExtensions {
#[inline]
fn bitand_assign(&mut self, rhs: Self) {
*self = self.union(&rhs);
}
}
impl std::ops::BitOr for DeviceExtensions {
type Output = DeviceExtensions;
#[inline]
fn bitor(self, rhs: Self) -> Self::Output {
self.intersection(&rhs)
}
}
impl std::ops::BitOrAssign for DeviceExtensions {
#[inline]
fn bitor_assign(&mut self, rhs: Self) {
*self = self.intersection(&rhs);
}
}
impl std::ops::BitXor for DeviceExtensions {
type Output = DeviceExtensions;
#[inline]
fn bitxor(self, rhs: Self) -> Self::Output {
self.symmetric_difference(&rhs)
}
}
impl std::ops::BitXorAssign for DeviceExtensions {
#[inline]
fn bitxor_assign(&mut self, rhs: Self) {
*self = self.symmetric_difference(&rhs);
}
}
impl std::ops::Sub for DeviceExtensions {
type Output = DeviceExtensions;
#[inline]
fn sub(self, rhs: Self) -> Self::Output {
self.difference(&rhs)
}
}
impl std::ops::SubAssign for DeviceExtensions {
#[inline]
fn sub_assign(&mut self, rhs: Self) {
*self = self.difference(&rhs);
}
}
impl std::fmt::Debug for DeviceExtensions {
#[allow(unused_assignments)]
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
write!(f, "[")?;
let mut first = true;
if self.khr_16bit_storage {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_16bit_storage")?;
}
if self.khr_8bit_storage {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_8bit_storage")?;
}
if self.khr_acceleration_structure {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_acceleration_structure")?;
}
if self.khr_bind_memory2 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_bind_memory2")?;
}
if self.khr_buffer_device_address {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_buffer_device_address")?;
}
if self.khr_copy_commands2 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_copy_commands2")?;
}
if self.khr_create_renderpass2 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_create_renderpass2")?;
}
if self.khr_dedicated_allocation {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_dedicated_allocation")?;
}
if self.khr_deferred_host_operations {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_deferred_host_operations")?;
}
if self.khr_depth_stencil_resolve {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_depth_stencil_resolve")?;
}
if self.khr_descriptor_update_template {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_descriptor_update_template")?;
}
if self.khr_device_group {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_device_group")?;
}
if self.khr_display_swapchain {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_display_swapchain")?;
}
if self.khr_draw_indirect_count {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_draw_indirect_count")?;
}
if self.khr_driver_properties {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_driver_properties")?;
}
if self.khr_dynamic_rendering {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_dynamic_rendering")?;
}
if self.khr_external_fence {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_external_fence")?;
}
if self.khr_external_fence_fd {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_external_fence_fd")?;
}
if self.khr_external_fence_win32 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_external_fence_win32")?;
}
if self.khr_external_memory {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_external_memory")?;
}
if self.khr_external_memory_fd {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_external_memory_fd")?;
}
if self.khr_external_memory_win32 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_external_memory_win32")?;
}
if self.khr_external_semaphore {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_external_semaphore")?;
}
if self.khr_external_semaphore_fd {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_external_semaphore_fd")?;
}
if self.khr_external_semaphore_win32 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_external_semaphore_win32")?;
}
if self.khr_format_feature_flags2 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_format_feature_flags2")?;
}
if self.khr_fragment_shader_barycentric {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_fragment_shader_barycentric")?;
}
if self.khr_fragment_shading_rate {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_fragment_shading_rate")?;
}
if self.khr_get_memory_requirements2 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_get_memory_requirements2")?;
}
if self.khr_global_priority {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_global_priority")?;
}
if self.khr_image_format_list {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_image_format_list")?;
}
if self.khr_imageless_framebuffer {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_imageless_framebuffer")?;
}
if self.khr_incremental_present {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_incremental_present")?;
}
if self.khr_maintenance1 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_maintenance1")?;
}
if self.khr_maintenance2 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_maintenance2")?;
}
if self.khr_maintenance3 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_maintenance3")?;
}
if self.khr_maintenance4 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_maintenance4")?;
}
if self.khr_multiview {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_multiview")?;
}
if self.khr_performance_query {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_performance_query")?;
}
if self.khr_pipeline_executable_properties {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_pipeline_executable_properties")?;
}
if self.khr_pipeline_library {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_pipeline_library")?;
}
if self.khr_portability_subset {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_portability_subset")?;
}
if self.khr_present_id {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_present_id")?;
}
if self.khr_present_wait {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_present_wait")?;
}
if self.khr_push_descriptor {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_push_descriptor")?;
}
if self.khr_ray_query {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_ray_query")?;
}
if self.khr_ray_tracing_maintenance1 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_ray_tracing_maintenance1")?;
}
if self.khr_ray_tracing_pipeline {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_ray_tracing_pipeline")?;
}
if self.khr_relaxed_block_layout {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_relaxed_block_layout")?;
}
if self.khr_sampler_mirror_clamp_to_edge {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_sampler_mirror_clamp_to_edge")?;
}
if self.khr_sampler_ycbcr_conversion {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_sampler_ycbcr_conversion")?;
}
if self.khr_separate_depth_stencil_layouts {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_separate_depth_stencil_layouts")?;
}
if self.khr_shader_atomic_int64 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_shader_atomic_int64")?;
}
if self.khr_shader_clock {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_shader_clock")?;
}
if self.khr_shader_draw_parameters {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_shader_draw_parameters")?;
}
if self.khr_shader_float16_int8 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_shader_float16_int8")?;
}
if self.khr_shader_float_controls {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_shader_float_controls")?;
}
if self.khr_shader_integer_dot_product {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_shader_integer_dot_product")?;
}
if self.khr_shader_non_semantic_info {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_shader_non_semantic_info")?;
}
if self.khr_shader_subgroup_extended_types {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_shader_subgroup_extended_types")?;
}
if self.khr_shader_subgroup_uniform_control_flow {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_shader_subgroup_uniform_control_flow")?;
}
if self.khr_shader_terminate_invocation {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_shader_terminate_invocation")?;
}
if self.khr_shared_presentable_image {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_shared_presentable_image")?;
}
if self.khr_spirv_1_4 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_spirv_1_4")?;
}
if self.khr_storage_buffer_storage_class {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_storage_buffer_storage_class")?;
}
if self.khr_swapchain {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_swapchain")?;
}
if self.khr_swapchain_mutable_format {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_swapchain_mutable_format")?;
}
if self.khr_synchronization2 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_synchronization2")?;
}
if self.khr_timeline_semaphore {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_timeline_semaphore")?;
}
if self.khr_uniform_buffer_standard_layout {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_uniform_buffer_standard_layout")?;
}
if self.khr_variable_pointers {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_variable_pointers")?;
}
if self.khr_video_decode_h264 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_video_decode_h264")?;
}
if self.khr_video_decode_h265 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_video_decode_h265")?;
}
if self.khr_video_decode_queue {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_video_decode_queue")?;
}
if self.khr_video_encode_queue {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_video_encode_queue")?;
}
if self.khr_video_queue {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_video_queue")?;
}
if self.khr_vulkan_memory_model {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_vulkan_memory_model")?;
}
if self.khr_win32_keyed_mutex {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_win32_keyed_mutex")?;
}
if self.khr_workgroup_memory_explicit_layout {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_workgroup_memory_explicit_layout")?;
}
if self.khr_zero_initialize_workgroup_memory {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_KHR_zero_initialize_workgroup_memory")?;
}
if self.ext_4444_formats {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_4444_formats")?;
}
if self.ext_astc_decode_mode {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_astc_decode_mode")?;
}
if self.ext_attachment_feedback_loop_layout {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_attachment_feedback_loop_layout")?;
}
if self.ext_blend_operation_advanced {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_blend_operation_advanced")?;
}
if self.ext_border_color_swizzle {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_border_color_swizzle")?;
}
if self.ext_buffer_device_address {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_buffer_device_address")?;
}
if self.ext_calibrated_timestamps {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_calibrated_timestamps")?;
}
if self.ext_color_write_enable {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_color_write_enable")?;
}
if self.ext_conditional_rendering {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_conditional_rendering")?;
}
if self.ext_conservative_rasterization {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_conservative_rasterization")?;
}
if self.ext_custom_border_color {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_custom_border_color")?;
}
if self.ext_debug_marker {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_debug_marker")?;
}
if self.ext_depth_clamp_zero_one {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_depth_clamp_zero_one")?;
}
if self.ext_depth_clip_control {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_depth_clip_control")?;
}
if self.ext_depth_clip_enable {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_depth_clip_enable")?;
}
if self.ext_depth_range_unrestricted {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_depth_range_unrestricted")?;
}
if self.ext_descriptor_buffer {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_descriptor_buffer")?;
}
if self.ext_descriptor_indexing {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_descriptor_indexing")?;
}
if self.ext_device_address_binding_report {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_device_address_binding_report")?;
}
if self.ext_device_fault {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_device_fault")?;
}
if self.ext_device_memory_report {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_device_memory_report")?;
}
if self.ext_discard_rectangles {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_discard_rectangles")?;
}
if self.ext_display_control {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_display_control")?;
}
if self.ext_extended_dynamic_state {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_extended_dynamic_state")?;
}
if self.ext_extended_dynamic_state2 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_extended_dynamic_state2")?;
}
if self.ext_extended_dynamic_state3 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_extended_dynamic_state3")?;
}
if self.ext_external_memory_dma_buf {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_external_memory_dma_buf")?;
}
if self.ext_external_memory_host {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_external_memory_host")?;
}
if self.ext_filter_cubic {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_filter_cubic")?;
}
if self.ext_fragment_density_map {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_fragment_density_map")?;
}
if self.ext_fragment_density_map2 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_fragment_density_map2")?;
}
if self.ext_fragment_shader_interlock {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_fragment_shader_interlock")?;
}
if self.ext_full_screen_exclusive {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_full_screen_exclusive")?;
}
if self.ext_global_priority {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_global_priority")?;
}
if self.ext_global_priority_query {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_global_priority_query")?;
}
if self.ext_graphics_pipeline_library {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_graphics_pipeline_library")?;
}
if self.ext_hdr_metadata {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_hdr_metadata")?;
}
if self.ext_host_query_reset {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_host_query_reset")?;
}
if self.ext_image_2d_view_of_3d {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_image_2d_view_of_3d")?;
}
if self.ext_image_compression_control {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_image_compression_control")?;
}
if self.ext_image_compression_control_swapchain {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_image_compression_control_swapchain")?;
}
if self.ext_image_drm_format_modifier {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_image_drm_format_modifier")?;
}
if self.ext_image_robustness {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_image_robustness")?;
}
if self.ext_image_view_min_lod {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_image_view_min_lod")?;
}
if self.ext_index_type_uint8 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_index_type_uint8")?;
}
if self.ext_inline_uniform_block {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_inline_uniform_block")?;
}
if self.ext_legacy_dithering {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_legacy_dithering")?;
}
if self.ext_line_rasterization {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_line_rasterization")?;
}
if self.ext_load_store_op_none {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_load_store_op_none")?;
}
if self.ext_memory_budget {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_memory_budget")?;
}
if self.ext_memory_priority {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_memory_priority")?;
}
if self.ext_mesh_shader {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_mesh_shader")?;
}
if self.ext_metal_objects {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_metal_objects")?;
}
if self.ext_multi_draw {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_multi_draw")?;
}
if self.ext_multisampled_render_to_single_sampled {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_multisampled_render_to_single_sampled")?;
}
if self.ext_mutable_descriptor_type {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_mutable_descriptor_type")?;
}
if self.ext_non_seamless_cube_map {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_non_seamless_cube_map")?;
}
if self.ext_opacity_micromap {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_opacity_micromap")?;
}
if self.ext_pageable_device_local_memory {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_pageable_device_local_memory")?;
}
if self.ext_pci_bus_info {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_pci_bus_info")?;
}
if self.ext_physical_device_drm {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_physical_device_drm")?;
}
if self.ext_pipeline_creation_cache_control {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_pipeline_creation_cache_control")?;
}
if self.ext_pipeline_creation_feedback {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_pipeline_creation_feedback")?;
}
if self.ext_pipeline_properties {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_pipeline_properties")?;
}
if self.ext_pipeline_protected_access {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_pipeline_protected_access")?;
}
if self.ext_pipeline_robustness {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_pipeline_robustness")?;
}
if self.ext_post_depth_coverage {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_post_depth_coverage")?;
}
if self.ext_primitive_topology_list_restart {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_primitive_topology_list_restart")?;
}
if self.ext_primitives_generated_query {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_primitives_generated_query")?;
}
if self.ext_private_data {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_private_data")?;
}
if self.ext_provoking_vertex {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_provoking_vertex")?;
}
if self.ext_queue_family_foreign {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_queue_family_foreign")?;
}
if self.ext_rasterization_order_attachment_access {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_rasterization_order_attachment_access")?;
}
if self.ext_rgba10x6_formats {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_rgba10x6_formats")?;
}
if self.ext_robustness2 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_robustness2")?;
}
if self.ext_sample_locations {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_sample_locations")?;
}
if self.ext_sampler_filter_minmax {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_sampler_filter_minmax")?;
}
if self.ext_scalar_block_layout {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_scalar_block_layout")?;
}
if self.ext_separate_stencil_usage {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_separate_stencil_usage")?;
}
if self.ext_shader_atomic_float {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_shader_atomic_float")?;
}
if self.ext_shader_atomic_float2 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_shader_atomic_float2")?;
}
if self.ext_shader_demote_to_helper_invocation {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_shader_demote_to_helper_invocation")?;
}
if self.ext_shader_image_atomic_int64 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_shader_image_atomic_int64")?;
}
if self.ext_shader_module_identifier {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_shader_module_identifier")?;
}
if self.ext_shader_stencil_export {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_shader_stencil_export")?;
}
if self.ext_shader_subgroup_ballot {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_shader_subgroup_ballot")?;
}
if self.ext_shader_subgroup_vote {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_shader_subgroup_vote")?;
}
if self.ext_shader_viewport_index_layer {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_shader_viewport_index_layer")?;
}
if self.ext_subgroup_size_control {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_subgroup_size_control")?;
}
if self.ext_subpass_merge_feedback {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_subpass_merge_feedback")?;
}
if self.ext_swapchain_maintenance1 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_swapchain_maintenance1")?;
}
if self.ext_texel_buffer_alignment {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_texel_buffer_alignment")?;
}
if self.ext_texture_compression_astc_hdr {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_texture_compression_astc_hdr")?;
}
if self.ext_tooling_info {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_tooling_info")?;
}
if self.ext_transform_feedback {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_transform_feedback")?;
}
if self.ext_validation_cache {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_validation_cache")?;
}
if self.ext_vertex_attribute_divisor {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_vertex_attribute_divisor")?;
}
if self.ext_vertex_input_dynamic_state {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_vertex_input_dynamic_state")?;
}
if self.ext_video_encode_h264 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_video_encode_h264")?;
}
if self.ext_video_encode_h265 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_video_encode_h265")?;
}
if self.ext_ycbcr_2plane_444_formats {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_ycbcr_2plane_444_formats")?;
}
if self.ext_ycbcr_image_arrays {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_EXT_ycbcr_image_arrays")?;
}
if self.amd_buffer_marker {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_AMD_buffer_marker")?;
}
if self.amd_device_coherent_memory {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_AMD_device_coherent_memory")?;
}
if self.amd_display_native_hdr {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_AMD_display_native_hdr")?;
}
if self.amd_draw_indirect_count {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_AMD_draw_indirect_count")?;
}
if self.amd_gcn_shader {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_AMD_gcn_shader")?;
}
if self.amd_gpu_shader_half_float {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_AMD_gpu_shader_half_float")?;
}
if self.amd_gpu_shader_int16 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_AMD_gpu_shader_int16")?;
}
if self.amd_memory_overallocation_behavior {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_AMD_memory_overallocation_behavior")?;
}
if self.amd_mixed_attachment_samples {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_AMD_mixed_attachment_samples")?;
}
if self.amd_pipeline_compiler_control {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_AMD_pipeline_compiler_control")?;
}
if self.amd_rasterization_order {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_AMD_rasterization_order")?;
}
if self.amd_shader_ballot {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_AMD_shader_ballot")?;
}
if self.amd_shader_core_properties {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_AMD_shader_core_properties")?;
}
if self.amd_shader_core_properties2 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_AMD_shader_core_properties2")?;
}
if self.amd_shader_early_and_late_fragment_tests {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_AMD_shader_early_and_late_fragment_tests")?;
}
if self.amd_shader_explicit_vertex_parameter {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_AMD_shader_explicit_vertex_parameter")?;
}
if self.amd_shader_fragment_mask {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_AMD_shader_fragment_mask")?;
}
if self.amd_shader_image_load_store_lod {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_AMD_shader_image_load_store_lod")?;
}
if self.amd_shader_info {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_AMD_shader_info")?;
}
if self.amd_shader_trinary_minmax {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_AMD_shader_trinary_minmax")?;
}
if self.amd_texture_gather_bias_lod {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_AMD_texture_gather_bias_lod")?;
}
if self.android_external_memory_android_hardware_buffer {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_ANDROID_external_memory_android_hardware_buffer")?;
}
if self.arm_rasterization_order_attachment_access {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_ARM_rasterization_order_attachment_access")?;
}
if self.arm_shader_core_builtins {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_ARM_shader_core_builtins")?;
}
if self.fuchsia_buffer_collection {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_FUCHSIA_buffer_collection")?;
}
if self.fuchsia_external_memory {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_FUCHSIA_external_memory")?;
}
if self.fuchsia_external_semaphore {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_FUCHSIA_external_semaphore")?;
}
if self.ggp_frame_token {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_GGP_frame_token")?;
}
if self.google_decorate_string {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_GOOGLE_decorate_string")?;
}
if self.google_display_timing {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_GOOGLE_display_timing")?;
}
if self.google_hlsl_functionality1 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_GOOGLE_hlsl_functionality1")?;
}
if self.google_user_type {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_GOOGLE_user_type")?;
}
if self.huawei_invocation_mask {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_HUAWEI_invocation_mask")?;
}
if self.huawei_subpass_shading {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_HUAWEI_subpass_shading")?;
}
if self.img_filter_cubic {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_IMG_filter_cubic")?;
}
if self.img_format_pvrtc {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_IMG_format_pvrtc")?;
}
if self.intel_performance_query {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_INTEL_performance_query")?;
}
if self.intel_shader_integer_functions2 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_INTEL_shader_integer_functions2")?;
}
if self.nvx_binary_import {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NVX_binary_import")?;
}
if self.nvx_image_view_handle {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NVX_image_view_handle")?;
}
if self.nvx_multiview_per_view_attributes {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NVX_multiview_per_view_attributes")?;
}
if self.nv_acquire_winrt_display {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_acquire_winrt_display")?;
}
if self.nv_clip_space_w_scaling {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_clip_space_w_scaling")?;
}
if self.nv_compute_shader_derivatives {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_compute_shader_derivatives")?;
}
if self.nv_cooperative_matrix {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_cooperative_matrix")?;
}
if self.nv_copy_memory_indirect {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_copy_memory_indirect")?;
}
if self.nv_corner_sampled_image {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_corner_sampled_image")?;
}
if self.nv_coverage_reduction_mode {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_coverage_reduction_mode")?;
}
if self.nv_dedicated_allocation {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_dedicated_allocation")?;
}
if self.nv_dedicated_allocation_image_aliasing {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_dedicated_allocation_image_aliasing")?;
}
if self.nv_device_diagnostic_checkpoints {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_device_diagnostic_checkpoints")?;
}
if self.nv_device_diagnostics_config {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_device_diagnostics_config")?;
}
if self.nv_device_generated_commands {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_device_generated_commands")?;
}
if self.nv_external_memory {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_external_memory")?;
}
if self.nv_external_memory_rdma {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_external_memory_rdma")?;
}
if self.nv_external_memory_win32 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_external_memory_win32")?;
}
if self.nv_fill_rectangle {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_fill_rectangle")?;
}
if self.nv_fragment_coverage_to_color {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_fragment_coverage_to_color")?;
}
if self.nv_fragment_shader_barycentric {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_fragment_shader_barycentric")?;
}
if self.nv_fragment_shading_rate_enums {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_fragment_shading_rate_enums")?;
}
if self.nv_framebuffer_mixed_samples {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_framebuffer_mixed_samples")?;
}
if self.nv_geometry_shader_passthrough {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_geometry_shader_passthrough")?;
}
if self.nv_glsl_shader {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_glsl_shader")?;
}
if self.nv_inherited_viewport_scissor {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_inherited_viewport_scissor")?;
}
if self.nv_linear_color_attachment {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_linear_color_attachment")?;
}
if self.nv_memory_decompression {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_memory_decompression")?;
}
if self.nv_mesh_shader {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_mesh_shader")?;
}
if self.nv_optical_flow {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_optical_flow")?;
}
if self.nv_present_barrier {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_present_barrier")?;
}
if self.nv_ray_tracing {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_ray_tracing")?;
}
if self.nv_ray_tracing_invocation_reorder {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_ray_tracing_invocation_reorder")?;
}
if self.nv_ray_tracing_motion_blur {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_ray_tracing_motion_blur")?;
}
if self.nv_representative_fragment_test {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_representative_fragment_test")?;
}
if self.nv_sample_mask_override_coverage {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_sample_mask_override_coverage")?;
}
if self.nv_scissor_exclusive {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_scissor_exclusive")?;
}
if self.nv_shader_image_footprint {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_shader_image_footprint")?;
}
if self.nv_shader_sm_builtins {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_shader_sm_builtins")?;
}
if self.nv_shader_subgroup_partitioned {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_shader_subgroup_partitioned")?;
}
if self.nv_shading_rate_image {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_shading_rate_image")?;
}
if self.nv_viewport_array2 {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_viewport_array2")?;
}
if self.nv_viewport_swizzle {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_viewport_swizzle")?;
}
if self.nv_win32_keyed_mutex {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_NV_win32_keyed_mutex")?;
}
if self.qcom_fragment_density_map_offset {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_QCOM_fragment_density_map_offset")?;
}
if self.qcom_image_processing {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_QCOM_image_processing")?;
}
if self.qcom_multiview_per_view_viewports {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_QCOM_multiview_per_view_viewports")?;
}
if self.qcom_render_pass_shader_resolve {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_QCOM_render_pass_shader_resolve")?;
}
if self.qcom_render_pass_store_ops {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_QCOM_render_pass_store_ops")?;
}
if self.qcom_render_pass_transform {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_QCOM_render_pass_transform")?;
}
if self.qcom_rotated_copy_commands {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_QCOM_rotated_copy_commands")?;
}
if self.qcom_tile_properties {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_QCOM_tile_properties")?;
}
if self.sec_amigo_profiling {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_SEC_amigo_profiling")?;
}
if self.valve_descriptor_set_host_mapping {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_VALVE_descriptor_set_host_mapping")?;
}
if self.valve_mutable_descriptor_type {
if !first {
write!(f, ", ")?
} else {
first = false;
}
f.write_str("VK_VALVE_mutable_descriptor_type")?;
}
write!(f, "]")
}
}
impl<'a> FromIterator<&'a str> for DeviceExtensions {
fn from_iter<I>(iter: I) -> Self
where
I: IntoIterator<Item = &'a str>,
{
let mut extensions = Self::empty();
for name in iter {
match name {
"VK_KHR_16bit_storage" => {
extensions.khr_16bit_storage = true;
}
"VK_KHR_8bit_storage" => {
extensions.khr_8bit_storage = true;
}
"VK_KHR_acceleration_structure" => {
extensions.khr_acceleration_structure = true;
}
"VK_KHR_bind_memory2" => {
extensions.khr_bind_memory2 = true;
}
"VK_KHR_buffer_device_address" => {
extensions.khr_buffer_device_address = true;
}
"VK_KHR_copy_commands2" => {
extensions.khr_copy_commands2 = true;
}
"VK_KHR_create_renderpass2" => {
extensions.khr_create_renderpass2 = true;
}
"VK_KHR_dedicated_allocation" => {
extensions.khr_dedicated_allocation = true;
}
"VK_KHR_deferred_host_operations" => {
extensions.khr_deferred_host_operations = true;
}
"VK_KHR_depth_stencil_resolve" => {
extensions.khr_depth_stencil_resolve = true;
}
"VK_KHR_descriptor_update_template" => {
extensions.khr_descriptor_update_template = true;
}
"VK_KHR_device_group" => {
extensions.khr_device_group = true;
}
"VK_KHR_display_swapchain" => {
extensions.khr_display_swapchain = true;
}
"VK_KHR_draw_indirect_count" => {
extensions.khr_draw_indirect_count = true;
}
"VK_KHR_driver_properties" => {
extensions.khr_driver_properties = true;
}
"VK_KHR_dynamic_rendering" => {
extensions.khr_dynamic_rendering = true;
}
"VK_KHR_external_fence" => {
extensions.khr_external_fence = true;
}
"VK_KHR_external_fence_fd" => {
extensions.khr_external_fence_fd = true;
}
"VK_KHR_external_fence_win32" => {
extensions.khr_external_fence_win32 = true;
}
"VK_KHR_external_memory" => {
extensions.khr_external_memory = true;
}
"VK_KHR_external_memory_fd" => {
extensions.khr_external_memory_fd = true;
}
"VK_KHR_external_memory_win32" => {
extensions.khr_external_memory_win32 = true;
}
"VK_KHR_external_semaphore" => {
extensions.khr_external_semaphore = true;
}
"VK_KHR_external_semaphore_fd" => {
extensions.khr_external_semaphore_fd = true;
}
"VK_KHR_external_semaphore_win32" => {
extensions.khr_external_semaphore_win32 = true;
}
"VK_KHR_format_feature_flags2" => {
extensions.khr_format_feature_flags2 = true;
}
"VK_KHR_fragment_shader_barycentric" => {
extensions.khr_fragment_shader_barycentric = true;
}
"VK_KHR_fragment_shading_rate" => {
extensions.khr_fragment_shading_rate = true;
}
"VK_KHR_get_memory_requirements2" => {
extensions.khr_get_memory_requirements2 = true;
}
"VK_KHR_global_priority" => {
extensions.khr_global_priority = true;
}
"VK_KHR_image_format_list" => {
extensions.khr_image_format_list = true;
}
"VK_KHR_imageless_framebuffer" => {
extensions.khr_imageless_framebuffer = true;
}
"VK_KHR_incremental_present" => {
extensions.khr_incremental_present = true;
}
"VK_KHR_maintenance1" => {
extensions.khr_maintenance1 = true;
}
"VK_KHR_maintenance2" => {
extensions.khr_maintenance2 = true;
}
"VK_KHR_maintenance3" => {
extensions.khr_maintenance3 = true;
}
"VK_KHR_maintenance4" => {
extensions.khr_maintenance4 = true;
}
"VK_KHR_multiview" => {
extensions.khr_multiview = true;
}
"VK_KHR_performance_query" => {
extensions.khr_performance_query = true;
}
"VK_KHR_pipeline_executable_properties" => {
extensions.khr_pipeline_executable_properties = true;
}
"VK_KHR_pipeline_library" => {
extensions.khr_pipeline_library = true;
}
"VK_KHR_portability_subset" => {
extensions.khr_portability_subset = true;
}
"VK_KHR_present_id" => {
extensions.khr_present_id = true;
}
"VK_KHR_present_wait" => {
extensions.khr_present_wait = true;
}
"VK_KHR_push_descriptor" => {
extensions.khr_push_descriptor = true;
}
"VK_KHR_ray_query" => {
extensions.khr_ray_query = true;
}
"VK_KHR_ray_tracing_maintenance1" => {
extensions.khr_ray_tracing_maintenance1 = true;
}
"VK_KHR_ray_tracing_pipeline" => {
extensions.khr_ray_tracing_pipeline = true;
}
"VK_KHR_relaxed_block_layout" => {
extensions.khr_relaxed_block_layout = true;
}
"VK_KHR_sampler_mirror_clamp_to_edge" => {
extensions.khr_sampler_mirror_clamp_to_edge = true;
}
"VK_KHR_sampler_ycbcr_conversion" => {
extensions.khr_sampler_ycbcr_conversion = true;
}
"VK_KHR_separate_depth_stencil_layouts" => {
extensions.khr_separate_depth_stencil_layouts = true;
}
"VK_KHR_shader_atomic_int64" => {
extensions.khr_shader_atomic_int64 = true;
}
"VK_KHR_shader_clock" => {
extensions.khr_shader_clock = true;
}
"VK_KHR_shader_draw_parameters" => {
extensions.khr_shader_draw_parameters = true;
}
"VK_KHR_shader_float16_int8" => {
extensions.khr_shader_float16_int8 = true;
}
"VK_KHR_shader_float_controls" => {
extensions.khr_shader_float_controls = true;
}
"VK_KHR_shader_integer_dot_product" => {
extensions.khr_shader_integer_dot_product = true;
}
"VK_KHR_shader_non_semantic_info" => {
extensions.khr_shader_non_semantic_info = true;
}
"VK_KHR_shader_subgroup_extended_types" => {
extensions.khr_shader_subgroup_extended_types = true;
}
"VK_KHR_shader_subgroup_uniform_control_flow" => {
extensions.khr_shader_subgroup_uniform_control_flow = true;
}
"VK_KHR_shader_terminate_invocation" => {
extensions.khr_shader_terminate_invocation = true;
}
"VK_KHR_shared_presentable_image" => {
extensions.khr_shared_presentable_image = true;
}
"VK_KHR_spirv_1_4" => {
extensions.khr_spirv_1_4 = true;
}
"VK_KHR_storage_buffer_storage_class" => {
extensions.khr_storage_buffer_storage_class = true;
}
"VK_KHR_swapchain" => {
extensions.khr_swapchain = true;
}
"VK_KHR_swapchain_mutable_format" => {
extensions.khr_swapchain_mutable_format = true;
}
"VK_KHR_synchronization2" => {
extensions.khr_synchronization2 = true;
}
"VK_KHR_timeline_semaphore" => {
extensions.khr_timeline_semaphore = true;
}
"VK_KHR_uniform_buffer_standard_layout" => {
extensions.khr_uniform_buffer_standard_layout = true;
}
"VK_KHR_variable_pointers" => {
extensions.khr_variable_pointers = true;
}
"VK_KHR_video_decode_h264" => {
extensions.khr_video_decode_h264 = true;
}
"VK_KHR_video_decode_h265" => {
extensions.khr_video_decode_h265 = true;
}
"VK_KHR_video_decode_queue" => {
extensions.khr_video_decode_queue = true;
}
"VK_KHR_video_encode_queue" => {
extensions.khr_video_encode_queue = true;
}
"VK_KHR_video_queue" => {
extensions.khr_video_queue = true;
}
"VK_KHR_vulkan_memory_model" => {
extensions.khr_vulkan_memory_model = true;
}
"VK_KHR_win32_keyed_mutex" => {
extensions.khr_win32_keyed_mutex = true;
}
"VK_KHR_workgroup_memory_explicit_layout" => {
extensions.khr_workgroup_memory_explicit_layout = true;
}
"VK_KHR_zero_initialize_workgroup_memory" => {
extensions.khr_zero_initialize_workgroup_memory = true;
}
"VK_EXT_4444_formats" => {
extensions.ext_4444_formats = true;
}
"VK_EXT_astc_decode_mode" => {
extensions.ext_astc_decode_mode = true;
}
"VK_EXT_attachment_feedback_loop_layout" => {
extensions.ext_attachment_feedback_loop_layout = true;
}
"VK_EXT_blend_operation_advanced" => {
extensions.ext_blend_operation_advanced = true;
}
"VK_EXT_border_color_swizzle" => {
extensions.ext_border_color_swizzle = true;
}
"VK_EXT_buffer_device_address" => {
extensions.ext_buffer_device_address = true;
}
"VK_EXT_calibrated_timestamps" => {
extensions.ext_calibrated_timestamps = true;
}
"VK_EXT_color_write_enable" => {
extensions.ext_color_write_enable = true;
}
"VK_EXT_conditional_rendering" => {
extensions.ext_conditional_rendering = true;
}
"VK_EXT_conservative_rasterization" => {
extensions.ext_conservative_rasterization = true;
}
"VK_EXT_custom_border_color" => {
extensions.ext_custom_border_color = true;
}
"VK_EXT_debug_marker" => {
extensions.ext_debug_marker = true;
}
"VK_EXT_depth_clamp_zero_one" => {
extensions.ext_depth_clamp_zero_one = true;
}
"VK_EXT_depth_clip_control" => {
extensions.ext_depth_clip_control = true;
}
"VK_EXT_depth_clip_enable" => {
extensions.ext_depth_clip_enable = true;
}
"VK_EXT_depth_range_unrestricted" => {
extensions.ext_depth_range_unrestricted = true;
}
"VK_EXT_descriptor_buffer" => {
extensions.ext_descriptor_buffer = true;
}
"VK_EXT_descriptor_indexing" => {
extensions.ext_descriptor_indexing = true;
}
"VK_EXT_device_address_binding_report" => {
extensions.ext_device_address_binding_report = true;
}
"VK_EXT_device_fault" => {
extensions.ext_device_fault = true;
}
"VK_EXT_device_memory_report" => {
extensions.ext_device_memory_report = true;
}
"VK_EXT_discard_rectangles" => {
extensions.ext_discard_rectangles = true;
}
"VK_EXT_display_control" => {
extensions.ext_display_control = true;
}
"VK_EXT_extended_dynamic_state" => {
extensions.ext_extended_dynamic_state = true;
}
"VK_EXT_extended_dynamic_state2" => {
extensions.ext_extended_dynamic_state2 = true;
}
"VK_EXT_extended_dynamic_state3" => {
extensions.ext_extended_dynamic_state3 = true;
}
"VK_EXT_external_memory_dma_buf" => {
extensions.ext_external_memory_dma_buf = true;
}
"VK_EXT_external_memory_host" => {
extensions.ext_external_memory_host = true;
}
"VK_EXT_filter_cubic" => {
extensions.ext_filter_cubic = true;
}
"VK_EXT_fragment_density_map" => {
extensions.ext_fragment_density_map = true;
}
"VK_EXT_fragment_density_map2" => {
extensions.ext_fragment_density_map2 = true;
}
"VK_EXT_fragment_shader_interlock" => {
extensions.ext_fragment_shader_interlock = true;
}
"VK_EXT_full_screen_exclusive" => {
extensions.ext_full_screen_exclusive = true;
}
"VK_EXT_global_priority" => {
extensions.ext_global_priority = true;
}
"VK_EXT_global_priority_query" => {
extensions.ext_global_priority_query = true;
}
"VK_EXT_graphics_pipeline_library" => {
extensions.ext_graphics_pipeline_library = true;
}
"VK_EXT_hdr_metadata" => {
extensions.ext_hdr_metadata = true;
}
"VK_EXT_host_query_reset" => {
extensions.ext_host_query_reset = true;
}
"VK_EXT_image_2d_view_of_3d" => {
extensions.ext_image_2d_view_of_3d = true;
}
"VK_EXT_image_compression_control" => {
extensions.ext_image_compression_control = true;
}
"VK_EXT_image_compression_control_swapchain" => {
extensions.ext_image_compression_control_swapchain = true;
}
"VK_EXT_image_drm_format_modifier" => {
extensions.ext_image_drm_format_modifier = true;
}
"VK_EXT_image_robustness" => {
extensions.ext_image_robustness = true;
}
"VK_EXT_image_view_min_lod" => {
extensions.ext_image_view_min_lod = true;
}
"VK_EXT_index_type_uint8" => {
extensions.ext_index_type_uint8 = true;
}
"VK_EXT_inline_uniform_block" => {
extensions.ext_inline_uniform_block = true;
}
"VK_EXT_legacy_dithering" => {
extensions.ext_legacy_dithering = true;
}
"VK_EXT_line_rasterization" => {
extensions.ext_line_rasterization = true;
}
"VK_EXT_load_store_op_none" => {
extensions.ext_load_store_op_none = true;
}
"VK_EXT_memory_budget" => {
extensions.ext_memory_budget = true;
}
"VK_EXT_memory_priority" => {
extensions.ext_memory_priority = true;
}
"VK_EXT_mesh_shader" => {
extensions.ext_mesh_shader = true;
}
"VK_EXT_metal_objects" => {
extensions.ext_metal_objects = true;
}
"VK_EXT_multi_draw" => {
extensions.ext_multi_draw = true;
}
"VK_EXT_multisampled_render_to_single_sampled" => {
extensions.ext_multisampled_render_to_single_sampled = true;
}
"VK_EXT_mutable_descriptor_type" => {
extensions.ext_mutable_descriptor_type = true;
}
"VK_EXT_non_seamless_cube_map" => {
extensions.ext_non_seamless_cube_map = true;
}
"VK_EXT_opacity_micromap" => {
extensions.ext_opacity_micromap = true;
}
"VK_EXT_pageable_device_local_memory" => {
extensions.ext_pageable_device_local_memory = true;
}
"VK_EXT_pci_bus_info" => {
extensions.ext_pci_bus_info = true;
}
"VK_EXT_physical_device_drm" => {
extensions.ext_physical_device_drm = true;
}
"VK_EXT_pipeline_creation_cache_control" => {
extensions.ext_pipeline_creation_cache_control = true;
}
"VK_EXT_pipeline_creation_feedback" => {
extensions.ext_pipeline_creation_feedback = true;
}
"VK_EXT_pipeline_properties" => {
extensions.ext_pipeline_properties = true;
}
"VK_EXT_pipeline_protected_access" => {
extensions.ext_pipeline_protected_access = true;
}
"VK_EXT_pipeline_robustness" => {
extensions.ext_pipeline_robustness = true;
}
"VK_EXT_post_depth_coverage" => {
extensions.ext_post_depth_coverage = true;
}
"VK_EXT_primitive_topology_list_restart" => {
extensions.ext_primitive_topology_list_restart = true;
}
"VK_EXT_primitives_generated_query" => {
extensions.ext_primitives_generated_query = true;
}
"VK_EXT_private_data" => {
extensions.ext_private_data = true;
}
"VK_EXT_provoking_vertex" => {
extensions.ext_provoking_vertex = true;
}
"VK_EXT_queue_family_foreign" => {
extensions.ext_queue_family_foreign = true;
}
"VK_EXT_rasterization_order_attachment_access" => {
extensions.ext_rasterization_order_attachment_access = true;
}
"VK_EXT_rgba10x6_formats" => {
extensions.ext_rgba10x6_formats = true;
}
"VK_EXT_robustness2" => {
extensions.ext_robustness2 = true;
}
"VK_EXT_sample_locations" => {
extensions.ext_sample_locations = true;
}
"VK_EXT_sampler_filter_minmax" => {
extensions.ext_sampler_filter_minmax = true;
}
"VK_EXT_scalar_block_layout" => {
extensions.ext_scalar_block_layout = true;
}
"VK_EXT_separate_stencil_usage" => {
extensions.ext_separate_stencil_usage = true;
}
"VK_EXT_shader_atomic_float" => {
extensions.ext_shader_atomic_float = true;
}
"VK_EXT_shader_atomic_float2" => {
extensions.ext_shader_atomic_float2 = true;
}
"VK_EXT_shader_demote_to_helper_invocation" => {
extensions.ext_shader_demote_to_helper_invocation = true;
}
"VK_EXT_shader_image_atomic_int64" => {
extensions.ext_shader_image_atomic_int64 = true;
}
"VK_EXT_shader_module_identifier" => {
extensions.ext_shader_module_identifier = true;
}
"VK_EXT_shader_stencil_export" => {
extensions.ext_shader_stencil_export = true;
}
"VK_EXT_shader_subgroup_ballot" => {
extensions.ext_shader_subgroup_ballot = true;
}
"VK_EXT_shader_subgroup_vote" => {
extensions.ext_shader_subgroup_vote = true;
}
"VK_EXT_shader_viewport_index_layer" => {
extensions.ext_shader_viewport_index_layer = true;
}
"VK_EXT_subgroup_size_control" => {
extensions.ext_subgroup_size_control = true;
}
"VK_EXT_subpass_merge_feedback" => {
extensions.ext_subpass_merge_feedback = true;
}
"VK_EXT_swapchain_maintenance1" => {
extensions.ext_swapchain_maintenance1 = true;
}
"VK_EXT_texel_buffer_alignment" => {
extensions.ext_texel_buffer_alignment = true;
}
"VK_EXT_texture_compression_astc_hdr" => {
extensions.ext_texture_compression_astc_hdr = true;
}
"VK_EXT_tooling_info" => {
extensions.ext_tooling_info = true;
}
"VK_EXT_transform_feedback" => {
extensions.ext_transform_feedback = true;
}
"VK_EXT_validation_cache" => {
extensions.ext_validation_cache = true;
}
"VK_EXT_vertex_attribute_divisor" => {
extensions.ext_vertex_attribute_divisor = true;
}
"VK_EXT_vertex_input_dynamic_state" => {
extensions.ext_vertex_input_dynamic_state = true;
}
"VK_EXT_video_encode_h264" => {
extensions.ext_video_encode_h264 = true;
}
"VK_EXT_video_encode_h265" => {
extensions.ext_video_encode_h265 = true;
}
"VK_EXT_ycbcr_2plane_444_formats" => {
extensions.ext_ycbcr_2plane_444_formats = true;
}
"VK_EXT_ycbcr_image_arrays" => {
extensions.ext_ycbcr_image_arrays = true;
}
"VK_AMD_buffer_marker" => {
extensions.amd_buffer_marker = true;
}
"VK_AMD_device_coherent_memory" => {
extensions.amd_device_coherent_memory = true;
}
"VK_AMD_display_native_hdr" => {
extensions.amd_display_native_hdr = true;
}
"VK_AMD_draw_indirect_count" => {
extensions.amd_draw_indirect_count = true;
}
"VK_AMD_gcn_shader" => {
extensions.amd_gcn_shader = true;
}
"VK_AMD_gpu_shader_half_float" => {
extensions.amd_gpu_shader_half_float = true;
}
"VK_AMD_gpu_shader_int16" => {
extensions.amd_gpu_shader_int16 = true;
}
"VK_AMD_memory_overallocation_behavior" => {
extensions.amd_memory_overallocation_behavior = true;
}
"VK_AMD_mixed_attachment_samples" => {
extensions.amd_mixed_attachment_samples = true;
}
"VK_AMD_pipeline_compiler_control" => {
extensions.amd_pipeline_compiler_control = true;
}
"VK_AMD_rasterization_order" => {
extensions.amd_rasterization_order = true;
}
"VK_AMD_shader_ballot" => {
extensions.amd_shader_ballot = true;
}
"VK_AMD_shader_core_properties" => {
extensions.amd_shader_core_properties = true;
}
"VK_AMD_shader_core_properties2" => {
extensions.amd_shader_core_properties2 = true;
}
"VK_AMD_shader_early_and_late_fragment_tests" => {
extensions.amd_shader_early_and_late_fragment_tests = true;
}
"VK_AMD_shader_explicit_vertex_parameter" => {
extensions.amd_shader_explicit_vertex_parameter = true;
}
"VK_AMD_shader_fragment_mask" => {
extensions.amd_shader_fragment_mask = true;
}
"VK_AMD_shader_image_load_store_lod" => {
extensions.amd_shader_image_load_store_lod = true;
}
"VK_AMD_shader_info" => {
extensions.amd_shader_info = true;
}
"VK_AMD_shader_trinary_minmax" => {
extensions.amd_shader_trinary_minmax = true;
}
"VK_AMD_texture_gather_bias_lod" => {
extensions.amd_texture_gather_bias_lod = true;
}
"VK_ANDROID_external_memory_android_hardware_buffer" => {
extensions.android_external_memory_android_hardware_buffer = true;
}
"VK_ARM_rasterization_order_attachment_access" => {
extensions.arm_rasterization_order_attachment_access = true;
}
"VK_ARM_shader_core_builtins" => {
extensions.arm_shader_core_builtins = true;
}
"VK_FUCHSIA_buffer_collection" => {
extensions.fuchsia_buffer_collection = true;
}
"VK_FUCHSIA_external_memory" => {
extensions.fuchsia_external_memory = true;
}
"VK_FUCHSIA_external_semaphore" => {
extensions.fuchsia_external_semaphore = true;
}
"VK_GGP_frame_token" => {
extensions.ggp_frame_token = true;
}
"VK_GOOGLE_decorate_string" => {
extensions.google_decorate_string = true;
}
"VK_GOOGLE_display_timing" => {
extensions.google_display_timing = true;
}
"VK_GOOGLE_hlsl_functionality1" => {
extensions.google_hlsl_functionality1 = true;
}
"VK_GOOGLE_user_type" => {
extensions.google_user_type = true;
}
"VK_HUAWEI_invocation_mask" => {
extensions.huawei_invocation_mask = true;
}
"VK_HUAWEI_subpass_shading" => {
extensions.huawei_subpass_shading = true;
}
"VK_IMG_filter_cubic" => {
extensions.img_filter_cubic = true;
}
"VK_IMG_format_pvrtc" => {
extensions.img_format_pvrtc = true;
}
"VK_INTEL_performance_query" => {
extensions.intel_performance_query = true;
}
"VK_INTEL_shader_integer_functions2" => {
extensions.intel_shader_integer_functions2 = true;
}
"VK_NVX_binary_import" => {
extensions.nvx_binary_import = true;
}
"VK_NVX_image_view_handle" => {
extensions.nvx_image_view_handle = true;
}
"VK_NVX_multiview_per_view_attributes" => {
extensions.nvx_multiview_per_view_attributes = true;
}
"VK_NV_acquire_winrt_display" => {
extensions.nv_acquire_winrt_display = true;
}
"VK_NV_clip_space_w_scaling" => {
extensions.nv_clip_space_w_scaling = true;
}
"VK_NV_compute_shader_derivatives" => {
extensions.nv_compute_shader_derivatives = true;
}
"VK_NV_cooperative_matrix" => {
extensions.nv_cooperative_matrix = true;
}
"VK_NV_copy_memory_indirect" => {
extensions.nv_copy_memory_indirect = true;
}
"VK_NV_corner_sampled_image" => {
extensions.nv_corner_sampled_image = true;
}
"VK_NV_coverage_reduction_mode" => {
extensions.nv_coverage_reduction_mode = true;
}
"VK_NV_dedicated_allocation" => {
extensions.nv_dedicated_allocation = true;
}
"VK_NV_dedicated_allocation_image_aliasing" => {
extensions.nv_dedicated_allocation_image_aliasing = true;
}
"VK_NV_device_diagnostic_checkpoints" => {
extensions.nv_device_diagnostic_checkpoints = true;
}
"VK_NV_device_diagnostics_config" => {
extensions.nv_device_diagnostics_config = true;
}
"VK_NV_device_generated_commands" => {
extensions.nv_device_generated_commands = true;
}
"VK_NV_external_memory" => {
extensions.nv_external_memory = true;
}
"VK_NV_external_memory_rdma" => {
extensions.nv_external_memory_rdma = true;
}
"VK_NV_external_memory_win32" => {
extensions.nv_external_memory_win32 = true;
}
"VK_NV_fill_rectangle" => {
extensions.nv_fill_rectangle = true;
}
"VK_NV_fragment_coverage_to_color" => {
extensions.nv_fragment_coverage_to_color = true;
}
"VK_NV_fragment_shader_barycentric" => {
extensions.nv_fragment_shader_barycentric = true;
}
"VK_NV_fragment_shading_rate_enums" => {
extensions.nv_fragment_shading_rate_enums = true;
}
"VK_NV_framebuffer_mixed_samples" => {
extensions.nv_framebuffer_mixed_samples = true;
}
"VK_NV_geometry_shader_passthrough" => {
extensions.nv_geometry_shader_passthrough = true;
}
"VK_NV_glsl_shader" => {
extensions.nv_glsl_shader = true;
}
"VK_NV_inherited_viewport_scissor" => {
extensions.nv_inherited_viewport_scissor = true;
}
"VK_NV_linear_color_attachment" => {
extensions.nv_linear_color_attachment = true;
}
"VK_NV_memory_decompression" => {
extensions.nv_memory_decompression = true;
}
"VK_NV_mesh_shader" => {
extensions.nv_mesh_shader = true;
}
"VK_NV_optical_flow" => {
extensions.nv_optical_flow = true;
}
"VK_NV_present_barrier" => {
extensions.nv_present_barrier = true;
}
"VK_NV_ray_tracing" => {
extensions.nv_ray_tracing = true;
}
"VK_NV_ray_tracing_invocation_reorder" => {
extensions.nv_ray_tracing_invocation_reorder = true;
}
"VK_NV_ray_tracing_motion_blur" => {
extensions.nv_ray_tracing_motion_blur = true;
}
"VK_NV_representative_fragment_test" => {
extensions.nv_representative_fragment_test = true;
}
"VK_NV_sample_mask_override_coverage" => {
extensions.nv_sample_mask_override_coverage = true;
}
"VK_NV_scissor_exclusive" => {
extensions.nv_scissor_exclusive = true;
}
"VK_NV_shader_image_footprint" => {
extensions.nv_shader_image_footprint = true;
}
"VK_NV_shader_sm_builtins" => {
extensions.nv_shader_sm_builtins = true;
}
"VK_NV_shader_subgroup_partitioned" => {
extensions.nv_shader_subgroup_partitioned = true;
}
"VK_NV_shading_rate_image" => {
extensions.nv_shading_rate_image = true;
}
"VK_NV_viewport_array2" => {
extensions.nv_viewport_array2 = true;
}
"VK_NV_viewport_swizzle" => {
extensions.nv_viewport_swizzle = true;
}
"VK_NV_win32_keyed_mutex" => {
extensions.nv_win32_keyed_mutex = true;
}
"VK_QCOM_fragment_density_map_offset" => {
extensions.qcom_fragment_density_map_offset = true;
}
"VK_QCOM_image_processing" => {
extensions.qcom_image_processing = true;
}
"VK_QCOM_multiview_per_view_viewports" => {
extensions.qcom_multiview_per_view_viewports = true;
}
"VK_QCOM_render_pass_shader_resolve" => {
extensions.qcom_render_pass_shader_resolve = true;
}
"VK_QCOM_render_pass_store_ops" => {
extensions.qcom_render_pass_store_ops = true;
}
"VK_QCOM_render_pass_transform" => {
extensions.qcom_render_pass_transform = true;
}
"VK_QCOM_rotated_copy_commands" => {
extensions.qcom_rotated_copy_commands = true;
}
"VK_QCOM_tile_properties" => {
extensions.qcom_tile_properties = true;
}
"VK_SEC_amigo_profiling" => {
extensions.sec_amigo_profiling = true;
}
"VK_VALVE_descriptor_set_host_mapping" => {
extensions.valve_descriptor_set_host_mapping = true;
}
"VK_VALVE_mutable_descriptor_type" => {
extensions.valve_mutable_descriptor_type = true;
}
_ => (),
}
}
extensions
}
}
impl<'a> From<&'a DeviceExtensions> for Vec<std::ffi::CString> {
fn from(x: &'a DeviceExtensions) -> Self {
let mut data = Self::new();
if x.khr_16bit_storage {
data.push(std::ffi::CString::new("VK_KHR_16bit_storage").unwrap());
}
if x.khr_8bit_storage {
data.push(std::ffi::CString::new("VK_KHR_8bit_storage").unwrap());
}
if x.khr_acceleration_structure {
data.push(std::ffi::CString::new("VK_KHR_acceleration_structure").unwrap());
}
if x.khr_bind_memory2 {
data.push(std::ffi::CString::new("VK_KHR_bind_memory2").unwrap());
}
if x.khr_buffer_device_address {
data.push(std::ffi::CString::new("VK_KHR_buffer_device_address").unwrap());
}
if x.khr_copy_commands2 {
data.push(std::ffi::CString::new("VK_KHR_copy_commands2").unwrap());
}
if x.khr_create_renderpass2 {
data.push(std::ffi::CString::new("VK_KHR_create_renderpass2").unwrap());
}
if x.khr_dedicated_allocation {
data.push(std::ffi::CString::new("VK_KHR_dedicated_allocation").unwrap());
}
if x.khr_deferred_host_operations {
data.push(std::ffi::CString::new("VK_KHR_deferred_host_operations").unwrap());
}
if x.khr_depth_stencil_resolve {
data.push(std::ffi::CString::new("VK_KHR_depth_stencil_resolve").unwrap());
}
if x.khr_descriptor_update_template {
data.push(std::ffi::CString::new("VK_KHR_descriptor_update_template").unwrap());
}
if x.khr_device_group {
data.push(std::ffi::CString::new("VK_KHR_device_group").unwrap());
}
if x.khr_display_swapchain {
data.push(std::ffi::CString::new("VK_KHR_display_swapchain").unwrap());
}
if x.khr_draw_indirect_count {
data.push(std::ffi::CString::new("VK_KHR_draw_indirect_count").unwrap());
}
if x.khr_driver_properties {
data.push(std::ffi::CString::new("VK_KHR_driver_properties").unwrap());
}
if x.khr_dynamic_rendering {
data.push(std::ffi::CString::new("VK_KHR_dynamic_rendering").unwrap());
}
if x.khr_external_fence {
data.push(std::ffi::CString::new("VK_KHR_external_fence").unwrap());
}
if x.khr_external_fence_fd {
data.push(std::ffi::CString::new("VK_KHR_external_fence_fd").unwrap());
}
if x.khr_external_fence_win32 {
data.push(std::ffi::CString::new("VK_KHR_external_fence_win32").unwrap());
}
if x.khr_external_memory {
data.push(std::ffi::CString::new("VK_KHR_external_memory").unwrap());
}
if x.khr_external_memory_fd {
data.push(std::ffi::CString::new("VK_KHR_external_memory_fd").unwrap());
}
if x.khr_external_memory_win32 {
data.push(std::ffi::CString::new("VK_KHR_external_memory_win32").unwrap());
}
if x.khr_external_semaphore {
data.push(std::ffi::CString::new("VK_KHR_external_semaphore").unwrap());
}
if x.khr_external_semaphore_fd {
data.push(std::ffi::CString::new("VK_KHR_external_semaphore_fd").unwrap());
}
if x.khr_external_semaphore_win32 {
data.push(std::ffi::CString::new("VK_KHR_external_semaphore_win32").unwrap());
}
if x.khr_format_feature_flags2 {
data.push(std::ffi::CString::new("VK_KHR_format_feature_flags2").unwrap());
}
if x.khr_fragment_shader_barycentric {
data.push(std::ffi::CString::new("VK_KHR_fragment_shader_barycentric").unwrap());
}
if x.khr_fragment_shading_rate {
data.push(std::ffi::CString::new("VK_KHR_fragment_shading_rate").unwrap());
}
if x.khr_get_memory_requirements2 {
data.push(std::ffi::CString::new("VK_KHR_get_memory_requirements2").unwrap());
}
if x.khr_global_priority {
data.push(std::ffi::CString::new("VK_KHR_global_priority").unwrap());
}
if x.khr_image_format_list {
data.push(std::ffi::CString::new("VK_KHR_image_format_list").unwrap());
}
if x.khr_imageless_framebuffer {
data.push(std::ffi::CString::new("VK_KHR_imageless_framebuffer").unwrap());
}
if x.khr_incremental_present {
data.push(std::ffi::CString::new("VK_KHR_incremental_present").unwrap());
}
if x.khr_maintenance1 {
data.push(std::ffi::CString::new("VK_KHR_maintenance1").unwrap());
}
if x.khr_maintenance2 {
data.push(std::ffi::CString::new("VK_KHR_maintenance2").unwrap());
}
if x.khr_maintenance3 {
data.push(std::ffi::CString::new("VK_KHR_maintenance3").unwrap());
}
if x.khr_maintenance4 {
data.push(std::ffi::CString::new("VK_KHR_maintenance4").unwrap());
}
if x.khr_multiview {
data.push(std::ffi::CString::new("VK_KHR_multiview").unwrap());
}
if x.khr_performance_query {
data.push(std::ffi::CString::new("VK_KHR_performance_query").unwrap());
}
if x.khr_pipeline_executable_properties {
data.push(std::ffi::CString::new("VK_KHR_pipeline_executable_properties").unwrap());
}
if x.khr_pipeline_library {
data.push(std::ffi::CString::new("VK_KHR_pipeline_library").unwrap());
}
if x.khr_portability_subset {
data.push(std::ffi::CString::new("VK_KHR_portability_subset").unwrap());
}
if x.khr_present_id {
data.push(std::ffi::CString::new("VK_KHR_present_id").unwrap());
}
if x.khr_present_wait {
data.push(std::ffi::CString::new("VK_KHR_present_wait").unwrap());
}
if x.khr_push_descriptor {
data.push(std::ffi::CString::new("VK_KHR_push_descriptor").unwrap());
}
if x.khr_ray_query {
data.push(std::ffi::CString::new("VK_KHR_ray_query").unwrap());
}
if x.khr_ray_tracing_maintenance1 {
data.push(std::ffi::CString::new("VK_KHR_ray_tracing_maintenance1").unwrap());
}
if x.khr_ray_tracing_pipeline {
data.push(std::ffi::CString::new("VK_KHR_ray_tracing_pipeline").unwrap());
}
if x.khr_relaxed_block_layout {
data.push(std::ffi::CString::new("VK_KHR_relaxed_block_layout").unwrap());
}
if x.khr_sampler_mirror_clamp_to_edge {
data.push(std::ffi::CString::new("VK_KHR_sampler_mirror_clamp_to_edge").unwrap());
}
if x.khr_sampler_ycbcr_conversion {
data.push(std::ffi::CString::new("VK_KHR_sampler_ycbcr_conversion").unwrap());
}
if x.khr_separate_depth_stencil_layouts {
data.push(std::ffi::CString::new("VK_KHR_separate_depth_stencil_layouts").unwrap());
}
if x.khr_shader_atomic_int64 {
data.push(std::ffi::CString::new("VK_KHR_shader_atomic_int64").unwrap());
}
if x.khr_shader_clock {
data.push(std::ffi::CString::new("VK_KHR_shader_clock").unwrap());
}
if x.khr_shader_draw_parameters {
data.push(std::ffi::CString::new("VK_KHR_shader_draw_parameters").unwrap());
}
if x.khr_shader_float16_int8 {
data.push(std::ffi::CString::new("VK_KHR_shader_float16_int8").unwrap());
}
if x.khr_shader_float_controls {
data.push(std::ffi::CString::new("VK_KHR_shader_float_controls").unwrap());
}
if x.khr_shader_integer_dot_product {
data.push(std::ffi::CString::new("VK_KHR_shader_integer_dot_product").unwrap());
}
if x.khr_shader_non_semantic_info {
data.push(std::ffi::CString::new("VK_KHR_shader_non_semantic_info").unwrap());
}
if x.khr_shader_subgroup_extended_types {
data.push(std::ffi::CString::new("VK_KHR_shader_subgroup_extended_types").unwrap());
}
if x.khr_shader_subgroup_uniform_control_flow {
data.push(
std::ffi::CString::new("VK_KHR_shader_subgroup_uniform_control_flow").unwrap(),
);
}
if x.khr_shader_terminate_invocation {
data.push(std::ffi::CString::new("VK_KHR_shader_terminate_invocation").unwrap());
}
if x.khr_shared_presentable_image {
data.push(std::ffi::CString::new("VK_KHR_shared_presentable_image").unwrap());
}
if x.khr_spirv_1_4 {
data.push(std::ffi::CString::new("VK_KHR_spirv_1_4").unwrap());
}
if x.khr_storage_buffer_storage_class {
data.push(std::ffi::CString::new("VK_KHR_storage_buffer_storage_class").unwrap());
}
if x.khr_swapchain {
data.push(std::ffi::CString::new("VK_KHR_swapchain").unwrap());
}
if x.khr_swapchain_mutable_format {
data.push(std::ffi::CString::new("VK_KHR_swapchain_mutable_format").unwrap());
}
if x.khr_synchronization2 {
data.push(std::ffi::CString::new("VK_KHR_synchronization2").unwrap());
}
if x.khr_timeline_semaphore {
data.push(std::ffi::CString::new("VK_KHR_timeline_semaphore").unwrap());
}
if x.khr_uniform_buffer_standard_layout {
data.push(std::ffi::CString::new("VK_KHR_uniform_buffer_standard_layout").unwrap());
}
if x.khr_variable_pointers {
data.push(std::ffi::CString::new("VK_KHR_variable_pointers").unwrap());
}
if x.khr_video_decode_h264 {
data.push(std::ffi::CString::new("VK_KHR_video_decode_h264").unwrap());
}
if x.khr_video_decode_h265 {
data.push(std::ffi::CString::new("VK_KHR_video_decode_h265").unwrap());
}
if x.khr_video_decode_queue {
data.push(std::ffi::CString::new("VK_KHR_video_decode_queue").unwrap());
}
if x.khr_video_encode_queue {
data.push(std::ffi::CString::new("VK_KHR_video_encode_queue").unwrap());
}
if x.khr_video_queue {
data.push(std::ffi::CString::new("VK_KHR_video_queue").unwrap());
}
if x.khr_vulkan_memory_model {
data.push(std::ffi::CString::new("VK_KHR_vulkan_memory_model").unwrap());
}
if x.khr_win32_keyed_mutex {
data.push(std::ffi::CString::new("VK_KHR_win32_keyed_mutex").unwrap());
}
if x.khr_workgroup_memory_explicit_layout {
data.push(std::ffi::CString::new("VK_KHR_workgroup_memory_explicit_layout").unwrap());
}
if x.khr_zero_initialize_workgroup_memory {
data.push(std::ffi::CString::new("VK_KHR_zero_initialize_workgroup_memory").unwrap());
}
if x.ext_4444_formats {
data.push(std::ffi::CString::new("VK_EXT_4444_formats").unwrap());
}
if x.ext_astc_decode_mode {
data.push(std::ffi::CString::new("VK_EXT_astc_decode_mode").unwrap());
}
if x.ext_attachment_feedback_loop_layout {
data.push(std::ffi::CString::new("VK_EXT_attachment_feedback_loop_layout").unwrap());
}
if x.ext_blend_operation_advanced {
data.push(std::ffi::CString::new("VK_EXT_blend_operation_advanced").unwrap());
}
if x.ext_border_color_swizzle {
data.push(std::ffi::CString::new("VK_EXT_border_color_swizzle").unwrap());
}
if x.ext_buffer_device_address {
data.push(std::ffi::CString::new("VK_EXT_buffer_device_address").unwrap());
}
if x.ext_calibrated_timestamps {
data.push(std::ffi::CString::new("VK_EXT_calibrated_timestamps").unwrap());
}
if x.ext_color_write_enable {
data.push(std::ffi::CString::new("VK_EXT_color_write_enable").unwrap());
}
if x.ext_conditional_rendering {
data.push(std::ffi::CString::new("VK_EXT_conditional_rendering").unwrap());
}
if x.ext_conservative_rasterization {
data.push(std::ffi::CString::new("VK_EXT_conservative_rasterization").unwrap());
}
if x.ext_custom_border_color {
data.push(std::ffi::CString::new("VK_EXT_custom_border_color").unwrap());
}
if x.ext_debug_marker {
data.push(std::ffi::CString::new("VK_EXT_debug_marker").unwrap());
}
if x.ext_depth_clamp_zero_one {
data.push(std::ffi::CString::new("VK_EXT_depth_clamp_zero_one").unwrap());
}
if x.ext_depth_clip_control {
data.push(std::ffi::CString::new("VK_EXT_depth_clip_control").unwrap());
}
if x.ext_depth_clip_enable {
data.push(std::ffi::CString::new("VK_EXT_depth_clip_enable").unwrap());
}
if x.ext_depth_range_unrestricted {
data.push(std::ffi::CString::new("VK_EXT_depth_range_unrestricted").unwrap());
}
if x.ext_descriptor_buffer {
data.push(std::ffi::CString::new("VK_EXT_descriptor_buffer").unwrap());
}
if x.ext_descriptor_indexing {
data.push(std::ffi::CString::new("VK_EXT_descriptor_indexing").unwrap());
}
if x.ext_device_address_binding_report {
data.push(std::ffi::CString::new("VK_EXT_device_address_binding_report").unwrap());
}
if x.ext_device_fault {
data.push(std::ffi::CString::new("VK_EXT_device_fault").unwrap());
}
if x.ext_device_memory_report {
data.push(std::ffi::CString::new("VK_EXT_device_memory_report").unwrap());
}
if x.ext_discard_rectangles {
data.push(std::ffi::CString::new("VK_EXT_discard_rectangles").unwrap());
}
if x.ext_display_control {
data.push(std::ffi::CString::new("VK_EXT_display_control").unwrap());
}
if x.ext_extended_dynamic_state {
data.push(std::ffi::CString::new("VK_EXT_extended_dynamic_state").unwrap());
}
if x.ext_extended_dynamic_state2 {
data.push(std::ffi::CString::new("VK_EXT_extended_dynamic_state2").unwrap());
}
if x.ext_extended_dynamic_state3 {
data.push(std::ffi::CString::new("VK_EXT_extended_dynamic_state3").unwrap());
}
if x.ext_external_memory_dma_buf {
data.push(std::ffi::CString::new("VK_EXT_external_memory_dma_buf").unwrap());
}
if x.ext_external_memory_host {
data.push(std::ffi::CString::new("VK_EXT_external_memory_host").unwrap());
}
if x.ext_filter_cubic {
data.push(std::ffi::CString::new("VK_EXT_filter_cubic").unwrap());
}
if x.ext_fragment_density_map {
data.push(std::ffi::CString::new("VK_EXT_fragment_density_map").unwrap());
}
if x.ext_fragment_density_map2 {
data.push(std::ffi::CString::new("VK_EXT_fragment_density_map2").unwrap());
}
if x.ext_fragment_shader_interlock {
data.push(std::ffi::CString::new("VK_EXT_fragment_shader_interlock").unwrap());
}
if x.ext_full_screen_exclusive {
data.push(std::ffi::CString::new("VK_EXT_full_screen_exclusive").unwrap());
}
if x.ext_global_priority {
data.push(std::ffi::CString::new("VK_EXT_global_priority").unwrap());
}
if x.ext_global_priority_query {
data.push(std::ffi::CString::new("VK_EXT_global_priority_query").unwrap());
}
if x.ext_graphics_pipeline_library {
data.push(std::ffi::CString::new("VK_EXT_graphics_pipeline_library").unwrap());
}
if x.ext_hdr_metadata {
data.push(std::ffi::CString::new("VK_EXT_hdr_metadata").unwrap());
}
if x.ext_host_query_reset {
data.push(std::ffi::CString::new("VK_EXT_host_query_reset").unwrap());
}
if x.ext_image_2d_view_of_3d {
data.push(std::ffi::CString::new("VK_EXT_image_2d_view_of_3d").unwrap());
}
if x.ext_image_compression_control {
data.push(std::ffi::CString::new("VK_EXT_image_compression_control").unwrap());
}
if x.ext_image_compression_control_swapchain {
data.push(
std::ffi::CString::new("VK_EXT_image_compression_control_swapchain").unwrap(),
);
}
if x.ext_image_drm_format_modifier {
data.push(std::ffi::CString::new("VK_EXT_image_drm_format_modifier").unwrap());
}
if x.ext_image_robustness {
data.push(std::ffi::CString::new("VK_EXT_image_robustness").unwrap());
}
if x.ext_image_view_min_lod {
data.push(std::ffi::CString::new("VK_EXT_image_view_min_lod").unwrap());
}
if x.ext_index_type_uint8 {
data.push(std::ffi::CString::new("VK_EXT_index_type_uint8").unwrap());
}
if x.ext_inline_uniform_block {
data.push(std::ffi::CString::new("VK_EXT_inline_uniform_block").unwrap());
}
if x.ext_legacy_dithering {
data.push(std::ffi::CString::new("VK_EXT_legacy_dithering").unwrap());
}
if x.ext_line_rasterization {
data.push(std::ffi::CString::new("VK_EXT_line_rasterization").unwrap());
}
if x.ext_load_store_op_none {
data.push(std::ffi::CString::new("VK_EXT_load_store_op_none").unwrap());
}
if x.ext_memory_budget {
data.push(std::ffi::CString::new("VK_EXT_memory_budget").unwrap());
}
if x.ext_memory_priority {
data.push(std::ffi::CString::new("VK_EXT_memory_priority").unwrap());
}
if x.ext_mesh_shader {
data.push(std::ffi::CString::new("VK_EXT_mesh_shader").unwrap());
}
if x.ext_metal_objects {
data.push(std::ffi::CString::new("VK_EXT_metal_objects").unwrap());
}
if x.ext_multi_draw {
data.push(std::ffi::CString::new("VK_EXT_multi_draw").unwrap());
}
if x.ext_multisampled_render_to_single_sampled {
data.push(
std::ffi::CString::new("VK_EXT_multisampled_render_to_single_sampled").unwrap(),
);
}
if x.ext_mutable_descriptor_type {
data.push(std::ffi::CString::new("VK_EXT_mutable_descriptor_type").unwrap());
}
if x.ext_non_seamless_cube_map {
data.push(std::ffi::CString::new("VK_EXT_non_seamless_cube_map").unwrap());
}
if x.ext_opacity_micromap {
data.push(std::ffi::CString::new("VK_EXT_opacity_micromap").unwrap());
}
if x.ext_pageable_device_local_memory {
data.push(std::ffi::CString::new("VK_EXT_pageable_device_local_memory").unwrap());
}
if x.ext_pci_bus_info {
data.push(std::ffi::CString::new("VK_EXT_pci_bus_info").unwrap());
}
if x.ext_physical_device_drm {
data.push(std::ffi::CString::new("VK_EXT_physical_device_drm").unwrap());
}
if x.ext_pipeline_creation_cache_control {
data.push(std::ffi::CString::new("VK_EXT_pipeline_creation_cache_control").unwrap());
}
if x.ext_pipeline_creation_feedback {
data.push(std::ffi::CString::new("VK_EXT_pipeline_creation_feedback").unwrap());
}
if x.ext_pipeline_properties {
data.push(std::ffi::CString::new("VK_EXT_pipeline_properties").unwrap());
}
if x.ext_pipeline_protected_access {
data.push(std::ffi::CString::new("VK_EXT_pipeline_protected_access").unwrap());
}
if x.ext_pipeline_robustness {
data.push(std::ffi::CString::new("VK_EXT_pipeline_robustness").unwrap());
}
if x.ext_post_depth_coverage {
data.push(std::ffi::CString::new("VK_EXT_post_depth_coverage").unwrap());
}
if x.ext_primitive_topology_list_restart {
data.push(std::ffi::CString::new("VK_EXT_primitive_topology_list_restart").unwrap());
}
if x.ext_primitives_generated_query {
data.push(std::ffi::CString::new("VK_EXT_primitives_generated_query").unwrap());
}
if x.ext_private_data {
data.push(std::ffi::CString::new("VK_EXT_private_data").unwrap());
}
if x.ext_provoking_vertex {
data.push(std::ffi::CString::new("VK_EXT_provoking_vertex").unwrap());
}
if x.ext_queue_family_foreign {
data.push(std::ffi::CString::new("VK_EXT_queue_family_foreign").unwrap());
}
if x.ext_rasterization_order_attachment_access {
data.push(
std::ffi::CString::new("VK_EXT_rasterization_order_attachment_access").unwrap(),
);
}
if x.ext_rgba10x6_formats {
data.push(std::ffi::CString::new("VK_EXT_rgba10x6_formats").unwrap());
}
if x.ext_robustness2 {
data.push(std::ffi::CString::new("VK_EXT_robustness2").unwrap());
}
if x.ext_sample_locations {
data.push(std::ffi::CString::new("VK_EXT_sample_locations").unwrap());
}
if x.ext_sampler_filter_minmax {
data.push(std::ffi::CString::new("VK_EXT_sampler_filter_minmax").unwrap());
}
if x.ext_scalar_block_layout {
data.push(std::ffi::CString::new("VK_EXT_scalar_block_layout").unwrap());
}
if x.ext_separate_stencil_usage {
data.push(std::ffi::CString::new("VK_EXT_separate_stencil_usage").unwrap());
}
if x.ext_shader_atomic_float {
data.push(std::ffi::CString::new("VK_EXT_shader_atomic_float").unwrap());
}
if x.ext_shader_atomic_float2 {
data.push(std::ffi::CString::new("VK_EXT_shader_atomic_float2").unwrap());
}
if x.ext_shader_demote_to_helper_invocation {
data.push(std::ffi::CString::new("VK_EXT_shader_demote_to_helper_invocation").unwrap());
}
if x.ext_shader_image_atomic_int64 {
data.push(std::ffi::CString::new("VK_EXT_shader_image_atomic_int64").unwrap());
}
if x.ext_shader_module_identifier {
data.push(std::ffi::CString::new("VK_EXT_shader_module_identifier").unwrap());
}
if x.ext_shader_stencil_export {
data.push(std::ffi::CString::new("VK_EXT_shader_stencil_export").unwrap());
}
if x.ext_shader_subgroup_ballot {
data.push(std::ffi::CString::new("VK_EXT_shader_subgroup_ballot").unwrap());
}
if x.ext_shader_subgroup_vote {
data.push(std::ffi::CString::new("VK_EXT_shader_subgroup_vote").unwrap());
}
if x.ext_shader_viewport_index_layer {
data.push(std::ffi::CString::new("VK_EXT_shader_viewport_index_layer").unwrap());
}
if x.ext_subgroup_size_control {
data.push(std::ffi::CString::new("VK_EXT_subgroup_size_control").unwrap());
}
if x.ext_subpass_merge_feedback {
data.push(std::ffi::CString::new("VK_EXT_subpass_merge_feedback").unwrap());
}
if x.ext_swapchain_maintenance1 {
data.push(std::ffi::CString::new("VK_EXT_swapchain_maintenance1").unwrap());
}
if x.ext_texel_buffer_alignment {
data.push(std::ffi::CString::new("VK_EXT_texel_buffer_alignment").unwrap());
}
if x.ext_texture_compression_astc_hdr {
data.push(std::ffi::CString::new("VK_EXT_texture_compression_astc_hdr").unwrap());
}
if x.ext_tooling_info {
data.push(std::ffi::CString::new("VK_EXT_tooling_info").unwrap());
}
if x.ext_transform_feedback {
data.push(std::ffi::CString::new("VK_EXT_transform_feedback").unwrap());
}
if x.ext_validation_cache {
data.push(std::ffi::CString::new("VK_EXT_validation_cache").unwrap());
}
if x.ext_vertex_attribute_divisor {
data.push(std::ffi::CString::new("VK_EXT_vertex_attribute_divisor").unwrap());
}
if x.ext_vertex_input_dynamic_state {
data.push(std::ffi::CString::new("VK_EXT_vertex_input_dynamic_state").unwrap());
}
if x.ext_video_encode_h264 {
data.push(std::ffi::CString::new("VK_EXT_video_encode_h264").unwrap());
}
if x.ext_video_encode_h265 {
data.push(std::ffi::CString::new("VK_EXT_video_encode_h265").unwrap());
}
if x.ext_ycbcr_2plane_444_formats {
data.push(std::ffi::CString::new("VK_EXT_ycbcr_2plane_444_formats").unwrap());
}
if x.ext_ycbcr_image_arrays {
data.push(std::ffi::CString::new("VK_EXT_ycbcr_image_arrays").unwrap());
}
if x.amd_buffer_marker {
data.push(std::ffi::CString::new("VK_AMD_buffer_marker").unwrap());
}
if x.amd_device_coherent_memory {
data.push(std::ffi::CString::new("VK_AMD_device_coherent_memory").unwrap());
}
if x.amd_display_native_hdr {
data.push(std::ffi::CString::new("VK_AMD_display_native_hdr").unwrap());
}
if x.amd_draw_indirect_count {
data.push(std::ffi::CString::new("VK_AMD_draw_indirect_count").unwrap());
}
if x.amd_gcn_shader {
data.push(std::ffi::CString::new("VK_AMD_gcn_shader").unwrap());
}
if x.amd_gpu_shader_half_float {
data.push(std::ffi::CString::new("VK_AMD_gpu_shader_half_float").unwrap());
}
if x.amd_gpu_shader_int16 {
data.push(std::ffi::CString::new("VK_AMD_gpu_shader_int16").unwrap());
}
if x.amd_memory_overallocation_behavior {
data.push(std::ffi::CString::new("VK_AMD_memory_overallocation_behavior").unwrap());
}
if x.amd_mixed_attachment_samples {
data.push(std::ffi::CString::new("VK_AMD_mixed_attachment_samples").unwrap());
}
if x.amd_pipeline_compiler_control {
data.push(std::ffi::CString::new("VK_AMD_pipeline_compiler_control").unwrap());
}
if x.amd_rasterization_order {
data.push(std::ffi::CString::new("VK_AMD_rasterization_order").unwrap());
}
if x.amd_shader_ballot {
data.push(std::ffi::CString::new("VK_AMD_shader_ballot").unwrap());
}
if x.amd_shader_core_properties {
data.push(std::ffi::CString::new("VK_AMD_shader_core_properties").unwrap());
}
if x.amd_shader_core_properties2 {
data.push(std::ffi::CString::new("VK_AMD_shader_core_properties2").unwrap());
}
if x.amd_shader_early_and_late_fragment_tests {
data.push(
std::ffi::CString::new("VK_AMD_shader_early_and_late_fragment_tests").unwrap(),
);
}
if x.amd_shader_explicit_vertex_parameter {
data.push(std::ffi::CString::new("VK_AMD_shader_explicit_vertex_parameter").unwrap());
}
if x.amd_shader_fragment_mask {
data.push(std::ffi::CString::new("VK_AMD_shader_fragment_mask").unwrap());
}
if x.amd_shader_image_load_store_lod {
data.push(std::ffi::CString::new("VK_AMD_shader_image_load_store_lod").unwrap());
}
if x.amd_shader_info {
data.push(std::ffi::CString::new("VK_AMD_shader_info").unwrap());
}
if x.amd_shader_trinary_minmax {
data.push(std::ffi::CString::new("VK_AMD_shader_trinary_minmax").unwrap());
}
if x.amd_texture_gather_bias_lod {
data.push(std::ffi::CString::new("VK_AMD_texture_gather_bias_lod").unwrap());
}
if x.android_external_memory_android_hardware_buffer {
data.push(
std::ffi::CString::new("VK_ANDROID_external_memory_android_hardware_buffer")
.unwrap(),
);
}
if x.arm_rasterization_order_attachment_access {
data.push(
std::ffi::CString::new("VK_ARM_rasterization_order_attachment_access").unwrap(),
);
}
if x.arm_shader_core_builtins {
data.push(std::ffi::CString::new("VK_ARM_shader_core_builtins").unwrap());
}
if x.fuchsia_buffer_collection {
data.push(std::ffi::CString::new("VK_FUCHSIA_buffer_collection").unwrap());
}
if x.fuchsia_external_memory {
data.push(std::ffi::CString::new("VK_FUCHSIA_external_memory").unwrap());
}
if x.fuchsia_external_semaphore {
data.push(std::ffi::CString::new("VK_FUCHSIA_external_semaphore").unwrap());
}
if x.ggp_frame_token {
data.push(std::ffi::CString::new("VK_GGP_frame_token").unwrap());
}
if x.google_decorate_string {
data.push(std::ffi::CString::new("VK_GOOGLE_decorate_string").unwrap());
}
if x.google_display_timing {
data.push(std::ffi::CString::new("VK_GOOGLE_display_timing").unwrap());
}
if x.google_hlsl_functionality1 {
data.push(std::ffi::CString::new("VK_GOOGLE_hlsl_functionality1").unwrap());
}
if x.google_user_type {
data.push(std::ffi::CString::new("VK_GOOGLE_user_type").unwrap());
}
if x.huawei_invocation_mask {
data.push(std::ffi::CString::new("VK_HUAWEI_invocation_mask").unwrap());
}
if x.huawei_subpass_shading {
data.push(std::ffi::CString::new("VK_HUAWEI_subpass_shading").unwrap());
}
if x.img_filter_cubic {
data.push(std::ffi::CString::new("VK_IMG_filter_cubic").unwrap());
}
if x.img_format_pvrtc {
data.push(std::ffi::CString::new("VK_IMG_format_pvrtc").unwrap());
}
if x.intel_performance_query {
data.push(std::ffi::CString::new("VK_INTEL_performance_query").unwrap());
}
if x.intel_shader_integer_functions2 {
data.push(std::ffi::CString::new("VK_INTEL_shader_integer_functions2").unwrap());
}
if x.nvx_binary_import {
data.push(std::ffi::CString::new("VK_NVX_binary_import").unwrap());
}
if x.nvx_image_view_handle {
data.push(std::ffi::CString::new("VK_NVX_image_view_handle").unwrap());
}
if x.nvx_multiview_per_view_attributes {
data.push(std::ffi::CString::new("VK_NVX_multiview_per_view_attributes").unwrap());
}
if x.nv_acquire_winrt_display {
data.push(std::ffi::CString::new("VK_NV_acquire_winrt_display").unwrap());
}
if x.nv_clip_space_w_scaling {
data.push(std::ffi::CString::new("VK_NV_clip_space_w_scaling").unwrap());
}
if x.nv_compute_shader_derivatives {
data.push(std::ffi::CString::new("VK_NV_compute_shader_derivatives").unwrap());
}
if x.nv_cooperative_matrix {
data.push(std::ffi::CString::new("VK_NV_cooperative_matrix").unwrap());
}
if x.nv_copy_memory_indirect {
data.push(std::ffi::CString::new("VK_NV_copy_memory_indirect").unwrap());
}
if x.nv_corner_sampled_image {
data.push(std::ffi::CString::new("VK_NV_corner_sampled_image").unwrap());
}
if x.nv_coverage_reduction_mode {
data.push(std::ffi::CString::new("VK_NV_coverage_reduction_mode").unwrap());
}
if x.nv_dedicated_allocation {
data.push(std::ffi::CString::new("VK_NV_dedicated_allocation").unwrap());
}
if x.nv_dedicated_allocation_image_aliasing {
data.push(std::ffi::CString::new("VK_NV_dedicated_allocation_image_aliasing").unwrap());
}
if x.nv_device_diagnostic_checkpoints {
data.push(std::ffi::CString::new("VK_NV_device_diagnostic_checkpoints").unwrap());
}
if x.nv_device_diagnostics_config {
data.push(std::ffi::CString::new("VK_NV_device_diagnostics_config").unwrap());
}
if x.nv_device_generated_commands {
data.push(std::ffi::CString::new("VK_NV_device_generated_commands").unwrap());
}
if x.nv_external_memory {
data.push(std::ffi::CString::new("VK_NV_external_memory").unwrap());
}
if x.nv_external_memory_rdma {
data.push(std::ffi::CString::new("VK_NV_external_memory_rdma").unwrap());
}
if x.nv_external_memory_win32 {
data.push(std::ffi::CString::new("VK_NV_external_memory_win32").unwrap());
}
if x.nv_fill_rectangle {
data.push(std::ffi::CString::new("VK_NV_fill_rectangle").unwrap());
}
if x.nv_fragment_coverage_to_color {
data.push(std::ffi::CString::new("VK_NV_fragment_coverage_to_color").unwrap());
}
if x.nv_fragment_shader_barycentric {
data.push(std::ffi::CString::new("VK_NV_fragment_shader_barycentric").unwrap());
}
if x.nv_fragment_shading_rate_enums {
data.push(std::ffi::CString::new("VK_NV_fragment_shading_rate_enums").unwrap());
}
if x.nv_framebuffer_mixed_samples {
data.push(std::ffi::CString::new("VK_NV_framebuffer_mixed_samples").unwrap());
}
if x.nv_geometry_shader_passthrough {
data.push(std::ffi::CString::new("VK_NV_geometry_shader_passthrough").unwrap());
}
if x.nv_glsl_shader {
data.push(std::ffi::CString::new("VK_NV_glsl_shader").unwrap());
}
if x.nv_inherited_viewport_scissor {
data.push(std::ffi::CString::new("VK_NV_inherited_viewport_scissor").unwrap());
}
if x.nv_linear_color_attachment {
data.push(std::ffi::CString::new("VK_NV_linear_color_attachment").unwrap());
}
if x.nv_memory_decompression {
data.push(std::ffi::CString::new("VK_NV_memory_decompression").unwrap());
}
if x.nv_mesh_shader {
data.push(std::ffi::CString::new("VK_NV_mesh_shader").unwrap());
}
if x.nv_optical_flow {
data.push(std::ffi::CString::new("VK_NV_optical_flow").unwrap());
}
if x.nv_present_barrier {
data.push(std::ffi::CString::new("VK_NV_present_barrier").unwrap());
}
if x.nv_ray_tracing {
data.push(std::ffi::CString::new("VK_NV_ray_tracing").unwrap());
}
if x.nv_ray_tracing_invocation_reorder {
data.push(std::ffi::CString::new("VK_NV_ray_tracing_invocation_reorder").unwrap());
}
if x.nv_ray_tracing_motion_blur {
data.push(std::ffi::CString::new("VK_NV_ray_tracing_motion_blur").unwrap());
}
if x.nv_representative_fragment_test {
data.push(std::ffi::CString::new("VK_NV_representative_fragment_test").unwrap());
}
if x.nv_sample_mask_override_coverage {
data.push(std::ffi::CString::new("VK_NV_sample_mask_override_coverage").unwrap());
}
if x.nv_scissor_exclusive {
data.push(std::ffi::CString::new("VK_NV_scissor_exclusive").unwrap());
}
if x.nv_shader_image_footprint {
data.push(std::ffi::CString::new("VK_NV_shader_image_footprint").unwrap());
}
if x.nv_shader_sm_builtins {
data.push(std::ffi::CString::new("VK_NV_shader_sm_builtins").unwrap());
}
if x.nv_shader_subgroup_partitioned {
data.push(std::ffi::CString::new("VK_NV_shader_subgroup_partitioned").unwrap());
}
if x.nv_shading_rate_image {
data.push(std::ffi::CString::new("VK_NV_shading_rate_image").unwrap());
}
if x.nv_viewport_array2 {
data.push(std::ffi::CString::new("VK_NV_viewport_array2").unwrap());
}
if x.nv_viewport_swizzle {
data.push(std::ffi::CString::new("VK_NV_viewport_swizzle").unwrap());
}
if x.nv_win32_keyed_mutex {
data.push(std::ffi::CString::new("VK_NV_win32_keyed_mutex").unwrap());
}
if x.qcom_fragment_density_map_offset {
data.push(std::ffi::CString::new("VK_QCOM_fragment_density_map_offset").unwrap());
}
if x.qcom_image_processing {
data.push(std::ffi::CString::new("VK_QCOM_image_processing").unwrap());
}
if x.qcom_multiview_per_view_viewports {
data.push(std::ffi::CString::new("VK_QCOM_multiview_per_view_viewports").unwrap());
}
if x.qcom_render_pass_shader_resolve {
data.push(std::ffi::CString::new("VK_QCOM_render_pass_shader_resolve").unwrap());
}
if x.qcom_render_pass_store_ops {
data.push(std::ffi::CString::new("VK_QCOM_render_pass_store_ops").unwrap());
}
if x.qcom_render_pass_transform {
data.push(std::ffi::CString::new("VK_QCOM_render_pass_transform").unwrap());
}
if x.qcom_rotated_copy_commands {
data.push(std::ffi::CString::new("VK_QCOM_rotated_copy_commands").unwrap());
}
if x.qcom_tile_properties {
data.push(std::ffi::CString::new("VK_QCOM_tile_properties").unwrap());
}
if x.sec_amigo_profiling {
data.push(std::ffi::CString::new("VK_SEC_amigo_profiling").unwrap());
}
if x.valve_descriptor_set_host_mapping {
data.push(std::ffi::CString::new("VK_VALVE_descriptor_set_host_mapping").unwrap());
}
if x.valve_mutable_descriptor_type {
data.push(std::ffi::CString::new("VK_VALVE_mutable_descriptor_type").unwrap());
}
data
}
}
impl IntoIterator for DeviceExtensions {
type Item = (&'static str, bool);
type IntoIter = std::array::IntoIter<Self::Item, 275usize>;
#[inline]
fn into_iter(self) -> Self::IntoIter {
[
("VK_KHR_16bit_storage", self.khr_16bit_storage),
("VK_KHR_8bit_storage", self.khr_8bit_storage),
("VK_KHR_acceleration_structure", self.khr_acceleration_structure),
("VK_KHR_bind_memory2", self.khr_bind_memory2),
("VK_KHR_buffer_device_address", self.khr_buffer_device_address),
("VK_KHR_copy_commands2", self.khr_copy_commands2),
("VK_KHR_create_renderpass2", self.khr_create_renderpass2),
("VK_KHR_dedicated_allocation", self.khr_dedicated_allocation),
("VK_KHR_deferred_host_operations", self.khr_deferred_host_operations),
("VK_KHR_depth_stencil_resolve", self.khr_depth_stencil_resolve),
("VK_KHR_descriptor_update_template", self.khr_descriptor_update_template),
("VK_KHR_device_group", self.khr_device_group),
("VK_KHR_display_swapchain", self.khr_display_swapchain),
("VK_KHR_draw_indirect_count", self.khr_draw_indirect_count),
("VK_KHR_driver_properties", self.khr_driver_properties),
("VK_KHR_dynamic_rendering", self.khr_dynamic_rendering),
("VK_KHR_external_fence", self.khr_external_fence),
("VK_KHR_external_fence_fd", self.khr_external_fence_fd),
("VK_KHR_external_fence_win32", self.khr_external_fence_win32),
("VK_KHR_external_memory", self.khr_external_memory),
("VK_KHR_external_memory_fd", self.khr_external_memory_fd),
("VK_KHR_external_memory_win32", self.khr_external_memory_win32),
("VK_KHR_external_semaphore", self.khr_external_semaphore),
("VK_KHR_external_semaphore_fd", self.khr_external_semaphore_fd),
("VK_KHR_external_semaphore_win32", self.khr_external_semaphore_win32),
("VK_KHR_format_feature_flags2", self.khr_format_feature_flags2),
("VK_KHR_fragment_shader_barycentric", self.khr_fragment_shader_barycentric),
("VK_KHR_fragment_shading_rate", self.khr_fragment_shading_rate),
("VK_KHR_get_memory_requirements2", self.khr_get_memory_requirements2),
("VK_KHR_global_priority", self.khr_global_priority),
("VK_KHR_image_format_list", self.khr_image_format_list),
("VK_KHR_imageless_framebuffer", self.khr_imageless_framebuffer),
("VK_KHR_incremental_present", self.khr_incremental_present),
("VK_KHR_maintenance1", self.khr_maintenance1),
("VK_KHR_maintenance2", self.khr_maintenance2),
("VK_KHR_maintenance3", self.khr_maintenance3),
("VK_KHR_maintenance4", self.khr_maintenance4),
("VK_KHR_multiview", self.khr_multiview),
("VK_KHR_performance_query", self.khr_performance_query),
("VK_KHR_pipeline_executable_properties", self.khr_pipeline_executable_properties),
("VK_KHR_pipeline_library", self.khr_pipeline_library),
("VK_KHR_portability_subset", self.khr_portability_subset),
("VK_KHR_present_id", self.khr_present_id),
("VK_KHR_present_wait", self.khr_present_wait),
("VK_KHR_push_descriptor", self.khr_push_descriptor),
("VK_KHR_ray_query", self.khr_ray_query),
("VK_KHR_ray_tracing_maintenance1", self.khr_ray_tracing_maintenance1),
("VK_KHR_ray_tracing_pipeline", self.khr_ray_tracing_pipeline),
("VK_KHR_relaxed_block_layout", self.khr_relaxed_block_layout),
("VK_KHR_sampler_mirror_clamp_to_edge", self.khr_sampler_mirror_clamp_to_edge),
("VK_KHR_sampler_ycbcr_conversion", self.khr_sampler_ycbcr_conversion),
("VK_KHR_separate_depth_stencil_layouts", self.khr_separate_depth_stencil_layouts),
("VK_KHR_shader_atomic_int64", self.khr_shader_atomic_int64),
("VK_KHR_shader_clock", self.khr_shader_clock),
("VK_KHR_shader_draw_parameters", self.khr_shader_draw_parameters),
("VK_KHR_shader_float16_int8", self.khr_shader_float16_int8),
("VK_KHR_shader_float_controls", self.khr_shader_float_controls),
("VK_KHR_shader_integer_dot_product", self.khr_shader_integer_dot_product),
("VK_KHR_shader_non_semantic_info", self.khr_shader_non_semantic_info),
("VK_KHR_shader_subgroup_extended_types", self.khr_shader_subgroup_extended_types),
(
"VK_KHR_shader_subgroup_uniform_control_flow",
self.khr_shader_subgroup_uniform_control_flow,
),
("VK_KHR_shader_terminate_invocation", self.khr_shader_terminate_invocation),
("VK_KHR_shared_presentable_image", self.khr_shared_presentable_image),
("VK_KHR_spirv_1_4", self.khr_spirv_1_4),
("VK_KHR_storage_buffer_storage_class", self.khr_storage_buffer_storage_class),
("VK_KHR_swapchain", self.khr_swapchain),
("VK_KHR_swapchain_mutable_format", self.khr_swapchain_mutable_format),
("VK_KHR_synchronization2", self.khr_synchronization2),
("VK_KHR_timeline_semaphore", self.khr_timeline_semaphore),
("VK_KHR_uniform_buffer_standard_layout", self.khr_uniform_buffer_standard_layout),
("VK_KHR_variable_pointers", self.khr_variable_pointers),
("VK_KHR_video_decode_h264", self.khr_video_decode_h264),
("VK_KHR_video_decode_h265", self.khr_video_decode_h265),
("VK_KHR_video_decode_queue", self.khr_video_decode_queue),
("VK_KHR_video_encode_queue", self.khr_video_encode_queue),
("VK_KHR_video_queue", self.khr_video_queue),
("VK_KHR_vulkan_memory_model", self.khr_vulkan_memory_model),
("VK_KHR_win32_keyed_mutex", self.khr_win32_keyed_mutex),
("VK_KHR_workgroup_memory_explicit_layout", self.khr_workgroup_memory_explicit_layout),
("VK_KHR_zero_initialize_workgroup_memory", self.khr_zero_initialize_workgroup_memory),
("VK_EXT_4444_formats", self.ext_4444_formats),
("VK_EXT_astc_decode_mode", self.ext_astc_decode_mode),
("VK_EXT_attachment_feedback_loop_layout", self.ext_attachment_feedback_loop_layout),
("VK_EXT_blend_operation_advanced", self.ext_blend_operation_advanced),
("VK_EXT_border_color_swizzle", self.ext_border_color_swizzle),
("VK_EXT_buffer_device_address", self.ext_buffer_device_address),
("VK_EXT_calibrated_timestamps", self.ext_calibrated_timestamps),
("VK_EXT_color_write_enable", self.ext_color_write_enable),
("VK_EXT_conditional_rendering", self.ext_conditional_rendering),
("VK_EXT_conservative_rasterization", self.ext_conservative_rasterization),
("VK_EXT_custom_border_color", self.ext_custom_border_color),
("VK_EXT_debug_marker", self.ext_debug_marker),
("VK_EXT_depth_clamp_zero_one", self.ext_depth_clamp_zero_one),
("VK_EXT_depth_clip_control", self.ext_depth_clip_control),
("VK_EXT_depth_clip_enable", self.ext_depth_clip_enable),
("VK_EXT_depth_range_unrestricted", self.ext_depth_range_unrestricted),
("VK_EXT_descriptor_buffer", self.ext_descriptor_buffer),
("VK_EXT_descriptor_indexing", self.ext_descriptor_indexing),
("VK_EXT_device_address_binding_report", self.ext_device_address_binding_report),
("VK_EXT_device_fault", self.ext_device_fault),
("VK_EXT_device_memory_report", self.ext_device_memory_report),
("VK_EXT_discard_rectangles", self.ext_discard_rectangles),
("VK_EXT_display_control", self.ext_display_control),
("VK_EXT_extended_dynamic_state", self.ext_extended_dynamic_state),
("VK_EXT_extended_dynamic_state2", self.ext_extended_dynamic_state2),
("VK_EXT_extended_dynamic_state3", self.ext_extended_dynamic_state3),
("VK_EXT_external_memory_dma_buf", self.ext_external_memory_dma_buf),
("VK_EXT_external_memory_host", self.ext_external_memory_host),
("VK_EXT_filter_cubic", self.ext_filter_cubic),
("VK_EXT_fragment_density_map", self.ext_fragment_density_map),
("VK_EXT_fragment_density_map2", self.ext_fragment_density_map2),
("VK_EXT_fragment_shader_interlock", self.ext_fragment_shader_interlock),
("VK_EXT_full_screen_exclusive", self.ext_full_screen_exclusive),
("VK_EXT_global_priority", self.ext_global_priority),
("VK_EXT_global_priority_query", self.ext_global_priority_query),
("VK_EXT_graphics_pipeline_library", self.ext_graphics_pipeline_library),
("VK_EXT_hdr_metadata", self.ext_hdr_metadata),
("VK_EXT_host_query_reset", self.ext_host_query_reset),
("VK_EXT_image_2d_view_of_3d", self.ext_image_2d_view_of_3d),
("VK_EXT_image_compression_control", self.ext_image_compression_control),
(
"VK_EXT_image_compression_control_swapchain",
self.ext_image_compression_control_swapchain,
),
("VK_EXT_image_drm_format_modifier", self.ext_image_drm_format_modifier),
("VK_EXT_image_robustness", self.ext_image_robustness),
("VK_EXT_image_view_min_lod", self.ext_image_view_min_lod),
("VK_EXT_index_type_uint8", self.ext_index_type_uint8),
("VK_EXT_inline_uniform_block", self.ext_inline_uniform_block),
("VK_EXT_legacy_dithering", self.ext_legacy_dithering),
("VK_EXT_line_rasterization", self.ext_line_rasterization),
("VK_EXT_load_store_op_none", self.ext_load_store_op_none),
("VK_EXT_memory_budget", self.ext_memory_budget),
("VK_EXT_memory_priority", self.ext_memory_priority),
("VK_EXT_mesh_shader", self.ext_mesh_shader),
("VK_EXT_metal_objects", self.ext_metal_objects),
("VK_EXT_multi_draw", self.ext_multi_draw),
(
"VK_EXT_multisampled_render_to_single_sampled",
self.ext_multisampled_render_to_single_sampled,
),
("VK_EXT_mutable_descriptor_type", self.ext_mutable_descriptor_type),
("VK_EXT_non_seamless_cube_map", self.ext_non_seamless_cube_map),
("VK_EXT_opacity_micromap", self.ext_opacity_micromap),
("VK_EXT_pageable_device_local_memory", self.ext_pageable_device_local_memory),
("VK_EXT_pci_bus_info", self.ext_pci_bus_info),
("VK_EXT_physical_device_drm", self.ext_physical_device_drm),
("VK_EXT_pipeline_creation_cache_control", self.ext_pipeline_creation_cache_control),
("VK_EXT_pipeline_creation_feedback", self.ext_pipeline_creation_feedback),
("VK_EXT_pipeline_properties", self.ext_pipeline_properties),
("VK_EXT_pipeline_protected_access", self.ext_pipeline_protected_access),
("VK_EXT_pipeline_robustness", self.ext_pipeline_robustness),
("VK_EXT_post_depth_coverage", self.ext_post_depth_coverage),
("VK_EXT_primitive_topology_list_restart", self.ext_primitive_topology_list_restart),
("VK_EXT_primitives_generated_query", self.ext_primitives_generated_query),
("VK_EXT_private_data", self.ext_private_data),
("VK_EXT_provoking_vertex", self.ext_provoking_vertex),
("VK_EXT_queue_family_foreign", self.ext_queue_family_foreign),
(
"VK_EXT_rasterization_order_attachment_access",
self.ext_rasterization_order_attachment_access,
),
("VK_EXT_rgba10x6_formats", self.ext_rgba10x6_formats),
("VK_EXT_robustness2", self.ext_robustness2),
("VK_EXT_sample_locations", self.ext_sample_locations),
("VK_EXT_sampler_filter_minmax", self.ext_sampler_filter_minmax),
("VK_EXT_scalar_block_layout", self.ext_scalar_block_layout),
("VK_EXT_separate_stencil_usage", self.ext_separate_stencil_usage),
("VK_EXT_shader_atomic_float", self.ext_shader_atomic_float),
("VK_EXT_shader_atomic_float2", self.ext_shader_atomic_float2),
(
"VK_EXT_shader_demote_to_helper_invocation",
self.ext_shader_demote_to_helper_invocation,
),
("VK_EXT_shader_image_atomic_int64", self.ext_shader_image_atomic_int64),
("VK_EXT_shader_module_identifier", self.ext_shader_module_identifier),
("VK_EXT_shader_stencil_export", self.ext_shader_stencil_export),
("VK_EXT_shader_subgroup_ballot", self.ext_shader_subgroup_ballot),
("VK_EXT_shader_subgroup_vote", self.ext_shader_subgroup_vote),
("VK_EXT_shader_viewport_index_layer", self.ext_shader_viewport_index_layer),
("VK_EXT_subgroup_size_control", self.ext_subgroup_size_control),
("VK_EXT_subpass_merge_feedback", self.ext_subpass_merge_feedback),
("VK_EXT_swapchain_maintenance1", self.ext_swapchain_maintenance1),
("VK_EXT_texel_buffer_alignment", self.ext_texel_buffer_alignment),
("VK_EXT_texture_compression_astc_hdr", self.ext_texture_compression_astc_hdr),
("VK_EXT_tooling_info", self.ext_tooling_info),
("VK_EXT_transform_feedback", self.ext_transform_feedback),
("VK_EXT_validation_cache", self.ext_validation_cache),
("VK_EXT_vertex_attribute_divisor", self.ext_vertex_attribute_divisor),
("VK_EXT_vertex_input_dynamic_state", self.ext_vertex_input_dynamic_state),
("VK_EXT_video_encode_h264", self.ext_video_encode_h264),
("VK_EXT_video_encode_h265", self.ext_video_encode_h265),
("VK_EXT_ycbcr_2plane_444_formats", self.ext_ycbcr_2plane_444_formats),
("VK_EXT_ycbcr_image_arrays", self.ext_ycbcr_image_arrays),
("VK_AMD_buffer_marker", self.amd_buffer_marker),
("VK_AMD_device_coherent_memory", self.amd_device_coherent_memory),
("VK_AMD_display_native_hdr", self.amd_display_native_hdr),
("VK_AMD_draw_indirect_count", self.amd_draw_indirect_count),
("VK_AMD_gcn_shader", self.amd_gcn_shader),
("VK_AMD_gpu_shader_half_float", self.amd_gpu_shader_half_float),
("VK_AMD_gpu_shader_int16", self.amd_gpu_shader_int16),
("VK_AMD_memory_overallocation_behavior", self.amd_memory_overallocation_behavior),
("VK_AMD_mixed_attachment_samples", self.amd_mixed_attachment_samples),
("VK_AMD_pipeline_compiler_control", self.amd_pipeline_compiler_control),
("VK_AMD_rasterization_order", self.amd_rasterization_order),
("VK_AMD_shader_ballot", self.amd_shader_ballot),
("VK_AMD_shader_core_properties", self.amd_shader_core_properties),
("VK_AMD_shader_core_properties2", self.amd_shader_core_properties2),
(
"VK_AMD_shader_early_and_late_fragment_tests",
self.amd_shader_early_and_late_fragment_tests,
),
("VK_AMD_shader_explicit_vertex_parameter", self.amd_shader_explicit_vertex_parameter),
("VK_AMD_shader_fragment_mask", self.amd_shader_fragment_mask),
("VK_AMD_shader_image_load_store_lod", self.amd_shader_image_load_store_lod),
("VK_AMD_shader_info", self.amd_shader_info),
("VK_AMD_shader_trinary_minmax", self.amd_shader_trinary_minmax),
("VK_AMD_texture_gather_bias_lod", self.amd_texture_gather_bias_lod),
(
"VK_ANDROID_external_memory_android_hardware_buffer",
self.android_external_memory_android_hardware_buffer,
),
(
"VK_ARM_rasterization_order_attachment_access",
self.arm_rasterization_order_attachment_access,
),
("VK_ARM_shader_core_builtins", self.arm_shader_core_builtins),
("VK_FUCHSIA_buffer_collection", self.fuchsia_buffer_collection),
("VK_FUCHSIA_external_memory", self.fuchsia_external_memory),
("VK_FUCHSIA_external_semaphore", self.fuchsia_external_semaphore),
("VK_GGP_frame_token", self.ggp_frame_token),
("VK_GOOGLE_decorate_string", self.google_decorate_string),
("VK_GOOGLE_display_timing", self.google_display_timing),
("VK_GOOGLE_hlsl_functionality1", self.google_hlsl_functionality1),
("VK_GOOGLE_user_type", self.google_user_type),
("VK_HUAWEI_invocation_mask", self.huawei_invocation_mask),
("VK_HUAWEI_subpass_shading", self.huawei_subpass_shading),
("VK_IMG_filter_cubic", self.img_filter_cubic),
("VK_IMG_format_pvrtc", self.img_format_pvrtc),
("VK_INTEL_performance_query", self.intel_performance_query),
("VK_INTEL_shader_integer_functions2", self.intel_shader_integer_functions2),
("VK_NVX_binary_import", self.nvx_binary_import),
("VK_NVX_image_view_handle", self.nvx_image_view_handle),
("VK_NVX_multiview_per_view_attributes", self.nvx_multiview_per_view_attributes),
("VK_NV_acquire_winrt_display", self.nv_acquire_winrt_display),
("VK_NV_clip_space_w_scaling", self.nv_clip_space_w_scaling),
("VK_NV_compute_shader_derivatives", self.nv_compute_shader_derivatives),
("VK_NV_cooperative_matrix", self.nv_cooperative_matrix),
("VK_NV_copy_memory_indirect", self.nv_copy_memory_indirect),
("VK_NV_corner_sampled_image", self.nv_corner_sampled_image),
("VK_NV_coverage_reduction_mode", self.nv_coverage_reduction_mode),
("VK_NV_dedicated_allocation", self.nv_dedicated_allocation),
(
"VK_NV_dedicated_allocation_image_aliasing",
self.nv_dedicated_allocation_image_aliasing,
),
("VK_NV_device_diagnostic_checkpoints", self.nv_device_diagnostic_checkpoints),
("VK_NV_device_diagnostics_config", self.nv_device_diagnostics_config),
("VK_NV_device_generated_commands", self.nv_device_generated_commands),
("VK_NV_external_memory", self.nv_external_memory),
("VK_NV_external_memory_rdma", self.nv_external_memory_rdma),
("VK_NV_external_memory_win32", self.nv_external_memory_win32),
("VK_NV_fill_rectangle", self.nv_fill_rectangle),
("VK_NV_fragment_coverage_to_color", self.nv_fragment_coverage_to_color),
("VK_NV_fragment_shader_barycentric", self.nv_fragment_shader_barycentric),
("VK_NV_fragment_shading_rate_enums", self.nv_fragment_shading_rate_enums),
("VK_NV_framebuffer_mixed_samples", self.nv_framebuffer_mixed_samples),
("VK_NV_geometry_shader_passthrough", self.nv_geometry_shader_passthrough),
("VK_NV_glsl_shader", self.nv_glsl_shader),
("VK_NV_inherited_viewport_scissor", self.nv_inherited_viewport_scissor),
("VK_NV_linear_color_attachment", self.nv_linear_color_attachment),
("VK_NV_memory_decompression", self.nv_memory_decompression),
("VK_NV_mesh_shader", self.nv_mesh_shader),
("VK_NV_optical_flow", self.nv_optical_flow),
("VK_NV_present_barrier", self.nv_present_barrier),
("VK_NV_ray_tracing", self.nv_ray_tracing),
("VK_NV_ray_tracing_invocation_reorder", self.nv_ray_tracing_invocation_reorder),
("VK_NV_ray_tracing_motion_blur", self.nv_ray_tracing_motion_blur),
("VK_NV_representative_fragment_test", self.nv_representative_fragment_test),
("VK_NV_sample_mask_override_coverage", self.nv_sample_mask_override_coverage),
("VK_NV_scissor_exclusive", self.nv_scissor_exclusive),
("VK_NV_shader_image_footprint", self.nv_shader_image_footprint),
("VK_NV_shader_sm_builtins", self.nv_shader_sm_builtins),
("VK_NV_shader_subgroup_partitioned", self.nv_shader_subgroup_partitioned),
("VK_NV_shading_rate_image", self.nv_shading_rate_image),
("VK_NV_viewport_array2", self.nv_viewport_array2),
("VK_NV_viewport_swizzle", self.nv_viewport_swizzle),
("VK_NV_win32_keyed_mutex", self.nv_win32_keyed_mutex),
("VK_QCOM_fragment_density_map_offset", self.qcom_fragment_density_map_offset),
("VK_QCOM_image_processing", self.qcom_image_processing),
("VK_QCOM_multiview_per_view_viewports", self.qcom_multiview_per_view_viewports),
("VK_QCOM_render_pass_shader_resolve", self.qcom_render_pass_shader_resolve),
("VK_QCOM_render_pass_store_ops", self.qcom_render_pass_store_ops),
("VK_QCOM_render_pass_transform", self.qcom_render_pass_transform),
("VK_QCOM_rotated_copy_commands", self.qcom_rotated_copy_commands),
("VK_QCOM_tile_properties", self.qcom_tile_properties),
("VK_SEC_amigo_profiling", self.sec_amigo_profiling),
("VK_VALVE_descriptor_set_host_mapping", self.valve_descriptor_set_host_mapping),
("VK_VALVE_mutable_descriptor_type", self.valve_mutable_descriptor_type),
]
.into_iter()
}
}
impl DeviceExtensions {
#[doc = r" Checks enabled extensions against the device version, instance extensions and each other."]
pub(super) fn check_requirements(
&self,
supported: &DeviceExtensions,
api_version: crate::Version,
instance_extensions: &crate::instance::InstanceExtensions,
) -> Result<(), crate::device::ExtensionRestrictionError> {
let device_extensions = self;
if self.khr_16bit_storage {
if !supported.khr_16bit_storage {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_16bit_storage",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_16bit_storage",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1
|| device_extensions.khr_storage_buffer_storage_class)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_16bit_storage",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_storage_buffer_storage_class"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_8bit_storage {
if !supported.khr_8bit_storage {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_8bit_storage",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_8bit_storage",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1
|| device_extensions.khr_storage_buffer_storage_class)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_8bit_storage",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_storage_buffer_storage_class"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_acceleration_structure {
if !supported.khr_acceleration_structure {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_acceleration_structure",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_acceleration_structure",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_2 || device_extensions.ext_descriptor_indexing) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_acceleration_structure",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_2),
device_extensions: &["ext_descriptor_indexing"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_2 || device_extensions.khr_buffer_device_address)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_acceleration_structure",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_2),
device_extensions: &["khr_buffer_device_address"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(device_extensions.khr_deferred_host_operations) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_acceleration_structure",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_deferred_host_operations"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_bind_memory2 {
if !supported.khr_bind_memory2 {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_bind_memory2",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.khr_buffer_device_address {
if !supported.khr_buffer_device_address {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_buffer_device_address",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_buffer_device_address",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if self.ext_buffer_device_address {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_buffer_device_address",
restriction: crate::device::ExtensionRestriction::ConflictsDeviceExtension(
"ext_buffer_device_address",
),
});
}
} else {
}
if self.khr_copy_commands2 {
if !supported.khr_copy_commands2 {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_copy_commands2",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.khr_create_renderpass2 {
if !supported.khr_create_renderpass2 {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_create_renderpass2",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_multiview) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_create_renderpass2",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_multiview"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_maintenance2) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_create_renderpass2",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_maintenance2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_dedicated_allocation {
if !supported.khr_dedicated_allocation {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_dedicated_allocation",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| device_extensions.khr_get_memory_requirements2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_dedicated_allocation",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_get_memory_requirements2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_deferred_host_operations {
if !supported.khr_deferred_host_operations {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_deferred_host_operations",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.khr_depth_stencil_resolve {
if !supported.khr_depth_stencil_resolve {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_depth_stencil_resolve",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_2 || device_extensions.khr_create_renderpass2) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_depth_stencil_resolve",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_2),
device_extensions: &["khr_create_renderpass2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_descriptor_update_template {
if !supported.khr_descriptor_update_template {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_descriptor_update_template",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.khr_device_group {
if !supported.khr_device_group {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_device_group",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_device_group_creation)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_device_group",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_device_group_creation"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_display_swapchain {
if !supported.khr_display_swapchain {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_display_swapchain",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_swapchain) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_display_swapchain",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_swapchain"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(instance_extensions.khr_display) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_display_swapchain",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &[],
instance_extensions: &["khr_display"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_draw_indirect_count {
if !supported.khr_draw_indirect_count {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_draw_indirect_count",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.khr_driver_properties {
if !supported.khr_driver_properties {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_driver_properties",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_driver_properties",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_dynamic_rendering {
if !supported.khr_dynamic_rendering {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_dynamic_rendering",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_2 || device_extensions.khr_depth_stencil_resolve)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_dynamic_rendering",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_2),
device_extensions: &["khr_depth_stencil_resolve"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_dynamic_rendering",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_external_fence {
if !supported.khr_external_fence {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_external_fence",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_external_fence_capabilities)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_external_fence",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_external_fence_capabilities"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_external_fence_fd {
if !supported.khr_external_fence_fd {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_external_fence_fd",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_external_fence) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_external_fence_fd",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_external_fence"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_external_fence_win32 {
if !supported.khr_external_fence_win32 {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_external_fence_win32",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_external_fence) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_external_fence_win32",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_external_fence"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_external_memory {
if !supported.khr_external_memory {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_external_memory",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_external_memory_capabilities)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_external_memory",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_external_memory_capabilities"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_external_memory_fd {
if !supported.khr_external_memory_fd {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_external_memory_fd",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_external_memory) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_external_memory_fd",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_external_memory"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_external_memory_win32 {
if !supported.khr_external_memory_win32 {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_external_memory_win32",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_external_memory) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_external_memory_win32",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_external_memory"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_external_semaphore {
if !supported.khr_external_semaphore {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_external_semaphore",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_external_semaphore_capabilities)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_external_semaphore",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_external_semaphore_capabilities"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_external_semaphore_fd {
if !supported.khr_external_semaphore_fd {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_external_semaphore_fd",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_external_semaphore) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_external_semaphore_fd",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_external_semaphore"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_external_semaphore_win32 {
if !supported.khr_external_semaphore_win32 {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_external_semaphore_win32",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_external_semaphore) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_external_semaphore_win32",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_external_semaphore"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_format_feature_flags2 {
if !supported.khr_format_feature_flags2 {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_format_feature_flags2",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_format_feature_flags2",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_fragment_shader_barycentric {
if !supported.khr_fragment_shader_barycentric {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_fragment_shader_barycentric",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_fragment_shader_barycentric",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_fragment_shading_rate {
if !supported.khr_fragment_shading_rate {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_fragment_shading_rate",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_2 || device_extensions.khr_create_renderpass2) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_fragment_shading_rate",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_2),
device_extensions: &["khr_create_renderpass2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_fragment_shading_rate",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_get_memory_requirements2 {
if !supported.khr_get_memory_requirements2 {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_get_memory_requirements2",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.khr_global_priority {
if !supported.khr_global_priority {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_global_priority",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.khr_image_format_list {
if !supported.khr_image_format_list {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_image_format_list",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.khr_imageless_framebuffer {
if !supported.khr_imageless_framebuffer {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_imageless_framebuffer",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_maintenance2) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_imageless_framebuffer",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_maintenance2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_2 || device_extensions.khr_image_format_list) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_imageless_framebuffer",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_2),
device_extensions: &["khr_image_format_list"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_incremental_present {
if !supported.khr_incremental_present {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_incremental_present",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_swapchain) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_incremental_present",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_swapchain"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_maintenance1 {
if !supported.khr_maintenance1 {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_maintenance1",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.khr_maintenance2 {
if !supported.khr_maintenance2 {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_maintenance2",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.khr_maintenance3 {
if !supported.khr_maintenance3 {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_maintenance3",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_maintenance3",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_maintenance4 {
if !supported.khr_maintenance4 {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_maintenance4",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_maintenance4",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_multiview {
if !supported.khr_multiview {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_multiview",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_multiview",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_performance_query {
if !supported.khr_performance_query {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_performance_query",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_performance_query",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_pipeline_executable_properties {
if !supported.khr_pipeline_executable_properties {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_pipeline_executable_properties",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_pipeline_executable_properties",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_pipeline_library {
if !supported.khr_pipeline_library {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_pipeline_library",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.khr_portability_subset {
if !supported.khr_portability_subset {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_portability_subset",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_portability_subset",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
if supported.khr_portability_subset {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_portability_subset",
restriction: crate::device::ExtensionRestriction::RequiredIfSupported,
});
}
}
if self.khr_present_id {
if !supported.khr_present_id {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_present_id",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_swapchain) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_present_id",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_swapchain"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_present_wait {
if !supported.khr_present_wait {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_present_wait",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_swapchain) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_present_wait",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_swapchain"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(device_extensions.khr_present_id) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_present_wait",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_present_id"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_push_descriptor {
if !supported.khr_push_descriptor {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_push_descriptor",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_push_descriptor",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_ray_query {
if !supported.khr_ray_query {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_ray_query",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_ray_query",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_2 || device_extensions.khr_spirv_1_4) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_ray_query",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_2),
device_extensions: &["khr_spirv_1_4"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(device_extensions.khr_acceleration_structure) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_ray_query",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_acceleration_structure"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_ray_tracing_maintenance1 {
if !supported.khr_ray_tracing_maintenance1 {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_ray_tracing_maintenance1",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_ray_tracing_maintenance1",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(device_extensions.khr_acceleration_structure) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_ray_tracing_maintenance1",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_acceleration_structure"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_ray_tracing_pipeline {
if !supported.khr_ray_tracing_pipeline {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_ray_tracing_pipeline",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_ray_tracing_pipeline",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_2 || device_extensions.khr_spirv_1_4) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_ray_tracing_pipeline",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_2),
device_extensions: &["khr_spirv_1_4"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(device_extensions.khr_acceleration_structure) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_ray_tracing_pipeline",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_acceleration_structure"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_relaxed_block_layout {
if !supported.khr_relaxed_block_layout {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_relaxed_block_layout",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.khr_sampler_mirror_clamp_to_edge {
if !supported.khr_sampler_mirror_clamp_to_edge {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_sampler_mirror_clamp_to_edge",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.khr_sampler_ycbcr_conversion {
if !supported.khr_sampler_ycbcr_conversion {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_sampler_ycbcr_conversion",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_maintenance1) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_sampler_ycbcr_conversion",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_maintenance1"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_bind_memory2) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_sampler_ycbcr_conversion",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_bind_memory2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1
|| device_extensions.khr_get_memory_requirements2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_sampler_ycbcr_conversion",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_get_memory_requirements2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_sampler_ycbcr_conversion",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_separate_depth_stencil_layouts {
if !supported.khr_separate_depth_stencil_layouts {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_separate_depth_stencil_layouts",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_separate_depth_stencil_layouts",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_2 || device_extensions.khr_create_renderpass2) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_separate_depth_stencil_layouts",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_2),
device_extensions: &["khr_create_renderpass2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_shader_atomic_int64 {
if !supported.khr_shader_atomic_int64 {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_shader_atomic_int64",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_shader_atomic_int64",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_shader_clock {
if !supported.khr_shader_clock {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_shader_clock",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_shader_clock",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_shader_draw_parameters {
if !supported.khr_shader_draw_parameters {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_shader_draw_parameters",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.khr_shader_float16_int8 {
if !supported.khr_shader_float16_int8 {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_shader_float16_int8",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_shader_float16_int8",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_shader_float_controls {
if !supported.khr_shader_float_controls {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_shader_float_controls",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_shader_float_controls",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_shader_integer_dot_product {
if !supported.khr_shader_integer_dot_product {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_shader_integer_dot_product",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_shader_integer_dot_product",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_shader_non_semantic_info {
if !supported.khr_shader_non_semantic_info {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_shader_non_semantic_info",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.khr_shader_subgroup_extended_types {
if !supported.khr_shader_subgroup_extended_types {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_shader_subgroup_extended_types",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_shader_subgroup_extended_types",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_shader_subgroup_uniform_control_flow {
if !supported.khr_shader_subgroup_uniform_control_flow {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_shader_subgroup_uniform_control_flow",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_shader_subgroup_uniform_control_flow",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_shader_terminate_invocation {
if !supported.khr_shader_terminate_invocation {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_shader_terminate_invocation",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_shader_terminate_invocation",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_shared_presentable_image {
if !supported.khr_shared_presentable_image {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_shared_presentable_image",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_swapchain) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_shared_presentable_image",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_swapchain"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_shared_presentable_image",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if !(instance_extensions.khr_get_surface_capabilities2) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_shared_presentable_image",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &[],
instance_extensions: &["khr_get_surface_capabilities2"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_spirv_1_4 {
if !supported.khr_spirv_1_4 {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_spirv_1_4",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_spirv_1_4",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_2 || device_extensions.khr_shader_float_controls)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_spirv_1_4",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_2),
device_extensions: &["khr_shader_float_controls"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_storage_buffer_storage_class {
if !supported.khr_storage_buffer_storage_class {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_storage_buffer_storage_class",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.khr_swapchain {
if !supported.khr_swapchain {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_swapchain",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(instance_extensions.khr_surface) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_swapchain",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &[],
instance_extensions: &["khr_surface"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_swapchain_mutable_format {
if !supported.khr_swapchain_mutable_format {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_swapchain_mutable_format",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_swapchain) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_swapchain_mutable_format",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_swapchain"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_maintenance2) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_swapchain_mutable_format",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_maintenance2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_2 || device_extensions.khr_image_format_list) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_swapchain_mutable_format",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_2),
device_extensions: &["khr_image_format_list"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_synchronization2 {
if !supported.khr_synchronization2 {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_synchronization2",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_synchronization2",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_timeline_semaphore {
if !supported.khr_timeline_semaphore {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_timeline_semaphore",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_timeline_semaphore",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_uniform_buffer_standard_layout {
if !supported.khr_uniform_buffer_standard_layout {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_uniform_buffer_standard_layout",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_uniform_buffer_standard_layout",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_variable_pointers {
if !supported.khr_variable_pointers {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_variable_pointers",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_variable_pointers",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1
|| device_extensions.khr_storage_buffer_storage_class)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_variable_pointers",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_storage_buffer_storage_class"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_video_decode_h264 {
if !supported.khr_video_decode_h264 {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_video_decode_h264",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_video_decode_queue) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_video_decode_h264",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_video_decode_queue"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_video_decode_h265 {
if !supported.khr_video_decode_h265 {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_video_decode_h265",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_video_decode_queue) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_video_decode_h265",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_video_decode_queue"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_video_decode_queue {
if !supported.khr_video_decode_queue {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_video_decode_queue",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_video_queue) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_video_decode_queue",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_video_queue"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_3 || device_extensions.khr_synchronization2) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_video_decode_queue",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_3),
device_extensions: &["khr_synchronization2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_video_encode_queue {
if !supported.khr_video_encode_queue {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_video_encode_queue",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_video_queue) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_video_encode_queue",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_video_queue"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_3 || device_extensions.khr_synchronization2) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_video_encode_queue",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_3),
device_extensions: &["khr_synchronization2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_video_queue {
if !supported.khr_video_queue {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_video_queue",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_video_queue",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_video_queue",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_3 || device_extensions.khr_synchronization2) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_video_queue",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_3),
device_extensions: &["khr_synchronization2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_vulkan_memory_model {
if !supported.khr_vulkan_memory_model {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_vulkan_memory_model",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.khr_win32_keyed_mutex {
if !supported.khr_win32_keyed_mutex {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_win32_keyed_mutex",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_external_memory_win32) {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_win32_keyed_mutex",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_external_memory_win32"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.khr_workgroup_memory_explicit_layout {
if !supported.khr_workgroup_memory_explicit_layout {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_workgroup_memory_explicit_layout",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_workgroup_memory_explicit_layout",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.khr_zero_initialize_workgroup_memory {
if !supported.khr_zero_initialize_workgroup_memory {
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_zero_initialize_workgroup_memory",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "khr_zero_initialize_workgroup_memory",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_4444_formats {
if !supported.ext_4444_formats {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_4444_formats",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_4444_formats",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_astc_decode_mode {
if !supported.ext_astc_decode_mode {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_astc_decode_mode",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_astc_decode_mode",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_attachment_feedback_loop_layout {
if !supported.ext_attachment_feedback_loop_layout {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_attachment_feedback_loop_layout",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_attachment_feedback_loop_layout",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_blend_operation_advanced {
if !supported.ext_blend_operation_advanced {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_blend_operation_advanced",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_blend_operation_advanced",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_border_color_swizzle {
if !supported.ext_border_color_swizzle {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_border_color_swizzle",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.ext_custom_border_color) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_border_color_swizzle",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["ext_custom_border_color"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_buffer_device_address {
if !supported.ext_buffer_device_address {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_buffer_device_address",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_buffer_device_address",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if self.khr_buffer_device_address {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_buffer_device_address",
restriction: crate::device::ExtensionRestriction::ConflictsDeviceExtension(
"khr_buffer_device_address",
),
});
}
} else {
}
if self.ext_calibrated_timestamps {
if !supported.ext_calibrated_timestamps {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_calibrated_timestamps",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_calibrated_timestamps",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_color_write_enable {
if !supported.ext_color_write_enable {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_color_write_enable",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_color_write_enable",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_conditional_rendering {
if !supported.ext_conditional_rendering {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_conditional_rendering",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_conservative_rasterization {
if !supported.ext_conservative_rasterization {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_conservative_rasterization",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_conservative_rasterization",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_custom_border_color {
if !supported.ext_custom_border_color {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_custom_border_color",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_debug_marker {
if !supported.ext_debug_marker {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_debug_marker",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(instance_extensions.ext_debug_report) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_debug_marker",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &[],
instance_extensions: &["ext_debug_report"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_depth_clamp_zero_one {
if !supported.ext_depth_clamp_zero_one {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_depth_clamp_zero_one",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_depth_clip_control {
if !supported.ext_depth_clip_control {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_depth_clip_control",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_depth_clip_control",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_depth_clip_enable {
if !supported.ext_depth_clip_enable {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_depth_clip_enable",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_depth_range_unrestricted {
if !supported.ext_depth_range_unrestricted {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_depth_range_unrestricted",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_descriptor_buffer {
if !supported.ext_descriptor_buffer {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_descriptor_buffer",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_descriptor_buffer",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_2 || device_extensions.khr_buffer_device_address)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_descriptor_buffer",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_2),
device_extensions: &["khr_buffer_device_address"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_3 || device_extensions.khr_synchronization2) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_descriptor_buffer",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_3),
device_extensions: &["khr_synchronization2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_2 || device_extensions.ext_descriptor_indexing) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_descriptor_buffer",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_2),
device_extensions: &["ext_descriptor_indexing"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_descriptor_indexing {
if !supported.ext_descriptor_indexing {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_descriptor_indexing",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_descriptor_indexing",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_maintenance3) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_descriptor_indexing",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_maintenance3"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_device_address_binding_report {
if !supported.ext_device_address_binding_report {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_device_address_binding_report",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_device_address_binding_report",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if !(instance_extensions.ext_debug_utils) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_device_address_binding_report",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &[],
instance_extensions: &["ext_debug_utils"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_device_fault {
if !supported.ext_device_fault {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_device_fault",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_device_fault",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_device_memory_report {
if !supported.ext_device_memory_report {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_device_memory_report",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_device_memory_report",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_discard_rectangles {
if !supported.ext_discard_rectangles {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_discard_rectangles",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_discard_rectangles",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_display_control {
if !supported.ext_display_control {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_display_control",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(instance_extensions.ext_display_surface_counter) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_display_control",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &[],
instance_extensions: &["ext_display_surface_counter"],
..Default::default()
},
),
});
}
if !(device_extensions.khr_swapchain) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_display_control",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_swapchain"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_extended_dynamic_state {
if !supported.ext_extended_dynamic_state {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_extended_dynamic_state",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_extended_dynamic_state",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_extended_dynamic_state2 {
if !supported.ext_extended_dynamic_state2 {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_extended_dynamic_state2",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_extended_dynamic_state2",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_extended_dynamic_state3 {
if !supported.ext_extended_dynamic_state3 {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_extended_dynamic_state3",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_extended_dynamic_state3",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_external_memory_dma_buf {
if !supported.ext_external_memory_dma_buf {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_external_memory_dma_buf",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_external_memory_fd) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_external_memory_dma_buf",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_external_memory_fd"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_external_memory_host {
if !supported.ext_external_memory_host {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_external_memory_host",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_external_memory) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_external_memory_host",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_external_memory"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_filter_cubic {
if !supported.ext_filter_cubic {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_filter_cubic",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_fragment_density_map {
if !supported.ext_fragment_density_map {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_fragment_density_map",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_fragment_density_map",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_fragment_density_map2 {
if !supported.ext_fragment_density_map2 {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_fragment_density_map2",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.ext_fragment_density_map) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_fragment_density_map2",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["ext_fragment_density_map"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_fragment_shader_interlock {
if !supported.ext_fragment_shader_interlock {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_fragment_shader_interlock",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_fragment_shader_interlock",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_full_screen_exclusive {
if !supported.ext_full_screen_exclusive {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_full_screen_exclusive",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_full_screen_exclusive",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if !(instance_extensions.khr_surface) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_full_screen_exclusive",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &[],
instance_extensions: &["khr_surface"],
..Default::default()
},
),
});
}
if !(instance_extensions.khr_get_surface_capabilities2) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_full_screen_exclusive",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &[],
instance_extensions: &["khr_get_surface_capabilities2"],
..Default::default()
},
),
});
}
if !(device_extensions.khr_swapchain) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_full_screen_exclusive",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_swapchain"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_global_priority {
if !supported.ext_global_priority {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_global_priority",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_global_priority_query {
if !supported.ext_global_priority_query {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_global_priority_query",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_global_priority || device_extensions.ext_global_priority) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_global_priority_query",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_global_priority", "ext_global_priority"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_global_priority_query",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_graphics_pipeline_library {
if !supported.ext_graphics_pipeline_library {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_graphics_pipeline_library",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_graphics_pipeline_library",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if !(device_extensions.khr_pipeline_library) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_graphics_pipeline_library",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_pipeline_library"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_hdr_metadata {
if !supported.ext_hdr_metadata {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_hdr_metadata",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_swapchain) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_hdr_metadata",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_swapchain"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_host_query_reset {
if !supported.ext_host_query_reset {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_host_query_reset",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_host_query_reset",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_image_2d_view_of_3d {
if !supported.ext_image_2d_view_of_3d {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_image_2d_view_of_3d",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_maintenance1) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_image_2d_view_of_3d",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_maintenance1"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_image_2d_view_of_3d",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_image_compression_control {
if !supported.ext_image_compression_control {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_image_compression_control",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_image_compression_control_swapchain {
if !supported.ext_image_compression_control_swapchain {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_image_compression_control_swapchain",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.ext_image_compression_control) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_image_compression_control_swapchain",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["ext_image_compression_control"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_image_drm_format_modifier {
if !supported.ext_image_drm_format_modifier {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_image_drm_format_modifier",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_bind_memory2) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_image_drm_format_modifier",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_bind_memory2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_image_drm_format_modifier",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_2 || device_extensions.khr_image_format_list) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_image_drm_format_modifier",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_2),
device_extensions: &["khr_image_format_list"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1
|| device_extensions.khr_sampler_ycbcr_conversion)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_image_drm_format_modifier",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_sampler_ycbcr_conversion"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_image_robustness {
if !supported.ext_image_robustness {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_image_robustness",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_image_robustness",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_image_view_min_lod {
if !supported.ext_image_view_min_lod {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_image_view_min_lod",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_image_view_min_lod",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_index_type_uint8 {
if !supported.ext_index_type_uint8 {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_index_type_uint8",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_inline_uniform_block {
if !supported.ext_inline_uniform_block {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_inline_uniform_block",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_inline_uniform_block",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_maintenance1) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_inline_uniform_block",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_maintenance1"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_legacy_dithering {
if !supported.ext_legacy_dithering {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_legacy_dithering",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_legacy_dithering",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_line_rasterization {
if !supported.ext_line_rasterization {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_line_rasterization",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_line_rasterization",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_load_store_op_none {
if !supported.ext_load_store_op_none {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_load_store_op_none",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_memory_budget {
if !supported.ext_memory_budget {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_memory_budget",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_memory_budget",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_memory_priority {
if !supported.ext_memory_priority {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_memory_priority",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_memory_priority",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_mesh_shader {
if !supported.ext_mesh_shader {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_mesh_shader",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_mesh_shader",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_mesh_shader",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_2 || device_extensions.khr_spirv_1_4) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_mesh_shader",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_2),
device_extensions: &["khr_spirv_1_4"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_metal_objects {
if !supported.ext_metal_objects {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_metal_objects",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_multi_draw {
if !supported.ext_multi_draw {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_multi_draw",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_multisampled_render_to_single_sampled {
if !supported.ext_multisampled_render_to_single_sampled {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_multisampled_render_to_single_sampled",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_2 || device_extensions.khr_create_renderpass2) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_multisampled_render_to_single_sampled",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_2),
device_extensions: &["khr_create_renderpass2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_2 || device_extensions.khr_depth_stencil_resolve)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_multisampled_render_to_single_sampled",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_2),
device_extensions: &["khr_depth_stencil_resolve"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_mutable_descriptor_type {
if !supported.ext_mutable_descriptor_type {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_mutable_descriptor_type",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_maintenance3) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_mutable_descriptor_type",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_maintenance3"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_non_seamless_cube_map {
if !supported.ext_non_seamless_cube_map {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_non_seamless_cube_map",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_opacity_micromap {
if !supported.ext_opacity_micromap {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_opacity_micromap",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_acceleration_structure) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_opacity_micromap",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_acceleration_structure"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_3 || device_extensions.khr_synchronization2) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_opacity_micromap",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_3),
device_extensions: &["khr_synchronization2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_pageable_device_local_memory {
if !supported.ext_pageable_device_local_memory {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_pageable_device_local_memory",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.ext_memory_priority) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_pageable_device_local_memory",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["ext_memory_priority"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_pci_bus_info {
if !supported.ext_pci_bus_info {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_pci_bus_info",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_pci_bus_info",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_physical_device_drm {
if !supported.ext_physical_device_drm {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_physical_device_drm",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_physical_device_drm",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_pipeline_creation_cache_control {
if !supported.ext_pipeline_creation_cache_control {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_pipeline_creation_cache_control",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_pipeline_creation_feedback {
if !supported.ext_pipeline_creation_feedback {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_pipeline_creation_feedback",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_pipeline_properties {
if !supported.ext_pipeline_properties {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_pipeline_properties",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_pipeline_properties",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_pipeline_protected_access {
if !supported.ext_pipeline_protected_access {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_pipeline_protected_access",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_pipeline_protected_access",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_pipeline_robustness {
if !supported.ext_pipeline_robustness {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_pipeline_robustness",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_pipeline_robustness",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_post_depth_coverage {
if !supported.ext_post_depth_coverage {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_post_depth_coverage",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_primitive_topology_list_restart {
if !supported.ext_primitive_topology_list_restart {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_primitive_topology_list_restart",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_primitives_generated_query {
if !supported.ext_primitives_generated_query {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_primitives_generated_query",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.ext_transform_feedback) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_primitives_generated_query",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["ext_transform_feedback"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_private_data {
if !supported.ext_private_data {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_private_data",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_provoking_vertex {
if !supported.ext_provoking_vertex {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_provoking_vertex",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_provoking_vertex",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_queue_family_foreign {
if !supported.ext_queue_family_foreign {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_queue_family_foreign",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_external_memory) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_queue_family_foreign",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_external_memory"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_rasterization_order_attachment_access {
if !supported.ext_rasterization_order_attachment_access {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_rasterization_order_attachment_access",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_rasterization_order_attachment_access",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_rgba10x6_formats {
if !supported.ext_rgba10x6_formats {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_rgba10x6_formats",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| device_extensions.khr_sampler_ycbcr_conversion)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_rgba10x6_formats",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_sampler_ycbcr_conversion"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_robustness2 {
if !supported.ext_robustness2 {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_robustness2",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_sample_locations {
if !supported.ext_sample_locations {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_sample_locations",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_sample_locations",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_sampler_filter_minmax {
if !supported.ext_sampler_filter_minmax {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_sampler_filter_minmax",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_sampler_filter_minmax",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_scalar_block_layout {
if !supported.ext_scalar_block_layout {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_scalar_block_layout",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_scalar_block_layout",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_separate_stencil_usage {
if !supported.ext_separate_stencil_usage {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_separate_stencil_usage",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_shader_atomic_float {
if !supported.ext_shader_atomic_float {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_shader_atomic_float",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_shader_atomic_float",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_shader_atomic_float2 {
if !supported.ext_shader_atomic_float2 {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_shader_atomic_float2",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.ext_shader_atomic_float) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_shader_atomic_float2",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["ext_shader_atomic_float"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_shader_demote_to_helper_invocation {
if !supported.ext_shader_demote_to_helper_invocation {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_shader_demote_to_helper_invocation",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_shader_demote_to_helper_invocation",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_shader_image_atomic_int64 {
if !supported.ext_shader_image_atomic_int64 {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_shader_image_atomic_int64",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_shader_image_atomic_int64",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_shader_module_identifier {
if !supported.ext_shader_module_identifier {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_shader_module_identifier",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_shader_module_identifier",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_3
|| device_extensions.ext_pipeline_creation_cache_control)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_shader_module_identifier",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_3),
device_extensions: &["ext_pipeline_creation_cache_control"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_shader_stencil_export {
if !supported.ext_shader_stencil_export {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_shader_stencil_export",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_shader_subgroup_ballot {
if !supported.ext_shader_subgroup_ballot {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_shader_subgroup_ballot",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_shader_subgroup_vote {
if !supported.ext_shader_subgroup_vote {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_shader_subgroup_vote",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_shader_viewport_index_layer {
if !supported.ext_shader_viewport_index_layer {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_shader_viewport_index_layer",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_subgroup_size_control {
if !supported.ext_subgroup_size_control {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_subgroup_size_control",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_subgroup_size_control",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_subpass_merge_feedback {
if !supported.ext_subpass_merge_feedback {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_subpass_merge_feedback",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_swapchain_maintenance1 {
if !supported.ext_swapchain_maintenance1 {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_swapchain_maintenance1",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_swapchain) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_swapchain_maintenance1",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_swapchain"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(instance_extensions.ext_surface_maintenance1) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_swapchain_maintenance1",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &[],
instance_extensions: &["ext_surface_maintenance1"],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_swapchain_maintenance1",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_texel_buffer_alignment {
if !supported.ext_texel_buffer_alignment {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_texel_buffer_alignment",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_texel_buffer_alignment",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_texture_compression_astc_hdr {
if !supported.ext_texture_compression_astc_hdr {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_texture_compression_astc_hdr",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_texture_compression_astc_hdr",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_tooling_info {
if !supported.ext_tooling_info {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_tooling_info",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_transform_feedback {
if !supported.ext_transform_feedback {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_transform_feedback",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_transform_feedback",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_validation_cache {
if !supported.ext_validation_cache {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_validation_cache",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.ext_vertex_attribute_divisor {
if !supported.ext_vertex_attribute_divisor {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_vertex_attribute_divisor",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_vertex_attribute_divisor",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_vertex_input_dynamic_state {
if !supported.ext_vertex_input_dynamic_state {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_vertex_input_dynamic_state",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_vertex_input_dynamic_state",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.ext_video_encode_h264 {
if !supported.ext_video_encode_h264 {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_video_encode_h264",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_video_encode_queue) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_video_encode_h264",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_video_encode_queue"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_video_encode_h265 {
if !supported.ext_video_encode_h265 {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_video_encode_h265",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_video_encode_queue) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_video_encode_h265",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_video_encode_queue"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_ycbcr_2plane_444_formats {
if !supported.ext_ycbcr_2plane_444_formats {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_ycbcr_2plane_444_formats",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| device_extensions.khr_sampler_ycbcr_conversion)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_ycbcr_2plane_444_formats",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_sampler_ycbcr_conversion"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ext_ycbcr_image_arrays {
if !supported.ext_ycbcr_image_arrays {
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_ycbcr_image_arrays",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| device_extensions.khr_sampler_ycbcr_conversion)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "ext_ycbcr_image_arrays",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_sampler_ycbcr_conversion"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.amd_buffer_marker {
if !supported.amd_buffer_marker {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_buffer_marker",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.amd_device_coherent_memory {
if !supported.amd_device_coherent_memory {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_device_coherent_memory",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.amd_display_native_hdr {
if !supported.amd_display_native_hdr {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_display_native_hdr",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_display_native_hdr",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if !(instance_extensions.khr_get_surface_capabilities2) {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_display_native_hdr",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &[],
instance_extensions: &["khr_get_surface_capabilities2"],
..Default::default()
},
),
});
}
if !(device_extensions.khr_swapchain) {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_display_native_hdr",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_swapchain"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.amd_draw_indirect_count {
if !supported.amd_draw_indirect_count {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_draw_indirect_count",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.amd_gcn_shader {
if !supported.amd_gcn_shader {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_gcn_shader",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.amd_gpu_shader_half_float {
if !supported.amd_gpu_shader_half_float {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_gpu_shader_half_float",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.amd_gpu_shader_int16 {
if !supported.amd_gpu_shader_int16 {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_gpu_shader_int16",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.amd_memory_overallocation_behavior {
if !supported.amd_memory_overallocation_behavior {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_memory_overallocation_behavior",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.amd_mixed_attachment_samples {
if !supported.amd_mixed_attachment_samples {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_mixed_attachment_samples",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.amd_pipeline_compiler_control {
if !supported.amd_pipeline_compiler_control {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_pipeline_compiler_control",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.amd_rasterization_order {
if !supported.amd_rasterization_order {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_rasterization_order",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.amd_shader_ballot {
if !supported.amd_shader_ballot {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_shader_ballot",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.amd_shader_core_properties {
if !supported.amd_shader_core_properties {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_shader_core_properties",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_shader_core_properties",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.amd_shader_core_properties2 {
if !supported.amd_shader_core_properties2 {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_shader_core_properties2",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.amd_shader_core_properties) {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_shader_core_properties2",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["amd_shader_core_properties"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.amd_shader_early_and_late_fragment_tests {
if !supported.amd_shader_early_and_late_fragment_tests {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_shader_early_and_late_fragment_tests",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.amd_shader_explicit_vertex_parameter {
if !supported.amd_shader_explicit_vertex_parameter {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_shader_explicit_vertex_parameter",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.amd_shader_fragment_mask {
if !supported.amd_shader_fragment_mask {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_shader_fragment_mask",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.amd_shader_image_load_store_lod {
if !supported.amd_shader_image_load_store_lod {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_shader_image_load_store_lod",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.amd_shader_info {
if !supported.amd_shader_info {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_shader_info",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.amd_shader_trinary_minmax {
if !supported.amd_shader_trinary_minmax {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_shader_trinary_minmax",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.amd_texture_gather_bias_lod {
if !supported.amd_texture_gather_bias_lod {
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_texture_gather_bias_lod",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "amd_texture_gather_bias_lod",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.android_external_memory_android_hardware_buffer {
if !supported.android_external_memory_android_hardware_buffer {
return Err(crate::device::ExtensionRestrictionError {
extension: "android_external_memory_android_hardware_buffer",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| device_extensions.khr_sampler_ycbcr_conversion)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "android_external_memory_android_hardware_buffer",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_sampler_ycbcr_conversion"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_external_memory) {
return Err(crate::device::ExtensionRestrictionError {
extension: "android_external_memory_android_hardware_buffer",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_external_memory"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(device_extensions.ext_queue_family_foreign) {
return Err(crate::device::ExtensionRestrictionError {
extension: "android_external_memory_android_hardware_buffer",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["ext_queue_family_foreign"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_dedicated_allocation)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "android_external_memory_android_hardware_buffer",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_dedicated_allocation"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.arm_rasterization_order_attachment_access {
if !supported.arm_rasterization_order_attachment_access {
return Err(crate::device::ExtensionRestrictionError {
extension: "arm_rasterization_order_attachment_access",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "arm_rasterization_order_attachment_access",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.arm_shader_core_builtins {
if !supported.arm_shader_core_builtins {
return Err(crate::device::ExtensionRestrictionError {
extension: "arm_shader_core_builtins",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.fuchsia_buffer_collection {
if !supported.fuchsia_buffer_collection {
return Err(crate::device::ExtensionRestrictionError {
extension: "fuchsia_buffer_collection",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.fuchsia_external_memory) {
return Err(crate::device::ExtensionRestrictionError {
extension: "fuchsia_buffer_collection",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["fuchsia_external_memory"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1
|| device_extensions.khr_sampler_ycbcr_conversion)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "fuchsia_buffer_collection",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_sampler_ycbcr_conversion"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.fuchsia_external_memory {
if !supported.fuchsia_external_memory {
return Err(crate::device::ExtensionRestrictionError {
extension: "fuchsia_external_memory",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_external_memory_capabilities)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "fuchsia_external_memory",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_external_memory_capabilities"],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_external_memory) {
return Err(crate::device::ExtensionRestrictionError {
extension: "fuchsia_external_memory",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_external_memory"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.fuchsia_external_semaphore {
if !supported.fuchsia_external_semaphore {
return Err(crate::device::ExtensionRestrictionError {
extension: "fuchsia_external_semaphore",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_external_semaphore_capabilities)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "fuchsia_external_semaphore",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_external_semaphore_capabilities"],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_external_semaphore) {
return Err(crate::device::ExtensionRestrictionError {
extension: "fuchsia_external_semaphore",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_external_semaphore"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.ggp_frame_token {
if !supported.ggp_frame_token {
return Err(crate::device::ExtensionRestrictionError {
extension: "ggp_frame_token",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_swapchain) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ggp_frame_token",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_swapchain"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(instance_extensions.ggp_stream_descriptor_surface) {
return Err(crate::device::ExtensionRestrictionError {
extension: "ggp_frame_token",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &[],
instance_extensions: &["ggp_stream_descriptor_surface"],
..Default::default()
},
),
});
}
} else {
}
if self.google_decorate_string {
if !supported.google_decorate_string {
return Err(crate::device::ExtensionRestrictionError {
extension: "google_decorate_string",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.google_display_timing {
if !supported.google_display_timing {
return Err(crate::device::ExtensionRestrictionError {
extension: "google_display_timing",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_swapchain) {
return Err(crate::device::ExtensionRestrictionError {
extension: "google_display_timing",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_swapchain"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.google_hlsl_functionality1 {
if !supported.google_hlsl_functionality1 {
return Err(crate::device::ExtensionRestrictionError {
extension: "google_hlsl_functionality1",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.google_user_type {
if !supported.google_user_type {
return Err(crate::device::ExtensionRestrictionError {
extension: "google_user_type",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.huawei_invocation_mask {
if !supported.huawei_invocation_mask {
return Err(crate::device::ExtensionRestrictionError {
extension: "huawei_invocation_mask",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_ray_tracing_pipeline) {
return Err(crate::device::ExtensionRestrictionError {
extension: "huawei_invocation_mask",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_ray_tracing_pipeline"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_3 || device_extensions.khr_synchronization2) {
return Err(crate::device::ExtensionRestrictionError {
extension: "huawei_invocation_mask",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_3),
device_extensions: &["khr_synchronization2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.huawei_subpass_shading {
if !supported.huawei_subpass_shading {
return Err(crate::device::ExtensionRestrictionError {
extension: "huawei_subpass_shading",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_2 || device_extensions.khr_create_renderpass2) {
return Err(crate::device::ExtensionRestrictionError {
extension: "huawei_subpass_shading",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_2),
device_extensions: &["khr_create_renderpass2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_3 || device_extensions.khr_synchronization2) {
return Err(crate::device::ExtensionRestrictionError {
extension: "huawei_subpass_shading",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_3),
device_extensions: &["khr_synchronization2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.img_filter_cubic {
if !supported.img_filter_cubic {
return Err(crate::device::ExtensionRestrictionError {
extension: "img_filter_cubic",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.img_format_pvrtc {
if !supported.img_format_pvrtc {
return Err(crate::device::ExtensionRestrictionError {
extension: "img_format_pvrtc",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.intel_performance_query {
if !supported.intel_performance_query {
return Err(crate::device::ExtensionRestrictionError {
extension: "intel_performance_query",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.intel_shader_integer_functions2 {
if !supported.intel_shader_integer_functions2 {
return Err(crate::device::ExtensionRestrictionError {
extension: "intel_shader_integer_functions2",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "intel_shader_integer_functions2",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.nvx_binary_import {
if !supported.nvx_binary_import {
return Err(crate::device::ExtensionRestrictionError {
extension: "nvx_binary_import",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.nvx_image_view_handle {
if !supported.nvx_image_view_handle {
return Err(crate::device::ExtensionRestrictionError {
extension: "nvx_image_view_handle",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.nvx_multiview_per_view_attributes {
if !supported.nvx_multiview_per_view_attributes {
return Err(crate::device::ExtensionRestrictionError {
extension: "nvx_multiview_per_view_attributes",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_multiview) {
return Err(crate::device::ExtensionRestrictionError {
extension: "nvx_multiview_per_view_attributes",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_multiview"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.nv_acquire_winrt_display {
if !supported.nv_acquire_winrt_display {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_acquire_winrt_display",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(instance_extensions.ext_direct_mode_display) {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_acquire_winrt_display",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &[],
instance_extensions: &["ext_direct_mode_display"],
..Default::default()
},
),
});
}
} else {
}
if self.nv_clip_space_w_scaling {
if !supported.nv_clip_space_w_scaling {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_clip_space_w_scaling",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.nv_compute_shader_derivatives {
if !supported.nv_compute_shader_derivatives {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_compute_shader_derivatives",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_compute_shader_derivatives",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.nv_cooperative_matrix {
if !supported.nv_cooperative_matrix {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_cooperative_matrix",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_cooperative_matrix",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.nv_copy_memory_indirect {
if !supported.nv_copy_memory_indirect {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_copy_memory_indirect",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_copy_memory_indirect",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_2 || device_extensions.khr_buffer_device_address)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_copy_memory_indirect",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_2),
device_extensions: &["khr_buffer_device_address"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.nv_corner_sampled_image {
if !supported.nv_corner_sampled_image {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_corner_sampled_image",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_corner_sampled_image",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.nv_coverage_reduction_mode {
if !supported.nv_coverage_reduction_mode {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_coverage_reduction_mode",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.nv_framebuffer_mixed_samples) {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_coverage_reduction_mode",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["nv_framebuffer_mixed_samples"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.nv_dedicated_allocation {
if !supported.nv_dedicated_allocation {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_dedicated_allocation",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.nv_dedicated_allocation_image_aliasing {
if !supported.nv_dedicated_allocation_image_aliasing {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_dedicated_allocation_image_aliasing",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_dedicated_allocation)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_dedicated_allocation_image_aliasing",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_dedicated_allocation"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.nv_device_diagnostic_checkpoints {
if !supported.nv_device_diagnostic_checkpoints {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_device_diagnostic_checkpoints",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_device_diagnostic_checkpoints",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.nv_device_diagnostics_config {
if !supported.nv_device_diagnostics_config {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_device_diagnostics_config",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_device_diagnostics_config",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.nv_device_generated_commands {
if !supported.nv_device_generated_commands {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_device_generated_commands",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1) {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_device_generated_commands",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_2 || device_extensions.khr_buffer_device_address)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_device_generated_commands",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_2),
device_extensions: &["khr_buffer_device_address"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.nv_external_memory {
if !supported.nv_external_memory {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_external_memory",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(instance_extensions.nv_external_memory_capabilities) {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_external_memory",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &[],
instance_extensions: &["nv_external_memory_capabilities"],
..Default::default()
},
),
});
}
} else {
}
if self.nv_external_memory_rdma {
if !supported.nv_external_memory_rdma {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_external_memory_rdma",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_external_memory) {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_external_memory_rdma",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_external_memory"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.nv_external_memory_win32 {
if !supported.nv_external_memory_win32 {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_external_memory_win32",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.nv_external_memory) {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_external_memory_win32",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["nv_external_memory"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.nv_fill_rectangle {
if !supported.nv_fill_rectangle {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_fill_rectangle",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.nv_fragment_coverage_to_color {
if !supported.nv_fragment_coverage_to_color {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_fragment_coverage_to_color",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.nv_fragment_shader_barycentric {
if !supported.nv_fragment_shader_barycentric {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_fragment_shader_barycentric",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_fragment_shader_barycentric",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.nv_fragment_shading_rate_enums {
if !supported.nv_fragment_shading_rate_enums {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_fragment_shading_rate_enums",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_fragment_shading_rate) {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_fragment_shading_rate_enums",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_fragment_shading_rate"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.nv_framebuffer_mixed_samples {
if !supported.nv_framebuffer_mixed_samples {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_framebuffer_mixed_samples",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.nv_geometry_shader_passthrough {
if !supported.nv_geometry_shader_passthrough {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_geometry_shader_passthrough",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.nv_glsl_shader {
if !supported.nv_glsl_shader {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_glsl_shader",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.nv_inherited_viewport_scissor {
if !supported.nv_inherited_viewport_scissor {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_inherited_viewport_scissor",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.nv_linear_color_attachment {
if !supported.nv_linear_color_attachment {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_linear_color_attachment",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.nv_memory_decompression {
if !supported.nv_memory_decompression {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_memory_decompression",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_memory_decompression",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_2 || device_extensions.khr_buffer_device_address)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_memory_decompression",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_2),
device_extensions: &["khr_buffer_device_address"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.nv_mesh_shader {
if !supported.nv_mesh_shader {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_mesh_shader",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_mesh_shader",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.nv_optical_flow {
if !supported.nv_optical_flow {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_optical_flow",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_optical_flow",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_3 || device_extensions.khr_format_feature_flags2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_optical_flow",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_3),
device_extensions: &["khr_format_feature_flags2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_3 || device_extensions.khr_synchronization2) {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_optical_flow",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_3),
device_extensions: &["khr_synchronization2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.nv_present_barrier {
if !supported.nv_present_barrier {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_present_barrier",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_present_barrier",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if !(instance_extensions.khr_surface) {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_present_barrier",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &[],
instance_extensions: &["khr_surface"],
..Default::default()
},
),
});
}
if !(instance_extensions.khr_get_surface_capabilities2) {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_present_barrier",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &[],
instance_extensions: &["khr_get_surface_capabilities2"],
..Default::default()
},
),
});
}
if !(device_extensions.khr_swapchain) {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_present_barrier",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_swapchain"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.nv_ray_tracing {
if !supported.nv_ray_tracing {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_ray_tracing",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_ray_tracing",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_1
|| device_extensions.khr_get_memory_requirements2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_ray_tracing",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_get_memory_requirements2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.nv_ray_tracing_invocation_reorder {
if !supported.nv_ray_tracing_invocation_reorder {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_ray_tracing_invocation_reorder",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_ray_tracing_pipeline) {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_ray_tracing_invocation_reorder",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_ray_tracing_pipeline"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.nv_ray_tracing_motion_blur {
if !supported.nv_ray_tracing_motion_blur {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_ray_tracing_motion_blur",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_ray_tracing_pipeline) {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_ray_tracing_motion_blur",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_ray_tracing_pipeline"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.nv_representative_fragment_test {
if !supported.nv_representative_fragment_test {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_representative_fragment_test",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.nv_sample_mask_override_coverage {
if !supported.nv_sample_mask_override_coverage {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_sample_mask_override_coverage",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.nv_scissor_exclusive {
if !supported.nv_scissor_exclusive {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_scissor_exclusive",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_scissor_exclusive",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.nv_shader_image_footprint {
if !supported.nv_shader_image_footprint {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_shader_image_footprint",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_shader_image_footprint",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.nv_shader_sm_builtins {
if !supported.nv_shader_sm_builtins {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_shader_sm_builtins",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1) {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_shader_sm_builtins",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.nv_shader_subgroup_partitioned {
if !supported.nv_shader_subgroup_partitioned {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_shader_subgroup_partitioned",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1) {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_shader_subgroup_partitioned",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.nv_shading_rate_image {
if !supported.nv_shading_rate_image {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_shading_rate_image",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_shading_rate_image",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.nv_viewport_array2 {
if !supported.nv_viewport_array2 {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_viewport_array2",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.nv_viewport_swizzle {
if !supported.nv_viewport_swizzle {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_viewport_swizzle",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.nv_win32_keyed_mutex {
if !supported.nv_win32_keyed_mutex {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_win32_keyed_mutex",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.nv_external_memory_win32) {
return Err(crate::device::ExtensionRestrictionError {
extension: "nv_win32_keyed_mutex",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["nv_external_memory_win32"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.qcom_fragment_density_map_offset {
if !supported.qcom_fragment_density_map_offset {
return Err(crate::device::ExtensionRestrictionError {
extension: "qcom_fragment_density_map_offset",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "qcom_fragment_density_map_offset",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
if !(device_extensions.ext_fragment_density_map) {
return Err(crate::device::ExtensionRestrictionError {
extension: "qcom_fragment_density_map_offset",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["ext_fragment_density_map"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.qcom_image_processing {
if !supported.qcom_image_processing {
return Err(crate::device::ExtensionRestrictionError {
extension: "qcom_image_processing",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_3 || device_extensions.khr_format_feature_flags2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "qcom_image_processing",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_3),
device_extensions: &["khr_format_feature_flags2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.qcom_multiview_per_view_viewports {
if !supported.qcom_multiview_per_view_viewports {
return Err(crate::device::ExtensionRestrictionError {
extension: "qcom_multiview_per_view_viewports",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.qcom_render_pass_shader_resolve {
if !supported.qcom_render_pass_shader_resolve {
return Err(crate::device::ExtensionRestrictionError {
extension: "qcom_render_pass_shader_resolve",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.qcom_render_pass_store_ops {
if !supported.qcom_render_pass_store_ops {
return Err(crate::device::ExtensionRestrictionError {
extension: "qcom_render_pass_store_ops",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.qcom_render_pass_transform {
if !supported.qcom_render_pass_transform {
return Err(crate::device::ExtensionRestrictionError {
extension: "qcom_render_pass_transform",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_swapchain) {
return Err(crate::device::ExtensionRestrictionError {
extension: "qcom_render_pass_transform",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_swapchain"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(instance_extensions.khr_surface) {
return Err(crate::device::ExtensionRestrictionError {
extension: "qcom_render_pass_transform",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &[],
instance_extensions: &["khr_surface"],
..Default::default()
},
),
});
}
} else {
}
if self.qcom_rotated_copy_commands {
if !supported.qcom_rotated_copy_commands {
return Err(crate::device::ExtensionRestrictionError {
extension: "qcom_rotated_copy_commands",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(device_extensions.khr_swapchain) {
return Err(crate::device::ExtensionRestrictionError {
extension: "qcom_rotated_copy_commands",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: None,
device_extensions: &["khr_swapchain"],
instance_extensions: &[],
..Default::default()
},
),
});
}
if !(api_version >= crate::Version::V1_3 || device_extensions.khr_copy_commands2) {
return Err(crate::device::ExtensionRestrictionError {
extension: "qcom_rotated_copy_commands",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_3),
device_extensions: &["khr_copy_commands2"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
if self.qcom_tile_properties {
if !supported.qcom_tile_properties {
return Err(crate::device::ExtensionRestrictionError {
extension: "qcom_tile_properties",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "qcom_tile_properties",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.sec_amigo_profiling {
if !supported.sec_amigo_profiling {
return Err(crate::device::ExtensionRestrictionError {
extension: "sec_amigo_profiling",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1
|| instance_extensions.khr_get_physical_device_properties2)
{
return Err(crate::device::ExtensionRestrictionError {
extension: "sec_amigo_profiling",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &[],
instance_extensions: &["khr_get_physical_device_properties2"],
..Default::default()
},
),
});
}
} else {
}
if self.valve_descriptor_set_host_mapping {
if !supported.valve_descriptor_set_host_mapping {
return Err(crate::device::ExtensionRestrictionError {
extension: "valve_descriptor_set_host_mapping",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
} else {
}
if self.valve_mutable_descriptor_type {
if !supported.valve_mutable_descriptor_type {
return Err(crate::device::ExtensionRestrictionError {
extension: "valve_mutable_descriptor_type",
restriction: crate::device::ExtensionRestriction::NotSupported,
});
}
if !(api_version >= crate::Version::V1_1 || device_extensions.khr_maintenance3) {
return Err(crate::device::ExtensionRestrictionError {
extension: "valve_mutable_descriptor_type",
restriction: crate::device::ExtensionRestriction::Requires(
crate::RequiresOneOf {
api_version: Some(crate::Version::V1_1),
device_extensions: &["khr_maintenance3"],
instance_extensions: &[],
..Default::default()
},
),
});
}
} else {
}
Ok(())
}
}