1#[doc = r" List of extensions that are enabled or available."]
5#[derive(Copy, Clone, PartialEq, Eq)]
6pub struct DeviceExtensions {
7 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - Vulkan API version 1.1 or device extension [`khr_storage_buffer_storage_class`](crate::device::DeviceExtensions::khr_storage_buffer_storage_class)"]
8 pub khr_16bit_storage: bool,
9 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - Vulkan API version 1.1 or device extension [`khr_storage_buffer_storage_class`](crate::device::DeviceExtensions::khr_storage_buffer_storage_class)"]
10 pub khr_8bit_storage: bool,
11 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_acceleration_structure.html)\n- Requires all of:\n - Vulkan API version 1.1\n - Vulkan API version 1.2 or device extension [`ext_descriptor_indexing`](crate::device::DeviceExtensions::ext_descriptor_indexing)\n - Vulkan API version 1.2 or 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)"]
12 pub khr_acceleration_structure: bool,
13 #[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"]
14 pub khr_bind_memory2: bool,
15 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - Vulkan API version 1.1 or device extension [`khr_device_group`](crate::device::DeviceExtensions::khr_device_group)\n- Conflicts with device extension: [`ext_buffer_device_address`](crate::device::DeviceExtensions::ext_buffer_device_address)"]
16 pub khr_buffer_device_address: bool,
17 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_calibrated_timestamps.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
18 pub khr_calibrated_timestamps: bool,
19 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_cooperative_matrix.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
20 pub khr_cooperative_matrix: bool,
21 #[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\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
22 pub khr_copy_commands2: bool,
23 #[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 all of:\n - Vulkan API version 1.1 or device extension [`khr_multiview`](crate::device::DeviceExtensions::khr_multiview)\n - Vulkan API version 1.1 or device extension [`khr_maintenance2`](crate::device::DeviceExtensions::khr_maintenance2)"]
24 pub khr_create_renderpass2: bool,
25 #[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 all of:\n - Vulkan API version 1.1 or device extension [`khr_get_memory_requirements2`](crate::device::DeviceExtensions::khr_get_memory_requirements2)"]
26 pub khr_dedicated_allocation: bool,
27 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_deferred_host_operations.html)"]
28 pub khr_deferred_host_operations: bool,
29 #[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 all of:\n - Vulkan API version 1.2 or device extension [`khr_create_renderpass2`](crate::device::DeviceExtensions::khr_create_renderpass2)"]
30 pub khr_depth_stencil_resolve: bool,
31 #[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"]
32 pub khr_descriptor_update_template: bool,
33 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_device_group_creation`](crate::instance::InstanceExtensions::khr_device_group_creation)"]
34 pub khr_device_group: bool,
35 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_display_swapchain.html)\n- Requires all of:\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)\n - instance extension [`khr_display`](crate::instance::InstanceExtensions::khr_display)"]
36 pub khr_display_swapchain: bool,
37 #[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"]
38 pub khr_draw_indirect_count: bool,
39 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
40 pub khr_driver_properties: bool,
41 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - Vulkan API version 1.2 or device extension [`khr_depth_stencil_resolve`](crate::device::DeviceExtensions::khr_depth_stencil_resolve)"]
42 pub khr_dynamic_rendering: bool,
43 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_dynamic_rendering_local_read.html)\n- Requires all of:\n - Vulkan API version 1.3 or device extension [`khr_dynamic_rendering`](crate::device::DeviceExtensions::khr_dynamic_rendering)"]
44 pub khr_dynamic_rendering_local_read: bool,
45 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_external_fence_capabilities`](crate::instance::InstanceExtensions::khr_external_fence_capabilities)"]
46 pub khr_external_fence: bool,
47 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_external_fence_fd.html)\n- Requires all of:\n - Vulkan API version 1.1 or device extension [`khr_external_fence`](crate::device::DeviceExtensions::khr_external_fence)"]
48 pub khr_external_fence_fd: bool,
49 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_external_fence_win32.html)\n- Requires all of:\n - Vulkan API version 1.1 or device extension [`khr_external_fence`](crate::device::DeviceExtensions::khr_external_fence)"]
50 pub khr_external_fence_win32: bool,
51 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_external_memory_capabilities`](crate::instance::InstanceExtensions::khr_external_memory_capabilities)"]
52 pub khr_external_memory: bool,
53 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_external_memory_fd.html)\n- Requires all of:\n - Vulkan API version 1.1 or device extension [`khr_external_memory`](crate::device::DeviceExtensions::khr_external_memory)"]
54 pub khr_external_memory_fd: bool,
55 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_external_memory_win32.html)\n- Requires all of:\n - Vulkan API version 1.1 or device extension [`khr_external_memory`](crate::device::DeviceExtensions::khr_external_memory)"]
56 pub khr_external_memory_win32: bool,
57 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_external_semaphore_capabilities`](crate::instance::InstanceExtensions::khr_external_semaphore_capabilities)"]
58 pub khr_external_semaphore: bool,
59 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_external_semaphore_fd.html)\n- Requires all of:\n - Vulkan API version 1.1 or device extension [`khr_external_semaphore`](crate::device::DeviceExtensions::khr_external_semaphore)"]
60 pub khr_external_semaphore_fd: bool,
61 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_external_semaphore_win32.html)\n- Requires all of:\n - Vulkan API version 1.1 or device extension [`khr_external_semaphore`](crate::device::DeviceExtensions::khr_external_semaphore)"]
62 pub khr_external_semaphore_win32: bool,
63 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
64 pub khr_format_feature_flags2: bool,
65 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_fragment_shader_barycentric.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
66 pub khr_fragment_shader_barycentric: bool,
67 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_fragment_shading_rate.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - Vulkan API version 1.2 or device extension [`khr_create_renderpass2`](crate::device::DeviceExtensions::khr_create_renderpass2)"]
68 pub khr_fragment_shading_rate: bool,
69 #[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"]
70 pub khr_get_memory_requirements2: bool,
71 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_global_priority.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
72 pub khr_global_priority: bool,
73 #[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"]
74 pub khr_image_format_list: bool,
75 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - Vulkan API version 1.1 or device extension [`khr_maintenance2`](crate::device::DeviceExtensions::khr_maintenance2)\n - Vulkan API version 1.2 or device extension [`khr_image_format_list`](crate::device::DeviceExtensions::khr_image_format_list)"]
76 pub khr_imageless_framebuffer: bool,
77 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_incremental_present.html)\n- Requires all of:\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)"]
78 pub khr_incremental_present: bool,
79 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_index_type_uint8.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
80 pub khr_index_type_uint8: bool,
81 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_line_rasterization.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
82 pub khr_line_rasterization: bool,
83 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_load_store_op_none.html)"]
84 pub khr_load_store_op_none: bool,
85 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_maintenance1.html)\n- Promoted to Vulkan 1.1"]
86 pub khr_maintenance1: bool,
87 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_maintenance2.html)\n- Promoted to Vulkan 1.1"]
88 pub khr_maintenance2: bool,
89 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
90 pub khr_maintenance3: bool,
91 #[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 all of:\n - Vulkan API version 1.1"]
92 pub khr_maintenance4: bool,
93 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_maintenance5.html)\n- Requires all of:\n - Vulkan API version 1.1\n - Vulkan API version 1.3 or device extension [`khr_dynamic_rendering`](crate::device::DeviceExtensions::khr_dynamic_rendering)"]
94 pub khr_maintenance5: bool,
95 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_maintenance6.html)\n- Requires all of:\n - Vulkan API version 1.1"]
96 pub khr_maintenance6: bool,
97 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_map_memory2.html)"]
98 pub khr_map_memory2: bool,
99 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
100 pub khr_multiview: bool,
101 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_performance_query.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
102 pub khr_performance_query: bool,
103 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_pipeline_executable_properties.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
104 pub khr_pipeline_executable_properties: bool,
105 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_pipeline_library.html)"]
106 pub khr_pipeline_library: bool,
107 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
108 pub khr_portability_subset: bool,
109 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_present_id.html)\n- Requires all of:\n - Vulkan API version 1.1 or device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
110 pub khr_present_id: bool,
111 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_present_wait.html)\n- Requires all of:\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)\n - device extension [`khr_present_id`](crate::device::DeviceExtensions::khr_present_id)"]
112 pub khr_present_wait: bool,
113 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_push_descriptor.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
114 pub khr_push_descriptor: bool,
115 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_ray_query.html)\n- Requires all of:\n - Vulkan API version 1.2 or 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)"]
116 pub khr_ray_query: bool,
117 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_ray_tracing_maintenance1.html)\n- Requires all of:\n - device extension [`khr_acceleration_structure`](crate::device::DeviceExtensions::khr_acceleration_structure)"]
118 pub khr_ray_tracing_maintenance1: bool,
119 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_ray_tracing_pipeline.html)\n- Requires all of:\n - Vulkan API version 1.2 or 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)"]
120 pub khr_ray_tracing_pipeline: bool,
121 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_ray_tracing_position_fetch.html)\n- Requires all of:\n - device extension [`khr_acceleration_structure`](crate::device::DeviceExtensions::khr_acceleration_structure)"]
122 pub khr_ray_tracing_position_fetch: bool,
123 #[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"]
124 pub khr_relaxed_block_layout: bool,
125 #[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"]
126 pub khr_sampler_mirror_clamp_to_edge: bool,
127 #[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 all of:\n - Vulkan API version 1.1 or device extension [`khr_maintenance1`](crate::device::DeviceExtensions::khr_maintenance1)\n - Vulkan API version 1.1 or device extension [`khr_bind_memory2`](crate::device::DeviceExtensions::khr_bind_memory2)\n - Vulkan API version 1.1 or device extension [`khr_get_memory_requirements2`](crate::device::DeviceExtensions::khr_get_memory_requirements2)\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
128 pub khr_sampler_ycbcr_conversion: bool,
129 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - Vulkan API version 1.2 or device extension [`khr_create_renderpass2`](crate::device::DeviceExtensions::khr_create_renderpass2)"]
130 pub khr_separate_depth_stencil_layouts: bool,
131 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
132 pub khr_shader_atomic_int64: bool,
133 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_shader_clock.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
134 pub khr_shader_clock: bool,
135 #[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"]
136 pub khr_shader_draw_parameters: bool,
137 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_shader_expect_assume.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
138 pub khr_shader_expect_assume: bool,
139 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
140 pub khr_shader_float16_int8: bool,
141 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
142 pub khr_shader_float_controls: bool,
143 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_shader_float_controls2.html)\n- Requires all of:\n - Vulkan API version 1.1\n - Vulkan API version 1.2 or device extension [`khr_shader_float_controls`](crate::device::DeviceExtensions::khr_shader_float_controls)"]
144 pub khr_shader_float_controls2: bool,
145 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
146 pub khr_shader_integer_dot_product: bool,
147 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_shader_maximal_reconvergence.html)\n- Requires all of:\n - Vulkan API version 1.1"]
148 pub khr_shader_maximal_reconvergence: bool,
149 #[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"]
150 pub khr_shader_non_semantic_info: bool,
151 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_shader_quad_control.html)\n- Requires all of:\n - Vulkan API version 1.1\n - Vulkan API version 1.2 or device extension [`khr_vulkan_memory_model`](crate::device::DeviceExtensions::khr_vulkan_memory_model)\n - device extension [`khr_shader_maximal_reconvergence`](crate::device::DeviceExtensions::khr_shader_maximal_reconvergence)"]
152 pub khr_shader_quad_control: bool,
153 #[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 all of:\n - Vulkan API version 1.1"]
154 pub khr_shader_subgroup_extended_types: bool,
155 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_shader_subgroup_rotate.html)"]
156 pub khr_shader_subgroup_rotate: bool,
157 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_shader_subgroup_uniform_control_flow.html)\n- Requires all of:\n - Vulkan API version 1.1"]
158 pub khr_shader_subgroup_uniform_control_flow: bool,
159 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
160 pub khr_shader_terminate_invocation: bool,
161 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_shared_presentable_image.html)\n- Requires all of:\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)\n - instance extension [`khr_get_surface_capabilities2`](crate::instance::InstanceExtensions::khr_get_surface_capabilities2)\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
162 pub khr_shared_presentable_image: bool,
163 #[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 all of:\n - Vulkan API version 1.1\n - Vulkan API version 1.2 or device extension [`khr_shader_float_controls`](crate::device::DeviceExtensions::khr_shader_float_controls)"]
164 pub khr_spirv_1_4: bool,
165 #[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"]
166 pub khr_storage_buffer_storage_class: bool,
167 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_swapchain.html)\n- Requires all of:\n - instance extension [`khr_surface`](crate::instance::InstanceExtensions::khr_surface)"]
168 pub khr_swapchain: bool,
169 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_swapchain_mutable_format.html)\n- Requires all of:\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)\n - Vulkan API version 1.1 or device extension [`khr_maintenance2`](crate::device::DeviceExtensions::khr_maintenance2)\n - Vulkan API version 1.2 or device extension [`khr_image_format_list`](crate::device::DeviceExtensions::khr_image_format_list)"]
170 pub khr_swapchain_mutable_format: bool,
171 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
172 pub khr_synchronization2: bool,
173 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
174 pub khr_timeline_semaphore: bool,
175 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
176 pub khr_uniform_buffer_standard_layout: bool,
177 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - Vulkan API version 1.1 or device extension [`khr_storage_buffer_storage_class`](crate::device::DeviceExtensions::khr_storage_buffer_storage_class)"]
178 pub khr_variable_pointers: bool,
179 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_vertex_attribute_divisor.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
180 pub khr_vertex_attribute_divisor: bool,
181 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_video_decode_av1.html)\n- Requires all of:\n - device extension [`khr_video_decode_queue`](crate::device::DeviceExtensions::khr_video_decode_queue)"]
182 pub khr_video_decode_av1: bool,
183 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_video_decode_h264.html)\n- Requires all of:\n - device extension [`khr_video_decode_queue`](crate::device::DeviceExtensions::khr_video_decode_queue)"]
184 pub khr_video_decode_h264: bool,
185 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_video_decode_h265.html)\n- Requires all of:\n - device extension [`khr_video_decode_queue`](crate::device::DeviceExtensions::khr_video_decode_queue)"]
186 pub khr_video_decode_h265: bool,
187 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_video_decode_queue.html)\n- Requires all of:\n - device extension [`khr_video_queue`](crate::device::DeviceExtensions::khr_video_queue)\n - Vulkan API version 1.3 or device extension [`khr_synchronization2`](crate::device::DeviceExtensions::khr_synchronization2)"]
188 pub khr_video_decode_queue: bool,
189 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_video_encode_h264.html)\n- Requires all of:\n - device extension [`khr_video_encode_queue`](crate::device::DeviceExtensions::khr_video_encode_queue)"]
190 pub khr_video_encode_h264: bool,
191 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_video_encode_h265.html)\n- Requires all of:\n - device extension [`khr_video_encode_queue`](crate::device::DeviceExtensions::khr_video_encode_queue)"]
192 pub khr_video_encode_h265: bool,
193 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_video_encode_queue.html)\n- Requires all of:\n - device extension [`khr_video_queue`](crate::device::DeviceExtensions::khr_video_queue)\n - Vulkan API version 1.3 or device extension [`khr_synchronization2`](crate::device::DeviceExtensions::khr_synchronization2)"]
194 pub khr_video_encode_queue: bool,
195 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_video_maintenance1.html)\n- Requires all of:\n - device extension [`khr_video_queue`](crate::device::DeviceExtensions::khr_video_queue)"]
196 pub khr_video_maintenance1: bool,
197 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_video_queue.html)\n- Requires all of:\n - Vulkan API version 1.1\n - Vulkan API version 1.3 or device extension [`khr_synchronization2`](crate::device::DeviceExtensions::khr_synchronization2)"]
198 pub khr_video_queue: bool,
199 #[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\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
200 pub khr_vulkan_memory_model: bool,
201 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_win32_keyed_mutex.html)\n- Requires all of:\n - device extension [`khr_external_memory_win32`](crate::device::DeviceExtensions::khr_external_memory_win32)"]
202 pub khr_win32_keyed_mutex: bool,
203 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_KHR_workgroup_memory_explicit_layout.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
204 pub khr_workgroup_memory_explicit_layout: bool,
205 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
206 pub khr_zero_initialize_workgroup_memory: bool,
207 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
208 pub ext_4444_formats: bool,
209 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_astc_decode_mode.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
210 pub ext_astc_decode_mode: bool,
211 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_attachment_feedback_loop_dynamic_state.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - device extension [`ext_attachment_feedback_loop_layout`](crate::device::DeviceExtensions::ext_attachment_feedback_loop_layout)"]
212 pub ext_attachment_feedback_loop_dynamic_state: bool,
213 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_attachment_feedback_loop_layout.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
214 pub ext_attachment_feedback_loop_layout: bool,
215 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_blend_operation_advanced.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
216 pub ext_blend_operation_advanced: bool,
217 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_border_color_swizzle.html)\n- Requires all of:\n - device extension [`ext_custom_border_color`](crate::device::DeviceExtensions::ext_custom_border_color)"]
218 pub ext_border_color_swizzle: bool,
219 #[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 all of:\n - Vulkan API version 1.1 or 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)"]
220 pub ext_buffer_device_address: bool,
221 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_calibrated_timestamps.html)\n- Promoted to [`khr_calibrated_timestamps`](crate::device::DeviceExtensions::khr_calibrated_timestamps)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
222 pub ext_calibrated_timestamps: bool,
223 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_color_write_enable.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
224 pub ext_color_write_enable: bool,
225 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_conditional_rendering.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
226 pub ext_conditional_rendering: bool,
227 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_conservative_rasterization.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
228 pub ext_conservative_rasterization: bool,
229 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_custom_border_color.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
230 pub ext_custom_border_color: bool,
231 #[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 all of:\n - instance extension [`ext_debug_report`](crate::instance::InstanceExtensions::ext_debug_report)"]
232 pub ext_debug_marker: bool,
233 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_depth_bias_control.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
234 pub ext_depth_bias_control: bool,
235 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_depth_clamp_zero_one.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
236 pub ext_depth_clamp_zero_one: bool,
237 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_depth_clip_control.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
238 pub ext_depth_clip_control: bool,
239 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_depth_clip_enable.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
240 pub ext_depth_clip_enable: bool,
241 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_depth_range_unrestricted.html)"]
242 pub ext_depth_range_unrestricted: bool,
243 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_descriptor_buffer.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - Vulkan API version 1.2 or device extension [`khr_buffer_device_address`](crate::device::DeviceExtensions::khr_buffer_device_address)\n - Vulkan API version 1.2 or device extension [`ext_descriptor_indexing`](crate::device::DeviceExtensions::ext_descriptor_indexing)\n - Vulkan API version 1.3 or device extension [`khr_synchronization2`](crate::device::DeviceExtensions::khr_synchronization2)"]
244 pub ext_descriptor_buffer: bool,
245 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - Vulkan API version 1.1 or device extension [`khr_maintenance3`](crate::device::DeviceExtensions::khr_maintenance3)"]
246 pub ext_descriptor_indexing: bool,
247 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_device_address_binding_report.html)\n- Requires all of:\n - Vulkan API version 1.1 or 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)"]
248 pub ext_device_address_binding_report: bool,
249 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_device_fault.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
250 pub ext_device_fault: bool,
251 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_device_memory_report.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
252 pub ext_device_memory_report: bool,
253 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_discard_rectangles.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
254 pub ext_discard_rectangles: bool,
255 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_display_control.html)\n- Requires all of:\n - instance extension [`ext_display_surface_counter`](crate::instance::InstanceExtensions::ext_display_surface_counter)\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)"]
256 pub ext_display_control: bool,
257 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_dynamic_rendering_unused_attachments.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - Vulkan API version 1.3 or device extension [`khr_dynamic_rendering`](crate::device::DeviceExtensions::khr_dynamic_rendering)"]
258 pub ext_dynamic_rendering_unused_attachments: bool,
259 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
260 pub ext_extended_dynamic_state: bool,
261 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
262 pub ext_extended_dynamic_state2: bool,
263 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_extended_dynamic_state3.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
264 pub ext_extended_dynamic_state3: bool,
265 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_external_memory_acquire_unmodified.html)\n- Requires all of:\n - Vulkan API version 1.1 or device extension [`khr_external_memory`](crate::device::DeviceExtensions::khr_external_memory)"]
266 pub ext_external_memory_acquire_unmodified: bool,
267 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_external_memory_dma_buf.html)\n- Requires all of:\n - device extension [`khr_external_memory_fd`](crate::device::DeviceExtensions::khr_external_memory_fd)"]
268 pub ext_external_memory_dma_buf: bool,
269 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_external_memory_host.html)\n- Requires all of:\n - Vulkan API version 1.1 or device extension [`khr_external_memory`](crate::device::DeviceExtensions::khr_external_memory)"]
270 pub ext_external_memory_host: bool,
271 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_filter_cubic.html)"]
272 pub ext_filter_cubic: bool,
273 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_fragment_density_map.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
274 pub ext_fragment_density_map: bool,
275 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_fragment_density_map2.html)\n- Requires all of:\n - device extension [`ext_fragment_density_map`](crate::device::DeviceExtensions::ext_fragment_density_map)"]
276 pub ext_fragment_density_map2: bool,
277 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_fragment_shader_interlock.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
278 pub ext_fragment_shader_interlock: bool,
279 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_frame_boundary.html)"]
280 pub ext_frame_boundary: bool,
281 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_full_screen_exclusive.html)\n- Requires all of:\n - Vulkan API version 1.1 or 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)"]
282 pub ext_full_screen_exclusive: bool,
283 #[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)"]
284 pub ext_global_priority: bool,
285 #[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 all of:\n - device extension [`khr_global_priority`](crate::device::DeviceExtensions::khr_global_priority) or device extension [`ext_global_priority`](crate::device::DeviceExtensions::ext_global_priority)\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
286 pub ext_global_priority_query: bool,
287 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_graphics_pipeline_library.html)\n- Requires all of:\n - Vulkan API version 1.1 or 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)"]
288 pub ext_graphics_pipeline_library: bool,
289 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_hdr_metadata.html)\n- Requires all of:\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)"]
290 pub ext_hdr_metadata: bool,
291 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_host_image_copy.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - Vulkan API version 1.3 or device extension [`khr_copy_commands2`](crate::device::DeviceExtensions::khr_copy_commands2)\n - Vulkan API version 1.3 or device extension [`khr_format_feature_flags2`](crate::device::DeviceExtensions::khr_format_feature_flags2)"]
292 pub ext_host_image_copy: bool,
293 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
294 pub ext_host_query_reset: bool,
295 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_image_2d_view_of_3d.html)\n- Requires all of:\n - Vulkan API version 1.1 or device extension [`khr_maintenance1`](crate::device::DeviceExtensions::khr_maintenance1)\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
296 pub ext_image_2d_view_of_3d: bool,
297 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_image_compression_control.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
298 pub ext_image_compression_control: bool,
299 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_image_compression_control_swapchain.html)\n- Requires all of:\n - device extension [`ext_image_compression_control`](crate::device::DeviceExtensions::ext_image_compression_control)"]
300 pub ext_image_compression_control_swapchain: bool,
301 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_image_drm_format_modifier.html)\n- Requires all of:\n - Vulkan API version 1.1 or device extension [`khr_bind_memory2`](crate::device::DeviceExtensions::khr_bind_memory2)\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - Vulkan API version 1.1 or device extension [`khr_sampler_ycbcr_conversion`](crate::device::DeviceExtensions::khr_sampler_ycbcr_conversion)\n - Vulkan API version 1.2 or device extension [`khr_image_format_list`](crate::device::DeviceExtensions::khr_image_format_list)"]
302 pub ext_image_drm_format_modifier: bool,
303 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
304 pub ext_image_robustness: bool,
305 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_image_sliced_view_of_3d.html)\n- Requires all of:\n - Vulkan API version 1.1 or device extension [`khr_maintenance1`](crate::device::DeviceExtensions::khr_maintenance1)\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
306 pub ext_image_sliced_view_of_3d: bool,
307 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_image_view_min_lod.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
308 pub ext_image_view_min_lod: bool,
309 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_index_type_uint8.html)\n- Promoted to [`khr_index_type_uint8`](crate::device::DeviceExtensions::khr_index_type_uint8)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
310 pub ext_index_type_uint8: bool,
311 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - Vulkan API version 1.1 or device extension [`khr_maintenance1`](crate::device::DeviceExtensions::khr_maintenance1)"]
312 pub ext_inline_uniform_block: bool,
313 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_legacy_dithering.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
314 pub ext_legacy_dithering: bool,
315 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_line_rasterization.html)\n- Promoted to [`khr_line_rasterization`](crate::device::DeviceExtensions::khr_line_rasterization)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
316 pub ext_line_rasterization: bool,
317 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_load_store_op_none.html)\n- Promoted to [`khr_load_store_op_none`](crate::device::DeviceExtensions::khr_load_store_op_none)"]
318 pub ext_load_store_op_none: bool,
319 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_map_memory_placed.html)\n- Requires all of:\n - device extension [`khr_map_memory2`](crate::device::DeviceExtensions::khr_map_memory2)"]
320 pub ext_map_memory_placed: bool,
321 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_memory_budget.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
322 pub ext_memory_budget: bool,
323 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_memory_priority.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
324 pub ext_memory_priority: bool,
325 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_mesh_shader.html)\n- Requires all of:\n - Vulkan API version 1.2 or device extension [`khr_spirv_1_4`](crate::device::DeviceExtensions::khr_spirv_1_4)"]
326 pub ext_mesh_shader: bool,
327 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_metal_objects.html)"]
328 pub ext_metal_objects: bool,
329 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_multi_draw.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
330 pub ext_multi_draw: bool,
331 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_multisampled_render_to_single_sampled.html)\n- Requires all of:\n - Vulkan API version 1.2 or device extension [`khr_create_renderpass2`](crate::device::DeviceExtensions::khr_create_renderpass2)\n - Vulkan API version 1.2 or device extension [`khr_depth_stencil_resolve`](crate::device::DeviceExtensions::khr_depth_stencil_resolve)"]
332 pub ext_multisampled_render_to_single_sampled: bool,
333 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_mutable_descriptor_type.html)\n- Requires all of:\n - Vulkan API version 1.1 or device extension [`khr_maintenance3`](crate::device::DeviceExtensions::khr_maintenance3)"]
334 pub ext_mutable_descriptor_type: bool,
335 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_nested_command_buffer.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
336 pub ext_nested_command_buffer: bool,
337 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_non_seamless_cube_map.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
338 pub ext_non_seamless_cube_map: bool,
339 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_opacity_micromap.html)\n- Requires all of:\n - device extension [`khr_acceleration_structure`](crate::device::DeviceExtensions::khr_acceleration_structure)\n - Vulkan API version 1.3 or device extension [`khr_synchronization2`](crate::device::DeviceExtensions::khr_synchronization2)"]
340 pub ext_opacity_micromap: bool,
341 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_pageable_device_local_memory.html)\n- Requires all of:\n - device extension [`ext_memory_priority`](crate::device::DeviceExtensions::ext_memory_priority)"]
342 pub ext_pageable_device_local_memory: bool,
343 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_pci_bus_info.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
344 pub ext_pci_bus_info: bool,
345 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_physical_device_drm.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
346 pub ext_physical_device_drm: bool,
347 #[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\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
348 pub ext_pipeline_creation_cache_control: bool,
349 #[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"]
350 pub ext_pipeline_creation_feedback: bool,
351 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_pipeline_library_group_handles.html)\n- Requires all of:\n - device extension [`khr_ray_tracing_pipeline`](crate::device::DeviceExtensions::khr_ray_tracing_pipeline)\n - device extension [`khr_pipeline_library`](crate::device::DeviceExtensions::khr_pipeline_library)"]
352 pub ext_pipeline_library_group_handles: bool,
353 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_pipeline_properties.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
354 pub ext_pipeline_properties: bool,
355 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_pipeline_protected_access.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
356 pub ext_pipeline_protected_access: bool,
357 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_pipeline_robustness.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
358 pub ext_pipeline_robustness: bool,
359 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_post_depth_coverage.html)"]
360 pub ext_post_depth_coverage: bool,
361 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_primitive_topology_list_restart.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
362 pub ext_primitive_topology_list_restart: bool,
363 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_primitives_generated_query.html)\n- Requires all of:\n - device extension [`ext_transform_feedback`](crate::device::DeviceExtensions::ext_transform_feedback)"]
364 pub ext_primitives_generated_query: bool,
365 #[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\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
366 pub ext_private_data: bool,
367 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_provoking_vertex.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
368 pub ext_provoking_vertex: bool,
369 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_queue_family_foreign.html)\n- Requires all of:\n - Vulkan API version 1.1 or device extension [`khr_external_memory`](crate::device::DeviceExtensions::khr_external_memory)"]
370 pub ext_queue_family_foreign: bool,
371 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_rasterization_order_attachment_access.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
372 pub ext_rasterization_order_attachment_access: bool,
373 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_rgba10x6_formats.html)\n- Requires all of:\n - Vulkan API version 1.1 or device extension [`khr_sampler_ycbcr_conversion`](crate::device::DeviceExtensions::khr_sampler_ycbcr_conversion)"]
374 pub ext_rgba10x6_formats: bool,
375 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_robustness2.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
376 pub ext_robustness2: bool,
377 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_sample_locations.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
378 pub ext_sample_locations: bool,
379 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
380 pub ext_sampler_filter_minmax: bool,
381 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
382 pub ext_scalar_block_layout: bool,
383 #[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"]
384 pub ext_separate_stencil_usage: bool,
385 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_shader_atomic_float.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
386 pub ext_shader_atomic_float: bool,
387 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_shader_atomic_float2.html)\n- Requires all of:\n - device extension [`ext_shader_atomic_float`](crate::device::DeviceExtensions::ext_shader_atomic_float)"]
388 pub ext_shader_atomic_float2: bool,
389 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
390 pub ext_shader_demote_to_helper_invocation: bool,
391 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_shader_image_atomic_int64.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
392 pub ext_shader_image_atomic_int64: bool,
393 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_shader_module_identifier.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - Vulkan API version 1.3 or device extension [`ext_pipeline_creation_cache_control`](crate::device::DeviceExtensions::ext_pipeline_creation_cache_control)"]
394 pub ext_shader_module_identifier: bool,
395 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_shader_object.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - Vulkan API version 1.3 or device extension [`khr_dynamic_rendering`](crate::device::DeviceExtensions::khr_dynamic_rendering)"]
396 pub ext_shader_object: bool,
397 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_shader_stencil_export.html)"]
398 pub ext_shader_stencil_export: bool,
399 #[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"]
400 pub ext_shader_subgroup_ballot: bool,
401 #[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"]
402 pub ext_shader_subgroup_vote: bool,
403 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_shader_tile_image.html)\n- Requires all of:\n - Vulkan API version 1.3"]
404 pub ext_shader_tile_image: bool,
405 #[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"]
406 pub ext_shader_viewport_index_layer: bool,
407 #[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 all of:\n - Vulkan API version 1.1"]
408 pub ext_subgroup_size_control: bool,
409 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_subpass_merge_feedback.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
410 pub ext_subpass_merge_feedback: bool,
411 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_swapchain_maintenance1.html)\n- Requires all of:\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)\n - instance extension [`ext_surface_maintenance1`](crate::instance::InstanceExtensions::ext_surface_maintenance1)\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
412 pub ext_swapchain_maintenance1: bool,
413 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
414 pub ext_texel_buffer_alignment: bool,
415 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
416 pub ext_texture_compression_astc_hdr: bool,
417 #[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"]
418 pub ext_tooling_info: bool,
419 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_transform_feedback.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
420 pub ext_transform_feedback: bool,
421 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_validation_cache.html)"]
422 pub ext_validation_cache: bool,
423 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_vertex_attribute_divisor.html)\n- Promoted to [`khr_vertex_attribute_divisor`](crate::device::DeviceExtensions::khr_vertex_attribute_divisor)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
424 pub ext_vertex_attribute_divisor: bool,
425 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_vertex_input_dynamic_state.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
426 pub ext_vertex_input_dynamic_state: bool,
427 #[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 all of:\n - Vulkan API version 1.1 or device extension [`khr_sampler_ycbcr_conversion`](crate::device::DeviceExtensions::khr_sampler_ycbcr_conversion)"]
428 pub ext_ycbcr_2plane_444_formats: bool,
429 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_EXT_ycbcr_image_arrays.html)\n- Requires all of:\n - Vulkan API version 1.1 or device extension [`khr_sampler_ycbcr_conversion`](crate::device::DeviceExtensions::khr_sampler_ycbcr_conversion)"]
430 pub ext_ycbcr_image_arrays: bool,
431 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMDX_shader_enqueue.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - Vulkan API version 1.3 or device extension [`khr_synchronization2`](crate::device::DeviceExtensions::khr_synchronization2)\n - device extension [`khr_pipeline_library`](crate::device::DeviceExtensions::khr_pipeline_library)\n - Vulkan API version 1.2 or device extension [`khr_spirv_1_4`](crate::device::DeviceExtensions::khr_spirv_1_4)"]
432 pub amdx_shader_enqueue: bool,
433 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_buffer_marker.html)"]
434 pub amd_buffer_marker: bool,
435 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_device_coherent_memory.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
436 pub amd_device_coherent_memory: bool,
437 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_display_native_hdr.html)\n- Requires all of:\n - Vulkan API version 1.1 or 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)"]
438 pub amd_display_native_hdr: bool,
439 #[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)"]
440 pub amd_draw_indirect_count: bool,
441 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_gcn_shader.html)"]
442 pub amd_gcn_shader: bool,
443 #[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)"]
444 pub amd_gpu_shader_half_float: bool,
445 #[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)"]
446 pub amd_gpu_shader_int16: bool,
447 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_memory_overallocation_behavior.html)"]
448 pub amd_memory_overallocation_behavior: bool,
449 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_mixed_attachment_samples.html)"]
450 pub amd_mixed_attachment_samples: bool,
451 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_pipeline_compiler_control.html)"]
452 pub amd_pipeline_compiler_control: bool,
453 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_rasterization_order.html)"]
454 pub amd_rasterization_order: bool,
455 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_shader_ballot.html)"]
456 pub amd_shader_ballot: bool,
457 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_shader_core_properties.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
458 pub amd_shader_core_properties: bool,
459 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_shader_core_properties2.html)\n- Requires all of:\n - device extension [`amd_shader_core_properties`](crate::device::DeviceExtensions::amd_shader_core_properties)"]
460 pub amd_shader_core_properties2: bool,
461 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_shader_early_and_late_fragment_tests.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
462 pub amd_shader_early_and_late_fragment_tests: bool,
463 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_shader_explicit_vertex_parameter.html)"]
464 pub amd_shader_explicit_vertex_parameter: bool,
465 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_shader_fragment_mask.html)"]
466 pub amd_shader_fragment_mask: bool,
467 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_shader_image_load_store_lod.html)"]
468 pub amd_shader_image_load_store_lod: bool,
469 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_shader_info.html)"]
470 pub amd_shader_info: bool,
471 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_shader_trinary_minmax.html)"]
472 pub amd_shader_trinary_minmax: bool,
473 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_AMD_texture_gather_bias_lod.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
474 pub amd_texture_gather_bias_lod: bool,
475 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_ANDROID_external_format_resolve.html)\n- Requires all of:\n - device extension [`android_external_memory_android_hardware_buffer`](crate::device::DeviceExtensions::android_external_memory_android_hardware_buffer)"]
476 pub android_external_format_resolve: bool,
477 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_ANDROID_external_memory_android_hardware_buffer.html)\n- Requires all of:\n - Vulkan API version 1.1 or device extension [`khr_sampler_ycbcr_conversion`](crate::device::DeviceExtensions::khr_sampler_ycbcr_conversion)\n - Vulkan API version 1.1 or device extension [`khr_external_memory`](crate::device::DeviceExtensions::khr_external_memory)\n - Vulkan API version 1.1 or device extension [`khr_dedicated_allocation`](crate::device::DeviceExtensions::khr_dedicated_allocation)\n - device extension [`ext_queue_family_foreign`](crate::device::DeviceExtensions::ext_queue_family_foreign)"]
478 pub android_external_memory_android_hardware_buffer: bool,
479 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
480 pub arm_rasterization_order_attachment_access: bool,
481 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_ARM_render_pass_striped.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - Vulkan API version 1.3 or device extension [`khr_synchronization2`](crate::device::DeviceExtensions::khr_synchronization2)"]
482 pub arm_render_pass_striped: bool,
483 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_ARM_scheduling_controls.html)\n- Requires all of:\n - device extension [`arm_shader_core_builtins`](crate::device::DeviceExtensions::arm_shader_core_builtins)"]
484 pub arm_scheduling_controls: bool,
485 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_ARM_shader_core_builtins.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
486 pub arm_shader_core_builtins: bool,
487 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_ARM_shader_core_properties.html)\n- Requires all of:\n - Vulkan API version 1.1"]
488 pub arm_shader_core_properties: bool,
489 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_FUCHSIA_buffer_collection.html)\n- Requires all of:\n - device extension [`fuchsia_external_memory`](crate::device::DeviceExtensions::fuchsia_external_memory)\n - Vulkan API version 1.1 or device extension [`khr_sampler_ycbcr_conversion`](crate::device::DeviceExtensions::khr_sampler_ycbcr_conversion)"]
490 pub fuchsia_buffer_collection: bool,
491 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_FUCHSIA_external_memory.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_external_memory_capabilities`](crate::instance::InstanceExtensions::khr_external_memory_capabilities)\n - Vulkan API version 1.1 or device extension [`khr_external_memory`](crate::device::DeviceExtensions::khr_external_memory)"]
492 pub fuchsia_external_memory: bool,
493 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_FUCHSIA_external_semaphore.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_external_semaphore_capabilities`](crate::instance::InstanceExtensions::khr_external_semaphore_capabilities)\n - Vulkan API version 1.1 or device extension [`khr_external_semaphore`](crate::device::DeviceExtensions::khr_external_semaphore)"]
494 pub fuchsia_external_semaphore: bool,
495 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_GGP_frame_token.html)\n- Requires all of:\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)\n - instance extension [`ggp_stream_descriptor_surface`](crate::instance::InstanceExtensions::ggp_stream_descriptor_surface)"]
496 pub ggp_frame_token: bool,
497 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_GOOGLE_decorate_string.html)"]
498 pub google_decorate_string: bool,
499 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_GOOGLE_display_timing.html)\n- Requires all of:\n - device extension [`khr_swapchain`](crate::device::DeviceExtensions::khr_swapchain)"]
500 pub google_display_timing: bool,
501 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_GOOGLE_hlsl_functionality1.html)"]
502 pub google_hlsl_functionality1: bool,
503 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_GOOGLE_user_type.html)"]
504 pub google_user_type: bool,
505 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_HUAWEI_cluster_culling_shader.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
506 pub huawei_cluster_culling_shader: bool,
507 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_HUAWEI_invocation_mask.html)\n- Requires all of:\n - device extension [`khr_ray_tracing_pipeline`](crate::device::DeviceExtensions::khr_ray_tracing_pipeline)\n - Vulkan API version 1.3 or device extension [`khr_synchronization2`](crate::device::DeviceExtensions::khr_synchronization2)"]
508 pub huawei_invocation_mask: bool,
509 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_HUAWEI_subpass_shading.html)\n- Requires all of:\n - Vulkan API version 1.2 or device extension [`khr_create_renderpass2`](crate::device::DeviceExtensions::khr_create_renderpass2)\n - Vulkan API version 1.3 or device extension [`khr_synchronization2`](crate::device::DeviceExtensions::khr_synchronization2)"]
510 pub huawei_subpass_shading: bool,
511 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_IMG_filter_cubic.html)"]
512 pub img_filter_cubic: bool,
513 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_IMG_format_pvrtc.html)\n- Deprecated without a replacement"]
514 pub img_format_pvrtc: bool,
515 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_IMG_relaxed_line_rasterization.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
516 pub img_relaxed_line_rasterization: bool,
517 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_INTEL_performance_query.html)"]
518 pub intel_performance_query: bool,
519 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_INTEL_shader_integer_functions2.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
520 pub intel_shader_integer_functions2: bool,
521 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_MSFT_layered_driver.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
522 pub msft_layered_driver: bool,
523 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NVX_binary_import.html)"]
524 pub nvx_binary_import: bool,
525 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NVX_image_view_handle.html)"]
526 pub nvx_image_view_handle: bool,
527 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NVX_multiview_per_view_attributes.html)\n- Requires all of:\n - Vulkan API version 1.1 or device extension [`khr_multiview`](crate::device::DeviceExtensions::khr_multiview)"]
528 pub nvx_multiview_per_view_attributes: bool,
529 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_acquire_winrt_display.html)\n- Requires all of:\n - instance extension [`ext_direct_mode_display`](crate::instance::InstanceExtensions::ext_direct_mode_display)"]
530 pub nv_acquire_winrt_display: bool,
531 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_clip_space_w_scaling.html)"]
532 pub nv_clip_space_w_scaling: bool,
533 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_compute_shader_derivatives.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
534 pub nv_compute_shader_derivatives: bool,
535 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_cooperative_matrix.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
536 pub nv_cooperative_matrix: bool,
537 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_copy_memory_indirect.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - Vulkan API version 1.2 or device extension [`khr_buffer_device_address`](crate::device::DeviceExtensions::khr_buffer_device_address)"]
538 pub nv_copy_memory_indirect: bool,
539 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_corner_sampled_image.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
540 pub nv_corner_sampled_image: bool,
541 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_coverage_reduction_mode.html)\n- Requires all of:\n - device extension [`nv_framebuffer_mixed_samples`](crate::device::DeviceExtensions::nv_framebuffer_mixed_samples)\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
542 pub nv_coverage_reduction_mode: bool,
543 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_cuda_kernel_launch.html)"]
544 pub nv_cuda_kernel_launch: bool,
545 #[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)"]
546 pub nv_dedicated_allocation: bool,
547 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_dedicated_allocation_image_aliasing.html)\n- Requires all of:\n - Vulkan API version 1.1 or device extension [`khr_dedicated_allocation`](crate::device::DeviceExtensions::khr_dedicated_allocation)\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
548 pub nv_dedicated_allocation_image_aliasing: bool,
549 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_descriptor_pool_overallocation.html)\n- Requires all of:\n - Vulkan API version 1.1"]
550 pub nv_descriptor_pool_overallocation: bool,
551 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_device_diagnostic_checkpoints.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
552 pub nv_device_diagnostic_checkpoints: bool,
553 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_device_diagnostics_config.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
554 pub nv_device_diagnostics_config: bool,
555 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_device_generated_commands.html)\n- Requires all of:\n - Vulkan API version 1.1\n - Vulkan API version 1.2 or device extension [`khr_buffer_device_address`](crate::device::DeviceExtensions::khr_buffer_device_address)"]
556 pub nv_device_generated_commands: bool,
557 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_device_generated_commands_compute.html)\n- Requires all of:\n - device extension [`nv_device_generated_commands`](crate::device::DeviceExtensions::nv_device_generated_commands)"]
558 pub nv_device_generated_commands_compute: bool,
559 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_displacement_micromap.html)\n- Requires all of:\n - device extension [`ext_opacity_micromap`](crate::device::DeviceExtensions::ext_opacity_micromap)"]
560 pub nv_displacement_micromap: bool,
561 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_extended_sparse_address_space.html)"]
562 pub nv_extended_sparse_address_space: bool,
563 #[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 all of:\n - instance extension [`nv_external_memory_capabilities`](crate::instance::InstanceExtensions::nv_external_memory_capabilities)"]
564 pub nv_external_memory: bool,
565 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_external_memory_rdma.html)\n- Requires all of:\n - Vulkan API version 1.1 or device extension [`khr_external_memory`](crate::device::DeviceExtensions::khr_external_memory)"]
566 pub nv_external_memory_rdma: bool,
567 #[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 all of:\n - device extension [`nv_external_memory`](crate::device::DeviceExtensions::nv_external_memory)"]
568 pub nv_external_memory_win32: bool,
569 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_fill_rectangle.html)"]
570 pub nv_fill_rectangle: bool,
571 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_fragment_coverage_to_color.html)"]
572 pub nv_fragment_coverage_to_color: bool,
573 #[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 all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
574 pub nv_fragment_shader_barycentric: bool,
575 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_fragment_shading_rate_enums.html)\n- Requires all of:\n - device extension [`khr_fragment_shading_rate`](crate::device::DeviceExtensions::khr_fragment_shading_rate)"]
576 pub nv_fragment_shading_rate_enums: bool,
577 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_framebuffer_mixed_samples.html)"]
578 pub nv_framebuffer_mixed_samples: bool,
579 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_geometry_shader_passthrough.html)"]
580 pub nv_geometry_shader_passthrough: bool,
581 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_glsl_shader.html)\n- Deprecated without a replacement"]
582 pub nv_glsl_shader: bool,
583 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_inherited_viewport_scissor.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
584 pub nv_inherited_viewport_scissor: bool,
585 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_linear_color_attachment.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
586 pub nv_linear_color_attachment: bool,
587 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_low_latency.html)"]
588 pub nv_low_latency: bool,
589 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_low_latency2.html)\n- Requires all of:\n - Vulkan API version 1.2 or device extension [`khr_timeline_semaphore`](crate::device::DeviceExtensions::khr_timeline_semaphore)"]
590 pub nv_low_latency2: bool,
591 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_memory_decompression.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - Vulkan API version 1.2 or device extension [`khr_buffer_device_address`](crate::device::DeviceExtensions::khr_buffer_device_address)"]
592 pub nv_memory_decompression: bool,
593 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_mesh_shader.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
594 pub nv_mesh_shader: bool,
595 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_optical_flow.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - Vulkan API version 1.3 or device extension [`khr_format_feature_flags2`](crate::device::DeviceExtensions::khr_format_feature_flags2)\n - Vulkan API version 1.3 or device extension [`khr_synchronization2`](crate::device::DeviceExtensions::khr_synchronization2)"]
596 pub nv_optical_flow: bool,
597 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_per_stage_descriptor_set.html)\n- Requires all of:\n - device extension [`khr_maintenance6`](crate::device::DeviceExtensions::khr_maintenance6)"]
598 pub nv_per_stage_descriptor_set: bool,
599 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_present_barrier.html)\n- Requires all of:\n - Vulkan API version 1.1 or 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)"]
600 pub nv_present_barrier: bool,
601 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_raw_access_chains.html)"]
602 pub nv_raw_access_chains: bool,
603 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_ray_tracing.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)\n - Vulkan API version 1.1 or device extension [`khr_get_memory_requirements2`](crate::device::DeviceExtensions::khr_get_memory_requirements2)"]
604 pub nv_ray_tracing: bool,
605 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_ray_tracing_invocation_reorder.html)\n- Requires all of:\n - device extension [`khr_ray_tracing_pipeline`](crate::device::DeviceExtensions::khr_ray_tracing_pipeline)"]
606 pub nv_ray_tracing_invocation_reorder: bool,
607 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_ray_tracing_motion_blur.html)\n- Requires all of:\n - device extension [`khr_ray_tracing_pipeline`](crate::device::DeviceExtensions::khr_ray_tracing_pipeline)"]
608 pub nv_ray_tracing_motion_blur: bool,
609 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_ray_tracing_validation.html)"]
610 pub nv_ray_tracing_validation: bool,
611 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_representative_fragment_test.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
612 pub nv_representative_fragment_test: bool,
613 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_sample_mask_override_coverage.html)"]
614 pub nv_sample_mask_override_coverage: bool,
615 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_scissor_exclusive.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
616 pub nv_scissor_exclusive: bool,
617 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_shader_atomic_float16_vector.html)"]
618 pub nv_shader_atomic_float16_vector: bool,
619 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_shader_image_footprint.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
620 pub nv_shader_image_footprint: bool,
621 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_shader_sm_builtins.html)\n- Requires all of:\n - Vulkan API version 1.1"]
622 pub nv_shader_sm_builtins: bool,
623 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_shader_subgroup_partitioned.html)\n- Requires all of:\n - Vulkan API version 1.1"]
624 pub nv_shader_subgroup_partitioned: bool,
625 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_shading_rate_image.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
626 pub nv_shading_rate_image: bool,
627 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_viewport_array2.html)"]
628 pub nv_viewport_array2: bool,
629 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_NV_viewport_swizzle.html)"]
630 pub nv_viewport_swizzle: bool,
631 #[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 all of:\n - device extension [`nv_external_memory_win32`](crate::device::DeviceExtensions::nv_external_memory_win32)"]
632 pub nv_win32_keyed_mutex: bool,
633 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_QCOM_filter_cubic_clamp.html)\n- Requires all of:\n - device extension [`ext_filter_cubic`](crate::device::DeviceExtensions::ext_filter_cubic)\n - Vulkan API version 1.2 or device extension [`ext_sampler_filter_minmax`](crate::device::DeviceExtensions::ext_sampler_filter_minmax)"]
634 pub qcom_filter_cubic_clamp: bool,
635 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_QCOM_filter_cubic_weights.html)\n- Requires all of:\n - device extension [`ext_filter_cubic`](crate::device::DeviceExtensions::ext_filter_cubic)"]
636 pub qcom_filter_cubic_weights: bool,
637 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_QCOM_fragment_density_map_offset.html)\n- Requires all of:\n - Vulkan API version 1.1 or 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)"]
638 pub qcom_fragment_density_map_offset: bool,
639 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_QCOM_image_processing.html)\n- Requires all of:\n - Vulkan API version 1.3 or device extension [`khr_format_feature_flags2`](crate::device::DeviceExtensions::khr_format_feature_flags2)"]
640 pub qcom_image_processing: bool,
641 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_QCOM_image_processing2.html)\n- Requires all of:\n - device extension [`qcom_image_processing`](crate::device::DeviceExtensions::qcom_image_processing)"]
642 pub qcom_image_processing2: bool,
643 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_QCOM_multiview_per_view_render_areas.html)"]
644 pub qcom_multiview_per_view_render_areas: bool,
645 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_QCOM_multiview_per_view_viewports.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
646 pub qcom_multiview_per_view_viewports: bool,
647 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_QCOM_render_pass_shader_resolve.html)"]
648 pub qcom_render_pass_shader_resolve: bool,
649 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_QCOM_render_pass_store_ops.html)"]
650 pub qcom_render_pass_store_ops: bool,
651 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_QCOM_render_pass_transform.html)"]
652 pub qcom_render_pass_transform: bool,
653 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_QCOM_rotated_copy_commands.html)\n- Requires all of:\n - Vulkan API version 1.3 or device extension [`khr_copy_commands2`](crate::device::DeviceExtensions::khr_copy_commands2)"]
654 pub qcom_rotated_copy_commands: bool,
655 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_QCOM_tile_properties.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
656 pub qcom_tile_properties: bool,
657 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_QCOM_ycbcr_degamma.html)"]
658 pub qcom_ycbcr_degamma: bool,
659 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_QNX_external_memory_screen_buffer.html)\n- Requires all of:\n - Vulkan API version 1.1 or device extension [`khr_sampler_ycbcr_conversion`](crate::device::DeviceExtensions::khr_sampler_ycbcr_conversion)\n - Vulkan API version 1.1 or device extension [`khr_external_memory`](crate::device::DeviceExtensions::khr_external_memory)\n - Vulkan API version 1.1 or device extension [`khr_dedicated_allocation`](crate::device::DeviceExtensions::khr_dedicated_allocation)\n - device extension [`ext_queue_family_foreign`](crate::device::DeviceExtensions::ext_queue_family_foreign)"]
660 pub qnx_external_memory_screen_buffer: bool,
661 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_SEC_amigo_profiling.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
662 pub sec_amigo_profiling: bool,
663 #[doc = "- [Vulkan documentation](https://registry.khronos.org/vulkan/specs/1.3-extensions/man/html/VK_VALVE_descriptor_set_host_mapping.html)\n- Requires all of:\n - Vulkan API version 1.1 or instance extension [`khr_get_physical_device_properties2`](crate::instance::InstanceExtensions::khr_get_physical_device_properties2)"]
664 pub valve_descriptor_set_host_mapping: bool,
665 #[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 all of:\n - Vulkan API version 1.1 or device extension [`khr_maintenance3`](crate::device::DeviceExtensions::khr_maintenance3)"]
666 pub valve_mutable_descriptor_type: bool,
667 pub _ne: crate::NonExhaustive,
668}
669impl Default for DeviceExtensions {
670 #[inline]
671 fn default() -> Self {
672 Self::empty()
673 }
674}
675impl DeviceExtensions {
676 #[doc = r" Returns an `Extensions` object with none of the members set."]
677 #[inline]
678 pub const fn empty() -> Self {
679 Self {
680 khr_16bit_storage: false,
681 khr_8bit_storage: false,
682 khr_acceleration_structure: false,
683 khr_bind_memory2: false,
684 khr_buffer_device_address: false,
685 khr_calibrated_timestamps: false,
686 khr_cooperative_matrix: false,
687 khr_copy_commands2: false,
688 khr_create_renderpass2: false,
689 khr_dedicated_allocation: false,
690 khr_deferred_host_operations: false,
691 khr_depth_stencil_resolve: false,
692 khr_descriptor_update_template: false,
693 khr_device_group: false,
694 khr_display_swapchain: false,
695 khr_draw_indirect_count: false,
696 khr_driver_properties: false,
697 khr_dynamic_rendering: false,
698 khr_dynamic_rendering_local_read: false,
699 khr_external_fence: false,
700 khr_external_fence_fd: false,
701 khr_external_fence_win32: false,
702 khr_external_memory: false,
703 khr_external_memory_fd: false,
704 khr_external_memory_win32: false,
705 khr_external_semaphore: false,
706 khr_external_semaphore_fd: false,
707 khr_external_semaphore_win32: false,
708 khr_format_feature_flags2: false,
709 khr_fragment_shader_barycentric: false,
710 khr_fragment_shading_rate: false,
711 khr_get_memory_requirements2: false,
712 khr_global_priority: false,
713 khr_image_format_list: false,
714 khr_imageless_framebuffer: false,
715 khr_incremental_present: false,
716 khr_index_type_uint8: false,
717 khr_line_rasterization: false,
718 khr_load_store_op_none: false,
719 khr_maintenance1: false,
720 khr_maintenance2: false,
721 khr_maintenance3: false,
722 khr_maintenance4: false,
723 khr_maintenance5: false,
724 khr_maintenance6: false,
725 khr_map_memory2: false,
726 khr_multiview: false,
727 khr_performance_query: false,
728 khr_pipeline_executable_properties: false,
729 khr_pipeline_library: false,
730 khr_portability_subset: false,
731 khr_present_id: false,
732 khr_present_wait: false,
733 khr_push_descriptor: false,
734 khr_ray_query: false,
735 khr_ray_tracing_maintenance1: false,
736 khr_ray_tracing_pipeline: false,
737 khr_ray_tracing_position_fetch: false,
738 khr_relaxed_block_layout: false,
739 khr_sampler_mirror_clamp_to_edge: false,
740 khr_sampler_ycbcr_conversion: false,
741 khr_separate_depth_stencil_layouts: false,
742 khr_shader_atomic_int64: false,
743 khr_shader_clock: false,
744 khr_shader_draw_parameters: false,
745 khr_shader_expect_assume: false,
746 khr_shader_float16_int8: false,
747 khr_shader_float_controls: false,
748 khr_shader_float_controls2: false,
749 khr_shader_integer_dot_product: false,
750 khr_shader_maximal_reconvergence: false,
751 khr_shader_non_semantic_info: false,
752 khr_shader_quad_control: false,
753 khr_shader_subgroup_extended_types: false,
754 khr_shader_subgroup_rotate: false,
755 khr_shader_subgroup_uniform_control_flow: false,
756 khr_shader_terminate_invocation: false,
757 khr_shared_presentable_image: false,
758 khr_spirv_1_4: false,
759 khr_storage_buffer_storage_class: false,
760 khr_swapchain: false,
761 khr_swapchain_mutable_format: false,
762 khr_synchronization2: false,
763 khr_timeline_semaphore: false,
764 khr_uniform_buffer_standard_layout: false,
765 khr_variable_pointers: false,
766 khr_vertex_attribute_divisor: false,
767 khr_video_decode_av1: false,
768 khr_video_decode_h264: false,
769 khr_video_decode_h265: false,
770 khr_video_decode_queue: false,
771 khr_video_encode_h264: false,
772 khr_video_encode_h265: false,
773 khr_video_encode_queue: false,
774 khr_video_maintenance1: false,
775 khr_video_queue: false,
776 khr_vulkan_memory_model: false,
777 khr_win32_keyed_mutex: false,
778 khr_workgroup_memory_explicit_layout: false,
779 khr_zero_initialize_workgroup_memory: false,
780 ext_4444_formats: false,
781 ext_astc_decode_mode: false,
782 ext_attachment_feedback_loop_dynamic_state: false,
783 ext_attachment_feedback_loop_layout: false,
784 ext_blend_operation_advanced: false,
785 ext_border_color_swizzle: false,
786 ext_buffer_device_address: false,
787 ext_calibrated_timestamps: false,
788 ext_color_write_enable: false,
789 ext_conditional_rendering: false,
790 ext_conservative_rasterization: false,
791 ext_custom_border_color: false,
792 ext_debug_marker: false,
793 ext_depth_bias_control: false,
794 ext_depth_clamp_zero_one: false,
795 ext_depth_clip_control: false,
796 ext_depth_clip_enable: false,
797 ext_depth_range_unrestricted: false,
798 ext_descriptor_buffer: false,
799 ext_descriptor_indexing: false,
800 ext_device_address_binding_report: false,
801 ext_device_fault: false,
802 ext_device_memory_report: false,
803 ext_discard_rectangles: false,
804 ext_display_control: false,
805 ext_dynamic_rendering_unused_attachments: false,
806 ext_extended_dynamic_state: false,
807 ext_extended_dynamic_state2: false,
808 ext_extended_dynamic_state3: false,
809 ext_external_memory_acquire_unmodified: false,
810 ext_external_memory_dma_buf: false,
811 ext_external_memory_host: false,
812 ext_filter_cubic: false,
813 ext_fragment_density_map: false,
814 ext_fragment_density_map2: false,
815 ext_fragment_shader_interlock: false,
816 ext_frame_boundary: false,
817 ext_full_screen_exclusive: false,
818 ext_global_priority: false,
819 ext_global_priority_query: false,
820 ext_graphics_pipeline_library: false,
821 ext_hdr_metadata: false,
822 ext_host_image_copy: false,
823 ext_host_query_reset: false,
824 ext_image_2d_view_of_3d: false,
825 ext_image_compression_control: false,
826 ext_image_compression_control_swapchain: false,
827 ext_image_drm_format_modifier: false,
828 ext_image_robustness: false,
829 ext_image_sliced_view_of_3d: false,
830 ext_image_view_min_lod: false,
831 ext_index_type_uint8: false,
832 ext_inline_uniform_block: false,
833 ext_legacy_dithering: false,
834 ext_line_rasterization: false,
835 ext_load_store_op_none: false,
836 ext_map_memory_placed: false,
837 ext_memory_budget: false,
838 ext_memory_priority: false,
839 ext_mesh_shader: false,
840 ext_metal_objects: false,
841 ext_multi_draw: false,
842 ext_multisampled_render_to_single_sampled: false,
843 ext_mutable_descriptor_type: false,
844 ext_nested_command_buffer: false,
845 ext_non_seamless_cube_map: false,
846 ext_opacity_micromap: false,
847 ext_pageable_device_local_memory: false,
848 ext_pci_bus_info: false,
849 ext_physical_device_drm: false,
850 ext_pipeline_creation_cache_control: false,
851 ext_pipeline_creation_feedback: false,
852 ext_pipeline_library_group_handles: false,
853 ext_pipeline_properties: false,
854 ext_pipeline_protected_access: false,
855 ext_pipeline_robustness: false,
856 ext_post_depth_coverage: false,
857 ext_primitive_topology_list_restart: false,
858 ext_primitives_generated_query: false,
859 ext_private_data: false,
860 ext_provoking_vertex: false,
861 ext_queue_family_foreign: false,
862 ext_rasterization_order_attachment_access: false,
863 ext_rgba10x6_formats: false,
864 ext_robustness2: false,
865 ext_sample_locations: false,
866 ext_sampler_filter_minmax: false,
867 ext_scalar_block_layout: false,
868 ext_separate_stencil_usage: false,
869 ext_shader_atomic_float: false,
870 ext_shader_atomic_float2: false,
871 ext_shader_demote_to_helper_invocation: false,
872 ext_shader_image_atomic_int64: false,
873 ext_shader_module_identifier: false,
874 ext_shader_object: false,
875 ext_shader_stencil_export: false,
876 ext_shader_subgroup_ballot: false,
877 ext_shader_subgroup_vote: false,
878 ext_shader_tile_image: false,
879 ext_shader_viewport_index_layer: false,
880 ext_subgroup_size_control: false,
881 ext_subpass_merge_feedback: false,
882 ext_swapchain_maintenance1: false,
883 ext_texel_buffer_alignment: false,
884 ext_texture_compression_astc_hdr: false,
885 ext_tooling_info: false,
886 ext_transform_feedback: false,
887 ext_validation_cache: false,
888 ext_vertex_attribute_divisor: false,
889 ext_vertex_input_dynamic_state: false,
890 ext_ycbcr_2plane_444_formats: false,
891 ext_ycbcr_image_arrays: false,
892 amdx_shader_enqueue: false,
893 amd_buffer_marker: false,
894 amd_device_coherent_memory: false,
895 amd_display_native_hdr: false,
896 amd_draw_indirect_count: false,
897 amd_gcn_shader: false,
898 amd_gpu_shader_half_float: false,
899 amd_gpu_shader_int16: false,
900 amd_memory_overallocation_behavior: false,
901 amd_mixed_attachment_samples: false,
902 amd_pipeline_compiler_control: false,
903 amd_rasterization_order: false,
904 amd_shader_ballot: false,
905 amd_shader_core_properties: false,
906 amd_shader_core_properties2: false,
907 amd_shader_early_and_late_fragment_tests: false,
908 amd_shader_explicit_vertex_parameter: false,
909 amd_shader_fragment_mask: false,
910 amd_shader_image_load_store_lod: false,
911 amd_shader_info: false,
912 amd_shader_trinary_minmax: false,
913 amd_texture_gather_bias_lod: false,
914 android_external_format_resolve: false,
915 android_external_memory_android_hardware_buffer: false,
916 arm_rasterization_order_attachment_access: false,
917 arm_render_pass_striped: false,
918 arm_scheduling_controls: false,
919 arm_shader_core_builtins: false,
920 arm_shader_core_properties: false,
921 fuchsia_buffer_collection: false,
922 fuchsia_external_memory: false,
923 fuchsia_external_semaphore: false,
924 ggp_frame_token: false,
925 google_decorate_string: false,
926 google_display_timing: false,
927 google_hlsl_functionality1: false,
928 google_user_type: false,
929 huawei_cluster_culling_shader: false,
930 huawei_invocation_mask: false,
931 huawei_subpass_shading: false,
932 img_filter_cubic: false,
933 img_format_pvrtc: false,
934 img_relaxed_line_rasterization: false,
935 intel_performance_query: false,
936 intel_shader_integer_functions2: false,
937 msft_layered_driver: false,
938 nvx_binary_import: false,
939 nvx_image_view_handle: false,
940 nvx_multiview_per_view_attributes: false,
941 nv_acquire_winrt_display: false,
942 nv_clip_space_w_scaling: false,
943 nv_compute_shader_derivatives: false,
944 nv_cooperative_matrix: false,
945 nv_copy_memory_indirect: false,
946 nv_corner_sampled_image: false,
947 nv_coverage_reduction_mode: false,
948 nv_cuda_kernel_launch: false,
949 nv_dedicated_allocation: false,
950 nv_dedicated_allocation_image_aliasing: false,
951 nv_descriptor_pool_overallocation: false,
952 nv_device_diagnostic_checkpoints: false,
953 nv_device_diagnostics_config: false,
954 nv_device_generated_commands: false,
955 nv_device_generated_commands_compute: false,
956 nv_displacement_micromap: false,
957 nv_extended_sparse_address_space: false,
958 nv_external_memory: false,
959 nv_external_memory_rdma: false,
960 nv_external_memory_win32: false,
961 nv_fill_rectangle: false,
962 nv_fragment_coverage_to_color: false,
963 nv_fragment_shader_barycentric: false,
964 nv_fragment_shading_rate_enums: false,
965 nv_framebuffer_mixed_samples: false,
966 nv_geometry_shader_passthrough: false,
967 nv_glsl_shader: false,
968 nv_inherited_viewport_scissor: false,
969 nv_linear_color_attachment: false,
970 nv_low_latency: false,
971 nv_low_latency2: false,
972 nv_memory_decompression: false,
973 nv_mesh_shader: false,
974 nv_optical_flow: false,
975 nv_per_stage_descriptor_set: false,
976 nv_present_barrier: false,
977 nv_raw_access_chains: false,
978 nv_ray_tracing: false,
979 nv_ray_tracing_invocation_reorder: false,
980 nv_ray_tracing_motion_blur: false,
981 nv_ray_tracing_validation: false,
982 nv_representative_fragment_test: false,
983 nv_sample_mask_override_coverage: false,
984 nv_scissor_exclusive: false,
985 nv_shader_atomic_float16_vector: false,
986 nv_shader_image_footprint: false,
987 nv_shader_sm_builtins: false,
988 nv_shader_subgroup_partitioned: false,
989 nv_shading_rate_image: false,
990 nv_viewport_array2: false,
991 nv_viewport_swizzle: false,
992 nv_win32_keyed_mutex: false,
993 qcom_filter_cubic_clamp: false,
994 qcom_filter_cubic_weights: false,
995 qcom_fragment_density_map_offset: false,
996 qcom_image_processing: false,
997 qcom_image_processing2: false,
998 qcom_multiview_per_view_render_areas: false,
999 qcom_multiview_per_view_viewports: false,
1000 qcom_render_pass_shader_resolve: false,
1001 qcom_render_pass_store_ops: false,
1002 qcom_render_pass_transform: false,
1003 qcom_rotated_copy_commands: false,
1004 qcom_tile_properties: false,
1005 qcom_ycbcr_degamma: false,
1006 qnx_external_memory_screen_buffer: false,
1007 sec_amigo_profiling: false,
1008 valve_descriptor_set_host_mapping: false,
1009 valve_mutable_descriptor_type: false,
1010 _ne: crate::NonExhaustive(()),
1011 }
1012 }
1013 #[doc = r" Returns the number of members set in self."]
1014 #[inline]
1015 pub const fn count(self) -> u64 {
1016 self.khr_16bit_storage as u64
1017 + self.khr_8bit_storage as u64
1018 + self.khr_acceleration_structure as u64
1019 + self.khr_bind_memory2 as u64
1020 + self.khr_buffer_device_address as u64
1021 + self.khr_calibrated_timestamps as u64
1022 + self.khr_cooperative_matrix as u64
1023 + self.khr_copy_commands2 as u64
1024 + self.khr_create_renderpass2 as u64
1025 + self.khr_dedicated_allocation as u64
1026 + self.khr_deferred_host_operations as u64
1027 + self.khr_depth_stencil_resolve as u64
1028 + self.khr_descriptor_update_template as u64
1029 + self.khr_device_group as u64
1030 + self.khr_display_swapchain as u64
1031 + self.khr_draw_indirect_count as u64
1032 + self.khr_driver_properties as u64
1033 + self.khr_dynamic_rendering as u64
1034 + self.khr_dynamic_rendering_local_read as u64
1035 + self.khr_external_fence as u64
1036 + self.khr_external_fence_fd as u64
1037 + self.khr_external_fence_win32 as u64
1038 + self.khr_external_memory as u64
1039 + self.khr_external_memory_fd as u64
1040 + self.khr_external_memory_win32 as u64
1041 + self.khr_external_semaphore as u64
1042 + self.khr_external_semaphore_fd as u64
1043 + self.khr_external_semaphore_win32 as u64
1044 + self.khr_format_feature_flags2 as u64
1045 + self.khr_fragment_shader_barycentric as u64
1046 + self.khr_fragment_shading_rate as u64
1047 + self.khr_get_memory_requirements2 as u64
1048 + self.khr_global_priority as u64
1049 + self.khr_image_format_list as u64
1050 + self.khr_imageless_framebuffer as u64
1051 + self.khr_incremental_present as u64
1052 + self.khr_index_type_uint8 as u64
1053 + self.khr_line_rasterization as u64
1054 + self.khr_load_store_op_none as u64
1055 + self.khr_maintenance1 as u64
1056 + self.khr_maintenance2 as u64
1057 + self.khr_maintenance3 as u64
1058 + self.khr_maintenance4 as u64
1059 + self.khr_maintenance5 as u64
1060 + self.khr_maintenance6 as u64
1061 + self.khr_map_memory2 as u64
1062 + self.khr_multiview as u64
1063 + self.khr_performance_query as u64
1064 + self.khr_pipeline_executable_properties as u64
1065 + self.khr_pipeline_library as u64
1066 + self.khr_portability_subset as u64
1067 + self.khr_present_id as u64
1068 + self.khr_present_wait as u64
1069 + self.khr_push_descriptor as u64
1070 + self.khr_ray_query as u64
1071 + self.khr_ray_tracing_maintenance1 as u64
1072 + self.khr_ray_tracing_pipeline as u64
1073 + self.khr_ray_tracing_position_fetch as u64
1074 + self.khr_relaxed_block_layout as u64
1075 + self.khr_sampler_mirror_clamp_to_edge as u64
1076 + self.khr_sampler_ycbcr_conversion as u64
1077 + self.khr_separate_depth_stencil_layouts as u64
1078 + self.khr_shader_atomic_int64 as u64
1079 + self.khr_shader_clock as u64
1080 + self.khr_shader_draw_parameters as u64
1081 + self.khr_shader_expect_assume as u64
1082 + self.khr_shader_float16_int8 as u64
1083 + self.khr_shader_float_controls as u64
1084 + self.khr_shader_float_controls2 as u64
1085 + self.khr_shader_integer_dot_product as u64
1086 + self.khr_shader_maximal_reconvergence as u64
1087 + self.khr_shader_non_semantic_info as u64
1088 + self.khr_shader_quad_control as u64
1089 + self.khr_shader_subgroup_extended_types as u64
1090 + self.khr_shader_subgroup_rotate as u64
1091 + self.khr_shader_subgroup_uniform_control_flow as u64
1092 + self.khr_shader_terminate_invocation as u64
1093 + self.khr_shared_presentable_image as u64
1094 + self.khr_spirv_1_4 as u64
1095 + self.khr_storage_buffer_storage_class as u64
1096 + self.khr_swapchain as u64
1097 + self.khr_swapchain_mutable_format as u64
1098 + self.khr_synchronization2 as u64
1099 + self.khr_timeline_semaphore as u64
1100 + self.khr_uniform_buffer_standard_layout as u64
1101 + self.khr_variable_pointers as u64
1102 + self.khr_vertex_attribute_divisor as u64
1103 + self.khr_video_decode_av1 as u64
1104 + self.khr_video_decode_h264 as u64
1105 + self.khr_video_decode_h265 as u64
1106 + self.khr_video_decode_queue as u64
1107 + self.khr_video_encode_h264 as u64
1108 + self.khr_video_encode_h265 as u64
1109 + self.khr_video_encode_queue as u64
1110 + self.khr_video_maintenance1 as u64
1111 + self.khr_video_queue as u64
1112 + self.khr_vulkan_memory_model as u64
1113 + self.khr_win32_keyed_mutex as u64
1114 + self.khr_workgroup_memory_explicit_layout as u64
1115 + self.khr_zero_initialize_workgroup_memory as u64
1116 + self.ext_4444_formats as u64
1117 + self.ext_astc_decode_mode as u64
1118 + self.ext_attachment_feedback_loop_dynamic_state as u64
1119 + self.ext_attachment_feedback_loop_layout as u64
1120 + self.ext_blend_operation_advanced as u64
1121 + self.ext_border_color_swizzle as u64
1122 + self.ext_buffer_device_address as u64
1123 + self.ext_calibrated_timestamps as u64
1124 + self.ext_color_write_enable as u64
1125 + self.ext_conditional_rendering as u64
1126 + self.ext_conservative_rasterization as u64
1127 + self.ext_custom_border_color as u64
1128 + self.ext_debug_marker as u64
1129 + self.ext_depth_bias_control as u64
1130 + self.ext_depth_clamp_zero_one as u64
1131 + self.ext_depth_clip_control as u64
1132 + self.ext_depth_clip_enable as u64
1133 + self.ext_depth_range_unrestricted as u64
1134 + self.ext_descriptor_buffer as u64
1135 + self.ext_descriptor_indexing as u64
1136 + self.ext_device_address_binding_report as u64
1137 + self.ext_device_fault as u64
1138 + self.ext_device_memory_report as u64
1139 + self.ext_discard_rectangles as u64
1140 + self.ext_display_control as u64
1141 + self.ext_dynamic_rendering_unused_attachments as u64
1142 + self.ext_extended_dynamic_state as u64
1143 + self.ext_extended_dynamic_state2 as u64
1144 + self.ext_extended_dynamic_state3 as u64
1145 + self.ext_external_memory_acquire_unmodified as u64
1146 + self.ext_external_memory_dma_buf as u64
1147 + self.ext_external_memory_host as u64
1148 + self.ext_filter_cubic as u64
1149 + self.ext_fragment_density_map as u64
1150 + self.ext_fragment_density_map2 as u64
1151 + self.ext_fragment_shader_interlock as u64
1152 + self.ext_frame_boundary as u64
1153 + self.ext_full_screen_exclusive as u64
1154 + self.ext_global_priority as u64
1155 + self.ext_global_priority_query as u64
1156 + self.ext_graphics_pipeline_library as u64
1157 + self.ext_hdr_metadata as u64
1158 + self.ext_host_image_copy as u64
1159 + self.ext_host_query_reset as u64
1160 + self.ext_image_2d_view_of_3d as u64
1161 + self.ext_image_compression_control as u64
1162 + self.ext_image_compression_control_swapchain as u64
1163 + self.ext_image_drm_format_modifier as u64
1164 + self.ext_image_robustness as u64
1165 + self.ext_image_sliced_view_of_3d as u64
1166 + self.ext_image_view_min_lod as u64
1167 + self.ext_index_type_uint8 as u64
1168 + self.ext_inline_uniform_block as u64
1169 + self.ext_legacy_dithering as u64
1170 + self.ext_line_rasterization as u64
1171 + self.ext_load_store_op_none as u64
1172 + self.ext_map_memory_placed as u64
1173 + self.ext_memory_budget as u64
1174 + self.ext_memory_priority as u64
1175 + self.ext_mesh_shader as u64
1176 + self.ext_metal_objects as u64
1177 + self.ext_multi_draw as u64
1178 + self.ext_multisampled_render_to_single_sampled as u64
1179 + self.ext_mutable_descriptor_type as u64
1180 + self.ext_nested_command_buffer as u64
1181 + self.ext_non_seamless_cube_map as u64
1182 + self.ext_opacity_micromap as u64
1183 + self.ext_pageable_device_local_memory as u64
1184 + self.ext_pci_bus_info as u64
1185 + self.ext_physical_device_drm as u64
1186 + self.ext_pipeline_creation_cache_control as u64
1187 + self.ext_pipeline_creation_feedback as u64
1188 + self.ext_pipeline_library_group_handles as u64
1189 + self.ext_pipeline_properties as u64
1190 + self.ext_pipeline_protected_access as u64
1191 + self.ext_pipeline_robustness as u64
1192 + self.ext_post_depth_coverage as u64
1193 + self.ext_primitive_topology_list_restart as u64
1194 + self.ext_primitives_generated_query as u64
1195 + self.ext_private_data as u64
1196 + self.ext_provoking_vertex as u64
1197 + self.ext_queue_family_foreign as u64
1198 + self.ext_rasterization_order_attachment_access as u64
1199 + self.ext_rgba10x6_formats as u64
1200 + self.ext_robustness2 as u64
1201 + self.ext_sample_locations as u64
1202 + self.ext_sampler_filter_minmax as u64
1203 + self.ext_scalar_block_layout as u64
1204 + self.ext_separate_stencil_usage as u64
1205 + self.ext_shader_atomic_float as u64
1206 + self.ext_shader_atomic_float2 as u64
1207 + self.ext_shader_demote_to_helper_invocation as u64
1208 + self.ext_shader_image_atomic_int64 as u64
1209 + self.ext_shader_module_identifier as u64
1210 + self.ext_shader_object as u64
1211 + self.ext_shader_stencil_export as u64
1212 + self.ext_shader_subgroup_ballot as u64
1213 + self.ext_shader_subgroup_vote as u64
1214 + self.ext_shader_tile_image as u64
1215 + self.ext_shader_viewport_index_layer as u64
1216 + self.ext_subgroup_size_control as u64
1217 + self.ext_subpass_merge_feedback as u64
1218 + self.ext_swapchain_maintenance1 as u64
1219 + self.ext_texel_buffer_alignment as u64
1220 + self.ext_texture_compression_astc_hdr as u64
1221 + self.ext_tooling_info as u64
1222 + self.ext_transform_feedback as u64
1223 + self.ext_validation_cache as u64
1224 + self.ext_vertex_attribute_divisor as u64
1225 + self.ext_vertex_input_dynamic_state as u64
1226 + self.ext_ycbcr_2plane_444_formats as u64
1227 + self.ext_ycbcr_image_arrays as u64
1228 + self.amdx_shader_enqueue as u64
1229 + self.amd_buffer_marker as u64
1230 + self.amd_device_coherent_memory as u64
1231 + self.amd_display_native_hdr as u64
1232 + self.amd_draw_indirect_count as u64
1233 + self.amd_gcn_shader as u64
1234 + self.amd_gpu_shader_half_float as u64
1235 + self.amd_gpu_shader_int16 as u64
1236 + self.amd_memory_overallocation_behavior as u64
1237 + self.amd_mixed_attachment_samples as u64
1238 + self.amd_pipeline_compiler_control as u64
1239 + self.amd_rasterization_order as u64
1240 + self.amd_shader_ballot as u64
1241 + self.amd_shader_core_properties as u64
1242 + self.amd_shader_core_properties2 as u64
1243 + self.amd_shader_early_and_late_fragment_tests as u64
1244 + self.amd_shader_explicit_vertex_parameter as u64
1245 + self.amd_shader_fragment_mask as u64
1246 + self.amd_shader_image_load_store_lod as u64
1247 + self.amd_shader_info as u64
1248 + self.amd_shader_trinary_minmax as u64
1249 + self.amd_texture_gather_bias_lod as u64
1250 + self.android_external_format_resolve as u64
1251 + self.android_external_memory_android_hardware_buffer as u64
1252 + self.arm_rasterization_order_attachment_access as u64
1253 + self.arm_render_pass_striped as u64
1254 + self.arm_scheduling_controls as u64
1255 + self.arm_shader_core_builtins as u64
1256 + self.arm_shader_core_properties as u64
1257 + self.fuchsia_buffer_collection as u64
1258 + self.fuchsia_external_memory as u64
1259 + self.fuchsia_external_semaphore as u64
1260 + self.ggp_frame_token as u64
1261 + self.google_decorate_string as u64
1262 + self.google_display_timing as u64
1263 + self.google_hlsl_functionality1 as u64
1264 + self.google_user_type as u64
1265 + self.huawei_cluster_culling_shader as u64
1266 + self.huawei_invocation_mask as u64
1267 + self.huawei_subpass_shading as u64
1268 + self.img_filter_cubic as u64
1269 + self.img_format_pvrtc as u64
1270 + self.img_relaxed_line_rasterization as u64
1271 + self.intel_performance_query as u64
1272 + self.intel_shader_integer_functions2 as u64
1273 + self.msft_layered_driver as u64
1274 + self.nvx_binary_import as u64
1275 + self.nvx_image_view_handle as u64
1276 + self.nvx_multiview_per_view_attributes as u64
1277 + self.nv_acquire_winrt_display as u64
1278 + self.nv_clip_space_w_scaling as u64
1279 + self.nv_compute_shader_derivatives as u64
1280 + self.nv_cooperative_matrix as u64
1281 + self.nv_copy_memory_indirect as u64
1282 + self.nv_corner_sampled_image as u64
1283 + self.nv_coverage_reduction_mode as u64
1284 + self.nv_cuda_kernel_launch as u64
1285 + self.nv_dedicated_allocation as u64
1286 + self.nv_dedicated_allocation_image_aliasing as u64
1287 + self.nv_descriptor_pool_overallocation as u64
1288 + self.nv_device_diagnostic_checkpoints as u64
1289 + self.nv_device_diagnostics_config as u64
1290 + self.nv_device_generated_commands as u64
1291 + self.nv_device_generated_commands_compute as u64
1292 + self.nv_displacement_micromap as u64
1293 + self.nv_extended_sparse_address_space as u64
1294 + self.nv_external_memory as u64
1295 + self.nv_external_memory_rdma as u64
1296 + self.nv_external_memory_win32 as u64
1297 + self.nv_fill_rectangle as u64
1298 + self.nv_fragment_coverage_to_color as u64
1299 + self.nv_fragment_shader_barycentric as u64
1300 + self.nv_fragment_shading_rate_enums as u64
1301 + self.nv_framebuffer_mixed_samples as u64
1302 + self.nv_geometry_shader_passthrough as u64
1303 + self.nv_glsl_shader as u64
1304 + self.nv_inherited_viewport_scissor as u64
1305 + self.nv_linear_color_attachment as u64
1306 + self.nv_low_latency as u64
1307 + self.nv_low_latency2 as u64
1308 + self.nv_memory_decompression as u64
1309 + self.nv_mesh_shader as u64
1310 + self.nv_optical_flow as u64
1311 + self.nv_per_stage_descriptor_set as u64
1312 + self.nv_present_barrier as u64
1313 + self.nv_raw_access_chains as u64
1314 + self.nv_ray_tracing as u64
1315 + self.nv_ray_tracing_invocation_reorder as u64
1316 + self.nv_ray_tracing_motion_blur as u64
1317 + self.nv_ray_tracing_validation as u64
1318 + self.nv_representative_fragment_test as u64
1319 + self.nv_sample_mask_override_coverage as u64
1320 + self.nv_scissor_exclusive as u64
1321 + self.nv_shader_atomic_float16_vector as u64
1322 + self.nv_shader_image_footprint as u64
1323 + self.nv_shader_sm_builtins as u64
1324 + self.nv_shader_subgroup_partitioned as u64
1325 + self.nv_shading_rate_image as u64
1326 + self.nv_viewport_array2 as u64
1327 + self.nv_viewport_swizzle as u64
1328 + self.nv_win32_keyed_mutex as u64
1329 + self.qcom_filter_cubic_clamp as u64
1330 + self.qcom_filter_cubic_weights as u64
1331 + self.qcom_fragment_density_map_offset as u64
1332 + self.qcom_image_processing as u64
1333 + self.qcom_image_processing2 as u64
1334 + self.qcom_multiview_per_view_render_areas as u64
1335 + self.qcom_multiview_per_view_viewports as u64
1336 + self.qcom_render_pass_shader_resolve as u64
1337 + self.qcom_render_pass_store_ops as u64
1338 + self.qcom_render_pass_transform as u64
1339 + self.qcom_rotated_copy_commands as u64
1340 + self.qcom_tile_properties as u64
1341 + self.qcom_ycbcr_degamma as u64
1342 + self.qnx_external_memory_screen_buffer as u64
1343 + self.sec_amigo_profiling as u64
1344 + self.valve_descriptor_set_host_mapping as u64
1345 + self.valve_mutable_descriptor_type as u64
1346 }
1347 #[doc = r" Returns whether no members are set in `self`."]
1348 #[inline]
1349 pub const fn is_empty(self) -> bool {
1350 !(self.khr_16bit_storage
1351 || self.khr_8bit_storage
1352 || self.khr_acceleration_structure
1353 || self.khr_bind_memory2
1354 || self.khr_buffer_device_address
1355 || self.khr_calibrated_timestamps
1356 || self.khr_cooperative_matrix
1357 || self.khr_copy_commands2
1358 || self.khr_create_renderpass2
1359 || self.khr_dedicated_allocation
1360 || self.khr_deferred_host_operations
1361 || self.khr_depth_stencil_resolve
1362 || self.khr_descriptor_update_template
1363 || self.khr_device_group
1364 || self.khr_display_swapchain
1365 || self.khr_draw_indirect_count
1366 || self.khr_driver_properties
1367 || self.khr_dynamic_rendering
1368 || self.khr_dynamic_rendering_local_read
1369 || self.khr_external_fence
1370 || self.khr_external_fence_fd
1371 || self.khr_external_fence_win32
1372 || self.khr_external_memory
1373 || self.khr_external_memory_fd
1374 || self.khr_external_memory_win32
1375 || self.khr_external_semaphore
1376 || self.khr_external_semaphore_fd
1377 || self.khr_external_semaphore_win32
1378 || self.khr_format_feature_flags2
1379 || self.khr_fragment_shader_barycentric
1380 || self.khr_fragment_shading_rate
1381 || self.khr_get_memory_requirements2
1382 || self.khr_global_priority
1383 || self.khr_image_format_list
1384 || self.khr_imageless_framebuffer
1385 || self.khr_incremental_present
1386 || self.khr_index_type_uint8
1387 || self.khr_line_rasterization
1388 || self.khr_load_store_op_none
1389 || self.khr_maintenance1
1390 || self.khr_maintenance2
1391 || self.khr_maintenance3
1392 || self.khr_maintenance4
1393 || self.khr_maintenance5
1394 || self.khr_maintenance6
1395 || self.khr_map_memory2
1396 || self.khr_multiview
1397 || self.khr_performance_query
1398 || self.khr_pipeline_executable_properties
1399 || self.khr_pipeline_library
1400 || self.khr_portability_subset
1401 || self.khr_present_id
1402 || self.khr_present_wait
1403 || self.khr_push_descriptor
1404 || self.khr_ray_query
1405 || self.khr_ray_tracing_maintenance1
1406 || self.khr_ray_tracing_pipeline
1407 || self.khr_ray_tracing_position_fetch
1408 || self.khr_relaxed_block_layout
1409 || self.khr_sampler_mirror_clamp_to_edge
1410 || self.khr_sampler_ycbcr_conversion
1411 || self.khr_separate_depth_stencil_layouts
1412 || self.khr_shader_atomic_int64
1413 || self.khr_shader_clock
1414 || self.khr_shader_draw_parameters
1415 || self.khr_shader_expect_assume
1416 || self.khr_shader_float16_int8
1417 || self.khr_shader_float_controls
1418 || self.khr_shader_float_controls2
1419 || self.khr_shader_integer_dot_product
1420 || self.khr_shader_maximal_reconvergence
1421 || self.khr_shader_non_semantic_info
1422 || self.khr_shader_quad_control
1423 || self.khr_shader_subgroup_extended_types
1424 || self.khr_shader_subgroup_rotate
1425 || self.khr_shader_subgroup_uniform_control_flow
1426 || self.khr_shader_terminate_invocation
1427 || self.khr_shared_presentable_image
1428 || self.khr_spirv_1_4
1429 || self.khr_storage_buffer_storage_class
1430 || self.khr_swapchain
1431 || self.khr_swapchain_mutable_format
1432 || self.khr_synchronization2
1433 || self.khr_timeline_semaphore
1434 || self.khr_uniform_buffer_standard_layout
1435 || self.khr_variable_pointers
1436 || self.khr_vertex_attribute_divisor
1437 || self.khr_video_decode_av1
1438 || self.khr_video_decode_h264
1439 || self.khr_video_decode_h265
1440 || self.khr_video_decode_queue
1441 || self.khr_video_encode_h264
1442 || self.khr_video_encode_h265
1443 || self.khr_video_encode_queue
1444 || self.khr_video_maintenance1
1445 || self.khr_video_queue
1446 || self.khr_vulkan_memory_model
1447 || self.khr_win32_keyed_mutex
1448 || self.khr_workgroup_memory_explicit_layout
1449 || self.khr_zero_initialize_workgroup_memory
1450 || self.ext_4444_formats
1451 || self.ext_astc_decode_mode
1452 || self.ext_attachment_feedback_loop_dynamic_state
1453 || self.ext_attachment_feedback_loop_layout
1454 || self.ext_blend_operation_advanced
1455 || self.ext_border_color_swizzle
1456 || self.ext_buffer_device_address
1457 || self.ext_calibrated_timestamps
1458 || self.ext_color_write_enable
1459 || self.ext_conditional_rendering
1460 || self.ext_conservative_rasterization
1461 || self.ext_custom_border_color
1462 || self.ext_debug_marker
1463 || self.ext_depth_bias_control
1464 || self.ext_depth_clamp_zero_one
1465 || self.ext_depth_clip_control
1466 || self.ext_depth_clip_enable
1467 || self.ext_depth_range_unrestricted
1468 || self.ext_descriptor_buffer
1469 || self.ext_descriptor_indexing
1470 || self.ext_device_address_binding_report
1471 || self.ext_device_fault
1472 || self.ext_device_memory_report
1473 || self.ext_discard_rectangles
1474 || self.ext_display_control
1475 || self.ext_dynamic_rendering_unused_attachments
1476 || self.ext_extended_dynamic_state
1477 || self.ext_extended_dynamic_state2
1478 || self.ext_extended_dynamic_state3
1479 || self.ext_external_memory_acquire_unmodified
1480 || self.ext_external_memory_dma_buf
1481 || self.ext_external_memory_host
1482 || self.ext_filter_cubic
1483 || self.ext_fragment_density_map
1484 || self.ext_fragment_density_map2
1485 || self.ext_fragment_shader_interlock
1486 || self.ext_frame_boundary
1487 || self.ext_full_screen_exclusive
1488 || self.ext_global_priority
1489 || self.ext_global_priority_query
1490 || self.ext_graphics_pipeline_library
1491 || self.ext_hdr_metadata
1492 || self.ext_host_image_copy
1493 || self.ext_host_query_reset
1494 || self.ext_image_2d_view_of_3d
1495 || self.ext_image_compression_control
1496 || self.ext_image_compression_control_swapchain
1497 || self.ext_image_drm_format_modifier
1498 || self.ext_image_robustness
1499 || self.ext_image_sliced_view_of_3d
1500 || self.ext_image_view_min_lod
1501 || self.ext_index_type_uint8
1502 || self.ext_inline_uniform_block
1503 || self.ext_legacy_dithering
1504 || self.ext_line_rasterization
1505 || self.ext_load_store_op_none
1506 || self.ext_map_memory_placed
1507 || self.ext_memory_budget
1508 || self.ext_memory_priority
1509 || self.ext_mesh_shader
1510 || self.ext_metal_objects
1511 || self.ext_multi_draw
1512 || self.ext_multisampled_render_to_single_sampled
1513 || self.ext_mutable_descriptor_type
1514 || self.ext_nested_command_buffer
1515 || self.ext_non_seamless_cube_map
1516 || self.ext_opacity_micromap
1517 || self.ext_pageable_device_local_memory
1518 || self.ext_pci_bus_info
1519 || self.ext_physical_device_drm
1520 || self.ext_pipeline_creation_cache_control
1521 || self.ext_pipeline_creation_feedback
1522 || self.ext_pipeline_library_group_handles
1523 || self.ext_pipeline_properties
1524 || self.ext_pipeline_protected_access
1525 || self.ext_pipeline_robustness
1526 || self.ext_post_depth_coverage
1527 || self.ext_primitive_topology_list_restart
1528 || self.ext_primitives_generated_query
1529 || self.ext_private_data
1530 || self.ext_provoking_vertex
1531 || self.ext_queue_family_foreign
1532 || self.ext_rasterization_order_attachment_access
1533 || self.ext_rgba10x6_formats
1534 || self.ext_robustness2
1535 || self.ext_sample_locations
1536 || self.ext_sampler_filter_minmax
1537 || self.ext_scalar_block_layout
1538 || self.ext_separate_stencil_usage
1539 || self.ext_shader_atomic_float
1540 || self.ext_shader_atomic_float2
1541 || self.ext_shader_demote_to_helper_invocation
1542 || self.ext_shader_image_atomic_int64
1543 || self.ext_shader_module_identifier
1544 || self.ext_shader_object
1545 || self.ext_shader_stencil_export
1546 || self.ext_shader_subgroup_ballot
1547 || self.ext_shader_subgroup_vote
1548 || self.ext_shader_tile_image
1549 || self.ext_shader_viewport_index_layer
1550 || self.ext_subgroup_size_control
1551 || self.ext_subpass_merge_feedback
1552 || self.ext_swapchain_maintenance1
1553 || self.ext_texel_buffer_alignment
1554 || self.ext_texture_compression_astc_hdr
1555 || self.ext_tooling_info
1556 || self.ext_transform_feedback
1557 || self.ext_validation_cache
1558 || self.ext_vertex_attribute_divisor
1559 || self.ext_vertex_input_dynamic_state
1560 || self.ext_ycbcr_2plane_444_formats
1561 || self.ext_ycbcr_image_arrays
1562 || self.amdx_shader_enqueue
1563 || self.amd_buffer_marker
1564 || self.amd_device_coherent_memory
1565 || self.amd_display_native_hdr
1566 || self.amd_draw_indirect_count
1567 || self.amd_gcn_shader
1568 || self.amd_gpu_shader_half_float
1569 || self.amd_gpu_shader_int16
1570 || self.amd_memory_overallocation_behavior
1571 || self.amd_mixed_attachment_samples
1572 || self.amd_pipeline_compiler_control
1573 || self.amd_rasterization_order
1574 || self.amd_shader_ballot
1575 || self.amd_shader_core_properties
1576 || self.amd_shader_core_properties2
1577 || self.amd_shader_early_and_late_fragment_tests
1578 || self.amd_shader_explicit_vertex_parameter
1579 || self.amd_shader_fragment_mask
1580 || self.amd_shader_image_load_store_lod
1581 || self.amd_shader_info
1582 || self.amd_shader_trinary_minmax
1583 || self.amd_texture_gather_bias_lod
1584 || self.android_external_format_resolve
1585 || self.android_external_memory_android_hardware_buffer
1586 || self.arm_rasterization_order_attachment_access
1587 || self.arm_render_pass_striped
1588 || self.arm_scheduling_controls
1589 || self.arm_shader_core_builtins
1590 || self.arm_shader_core_properties
1591 || self.fuchsia_buffer_collection
1592 || self.fuchsia_external_memory
1593 || self.fuchsia_external_semaphore
1594 || self.ggp_frame_token
1595 || self.google_decorate_string
1596 || self.google_display_timing
1597 || self.google_hlsl_functionality1
1598 || self.google_user_type
1599 || self.huawei_cluster_culling_shader
1600 || self.huawei_invocation_mask
1601 || self.huawei_subpass_shading
1602 || self.img_filter_cubic
1603 || self.img_format_pvrtc
1604 || self.img_relaxed_line_rasterization
1605 || self.intel_performance_query
1606 || self.intel_shader_integer_functions2
1607 || self.msft_layered_driver
1608 || self.nvx_binary_import
1609 || self.nvx_image_view_handle
1610 || self.nvx_multiview_per_view_attributes
1611 || self.nv_acquire_winrt_display
1612 || self.nv_clip_space_w_scaling
1613 || self.nv_compute_shader_derivatives
1614 || self.nv_cooperative_matrix
1615 || self.nv_copy_memory_indirect
1616 || self.nv_corner_sampled_image
1617 || self.nv_coverage_reduction_mode
1618 || self.nv_cuda_kernel_launch
1619 || self.nv_dedicated_allocation
1620 || self.nv_dedicated_allocation_image_aliasing
1621 || self.nv_descriptor_pool_overallocation
1622 || self.nv_device_diagnostic_checkpoints
1623 || self.nv_device_diagnostics_config
1624 || self.nv_device_generated_commands
1625 || self.nv_device_generated_commands_compute
1626 || self.nv_displacement_micromap
1627 || self.nv_extended_sparse_address_space
1628 || self.nv_external_memory
1629 || self.nv_external_memory_rdma
1630 || self.nv_external_memory_win32
1631 || self.nv_fill_rectangle
1632 || self.nv_fragment_coverage_to_color
1633 || self.nv_fragment_shader_barycentric
1634 || self.nv_fragment_shading_rate_enums
1635 || self.nv_framebuffer_mixed_samples
1636 || self.nv_geometry_shader_passthrough
1637 || self.nv_glsl_shader
1638 || self.nv_inherited_viewport_scissor
1639 || self.nv_linear_color_attachment
1640 || self.nv_low_latency
1641 || self.nv_low_latency2
1642 || self.nv_memory_decompression
1643 || self.nv_mesh_shader
1644 || self.nv_optical_flow
1645 || self.nv_per_stage_descriptor_set
1646 || self.nv_present_barrier
1647 || self.nv_raw_access_chains
1648 || self.nv_ray_tracing
1649 || self.nv_ray_tracing_invocation_reorder
1650 || self.nv_ray_tracing_motion_blur
1651 || self.nv_ray_tracing_validation
1652 || self.nv_representative_fragment_test
1653 || self.nv_sample_mask_override_coverage
1654 || self.nv_scissor_exclusive
1655 || self.nv_shader_atomic_float16_vector
1656 || self.nv_shader_image_footprint
1657 || self.nv_shader_sm_builtins
1658 || self.nv_shader_subgroup_partitioned
1659 || self.nv_shading_rate_image
1660 || self.nv_viewport_array2
1661 || self.nv_viewport_swizzle
1662 || self.nv_win32_keyed_mutex
1663 || self.qcom_filter_cubic_clamp
1664 || self.qcom_filter_cubic_weights
1665 || self.qcom_fragment_density_map_offset
1666 || self.qcom_image_processing
1667 || self.qcom_image_processing2
1668 || self.qcom_multiview_per_view_render_areas
1669 || self.qcom_multiview_per_view_viewports
1670 || self.qcom_render_pass_shader_resolve
1671 || self.qcom_render_pass_store_ops
1672 || self.qcom_render_pass_transform
1673 || self.qcom_rotated_copy_commands
1674 || self.qcom_tile_properties
1675 || self.qcom_ycbcr_degamma
1676 || self.qnx_external_memory_screen_buffer
1677 || self.sec_amigo_profiling
1678 || self.valve_descriptor_set_host_mapping
1679 || self.valve_mutable_descriptor_type)
1680 }
1681 #[doc = r" Returns whether any members are set in both `self` and `other`."]
1682 #[inline]
1683 pub const fn intersects(&self, other: &Self) -> bool {
1684 (self.khr_16bit_storage && other.khr_16bit_storage)
1685 || (self.khr_8bit_storage && other.khr_8bit_storage)
1686 || (self.khr_acceleration_structure && other.khr_acceleration_structure)
1687 || (self.khr_bind_memory2 && other.khr_bind_memory2)
1688 || (self.khr_buffer_device_address && other.khr_buffer_device_address)
1689 || (self.khr_calibrated_timestamps && other.khr_calibrated_timestamps)
1690 || (self.khr_cooperative_matrix && other.khr_cooperative_matrix)
1691 || (self.khr_copy_commands2 && other.khr_copy_commands2)
1692 || (self.khr_create_renderpass2 && other.khr_create_renderpass2)
1693 || (self.khr_dedicated_allocation && other.khr_dedicated_allocation)
1694 || (self.khr_deferred_host_operations && other.khr_deferred_host_operations)
1695 || (self.khr_depth_stencil_resolve && other.khr_depth_stencil_resolve)
1696 || (self.khr_descriptor_update_template && other.khr_descriptor_update_template)
1697 || (self.khr_device_group && other.khr_device_group)
1698 || (self.khr_display_swapchain && other.khr_display_swapchain)
1699 || (self.khr_draw_indirect_count && other.khr_draw_indirect_count)
1700 || (self.khr_driver_properties && other.khr_driver_properties)
1701 || (self.khr_dynamic_rendering && other.khr_dynamic_rendering)
1702 || (self.khr_dynamic_rendering_local_read && other.khr_dynamic_rendering_local_read)
1703 || (self.khr_external_fence && other.khr_external_fence)
1704 || (self.khr_external_fence_fd && other.khr_external_fence_fd)
1705 || (self.khr_external_fence_win32 && other.khr_external_fence_win32)
1706 || (self.khr_external_memory && other.khr_external_memory)
1707 || (self.khr_external_memory_fd && other.khr_external_memory_fd)
1708 || (self.khr_external_memory_win32 && other.khr_external_memory_win32)
1709 || (self.khr_external_semaphore && other.khr_external_semaphore)
1710 || (self.khr_external_semaphore_fd && other.khr_external_semaphore_fd)
1711 || (self.khr_external_semaphore_win32 && other.khr_external_semaphore_win32)
1712 || (self.khr_format_feature_flags2 && other.khr_format_feature_flags2)
1713 || (self.khr_fragment_shader_barycentric && other.khr_fragment_shader_barycentric)
1714 || (self.khr_fragment_shading_rate && other.khr_fragment_shading_rate)
1715 || (self.khr_get_memory_requirements2 && other.khr_get_memory_requirements2)
1716 || (self.khr_global_priority && other.khr_global_priority)
1717 || (self.khr_image_format_list && other.khr_image_format_list)
1718 || (self.khr_imageless_framebuffer && other.khr_imageless_framebuffer)
1719 || (self.khr_incremental_present && other.khr_incremental_present)
1720 || (self.khr_index_type_uint8 && other.khr_index_type_uint8)
1721 || (self.khr_line_rasterization && other.khr_line_rasterization)
1722 || (self.khr_load_store_op_none && other.khr_load_store_op_none)
1723 || (self.khr_maintenance1 && other.khr_maintenance1)
1724 || (self.khr_maintenance2 && other.khr_maintenance2)
1725 || (self.khr_maintenance3 && other.khr_maintenance3)
1726 || (self.khr_maintenance4 && other.khr_maintenance4)
1727 || (self.khr_maintenance5 && other.khr_maintenance5)
1728 || (self.khr_maintenance6 && other.khr_maintenance6)
1729 || (self.khr_map_memory2 && other.khr_map_memory2)
1730 || (self.khr_multiview && other.khr_multiview)
1731 || (self.khr_performance_query && other.khr_performance_query)
1732 || (self.khr_pipeline_executable_properties && other.khr_pipeline_executable_properties)
1733 || (self.khr_pipeline_library && other.khr_pipeline_library)
1734 || (self.khr_portability_subset && other.khr_portability_subset)
1735 || (self.khr_present_id && other.khr_present_id)
1736 || (self.khr_present_wait && other.khr_present_wait)
1737 || (self.khr_push_descriptor && other.khr_push_descriptor)
1738 || (self.khr_ray_query && other.khr_ray_query)
1739 || (self.khr_ray_tracing_maintenance1 && other.khr_ray_tracing_maintenance1)
1740 || (self.khr_ray_tracing_pipeline && other.khr_ray_tracing_pipeline)
1741 || (self.khr_ray_tracing_position_fetch && other.khr_ray_tracing_position_fetch)
1742 || (self.khr_relaxed_block_layout && other.khr_relaxed_block_layout)
1743 || (self.khr_sampler_mirror_clamp_to_edge && other.khr_sampler_mirror_clamp_to_edge)
1744 || (self.khr_sampler_ycbcr_conversion && other.khr_sampler_ycbcr_conversion)
1745 || (self.khr_separate_depth_stencil_layouts && other.khr_separate_depth_stencil_layouts)
1746 || (self.khr_shader_atomic_int64 && other.khr_shader_atomic_int64)
1747 || (self.khr_shader_clock && other.khr_shader_clock)
1748 || (self.khr_shader_draw_parameters && other.khr_shader_draw_parameters)
1749 || (self.khr_shader_expect_assume && other.khr_shader_expect_assume)
1750 || (self.khr_shader_float16_int8 && other.khr_shader_float16_int8)
1751 || (self.khr_shader_float_controls && other.khr_shader_float_controls)
1752 || (self.khr_shader_float_controls2 && other.khr_shader_float_controls2)
1753 || (self.khr_shader_integer_dot_product && other.khr_shader_integer_dot_product)
1754 || (self.khr_shader_maximal_reconvergence && other.khr_shader_maximal_reconvergence)
1755 || (self.khr_shader_non_semantic_info && other.khr_shader_non_semantic_info)
1756 || (self.khr_shader_quad_control && other.khr_shader_quad_control)
1757 || (self.khr_shader_subgroup_extended_types && other.khr_shader_subgroup_extended_types)
1758 || (self.khr_shader_subgroup_rotate && other.khr_shader_subgroup_rotate)
1759 || (self.khr_shader_subgroup_uniform_control_flow
1760 && other.khr_shader_subgroup_uniform_control_flow)
1761 || (self.khr_shader_terminate_invocation && other.khr_shader_terminate_invocation)
1762 || (self.khr_shared_presentable_image && other.khr_shared_presentable_image)
1763 || (self.khr_spirv_1_4 && other.khr_spirv_1_4)
1764 || (self.khr_storage_buffer_storage_class && other.khr_storage_buffer_storage_class)
1765 || (self.khr_swapchain && other.khr_swapchain)
1766 || (self.khr_swapchain_mutable_format && other.khr_swapchain_mutable_format)
1767 || (self.khr_synchronization2 && other.khr_synchronization2)
1768 || (self.khr_timeline_semaphore && other.khr_timeline_semaphore)
1769 || (self.khr_uniform_buffer_standard_layout && other.khr_uniform_buffer_standard_layout)
1770 || (self.khr_variable_pointers && other.khr_variable_pointers)
1771 || (self.khr_vertex_attribute_divisor && other.khr_vertex_attribute_divisor)
1772 || (self.khr_video_decode_av1 && other.khr_video_decode_av1)
1773 || (self.khr_video_decode_h264 && other.khr_video_decode_h264)
1774 || (self.khr_video_decode_h265 && other.khr_video_decode_h265)
1775 || (self.khr_video_decode_queue && other.khr_video_decode_queue)
1776 || (self.khr_video_encode_h264 && other.khr_video_encode_h264)
1777 || (self.khr_video_encode_h265 && other.khr_video_encode_h265)
1778 || (self.khr_video_encode_queue && other.khr_video_encode_queue)
1779 || (self.khr_video_maintenance1 && other.khr_video_maintenance1)
1780 || (self.khr_video_queue && other.khr_video_queue)
1781 || (self.khr_vulkan_memory_model && other.khr_vulkan_memory_model)
1782 || (self.khr_win32_keyed_mutex && other.khr_win32_keyed_mutex)
1783 || (self.khr_workgroup_memory_explicit_layout
1784 && other.khr_workgroup_memory_explicit_layout)
1785 || (self.khr_zero_initialize_workgroup_memory
1786 && other.khr_zero_initialize_workgroup_memory)
1787 || (self.ext_4444_formats && other.ext_4444_formats)
1788 || (self.ext_astc_decode_mode && other.ext_astc_decode_mode)
1789 || (self.ext_attachment_feedback_loop_dynamic_state
1790 && other.ext_attachment_feedback_loop_dynamic_state)
1791 || (self.ext_attachment_feedback_loop_layout
1792 && other.ext_attachment_feedback_loop_layout)
1793 || (self.ext_blend_operation_advanced && other.ext_blend_operation_advanced)
1794 || (self.ext_border_color_swizzle && other.ext_border_color_swizzle)
1795 || (self.ext_buffer_device_address && other.ext_buffer_device_address)
1796 || (self.ext_calibrated_timestamps && other.ext_calibrated_timestamps)
1797 || (self.ext_color_write_enable && other.ext_color_write_enable)
1798 || (self.ext_conditional_rendering && other.ext_conditional_rendering)
1799 || (self.ext_conservative_rasterization && other.ext_conservative_rasterization)
1800 || (self.ext_custom_border_color && other.ext_custom_border_color)
1801 || (self.ext_debug_marker && other.ext_debug_marker)
1802 || (self.ext_depth_bias_control && other.ext_depth_bias_control)
1803 || (self.ext_depth_clamp_zero_one && other.ext_depth_clamp_zero_one)
1804 || (self.ext_depth_clip_control && other.ext_depth_clip_control)
1805 || (self.ext_depth_clip_enable && other.ext_depth_clip_enable)
1806 || (self.ext_depth_range_unrestricted && other.ext_depth_range_unrestricted)
1807 || (self.ext_descriptor_buffer && other.ext_descriptor_buffer)
1808 || (self.ext_descriptor_indexing && other.ext_descriptor_indexing)
1809 || (self.ext_device_address_binding_report && other.ext_device_address_binding_report)
1810 || (self.ext_device_fault && other.ext_device_fault)
1811 || (self.ext_device_memory_report && other.ext_device_memory_report)
1812 || (self.ext_discard_rectangles && other.ext_discard_rectangles)
1813 || (self.ext_display_control && other.ext_display_control)
1814 || (self.ext_dynamic_rendering_unused_attachments
1815 && other.ext_dynamic_rendering_unused_attachments)
1816 || (self.ext_extended_dynamic_state && other.ext_extended_dynamic_state)
1817 || (self.ext_extended_dynamic_state2 && other.ext_extended_dynamic_state2)
1818 || (self.ext_extended_dynamic_state3 && other.ext_extended_dynamic_state3)
1819 || (self.ext_external_memory_acquire_unmodified
1820 && other.ext_external_memory_acquire_unmodified)
1821 || (self.ext_external_memory_dma_buf && other.ext_external_memory_dma_buf)
1822 || (self.ext_external_memory_host && other.ext_external_memory_host)
1823 || (self.ext_filter_cubic && other.ext_filter_cubic)
1824 || (self.ext_fragment_density_map && other.ext_fragment_density_map)
1825 || (self.ext_fragment_density_map2 && other.ext_fragment_density_map2)
1826 || (self.ext_fragment_shader_interlock && other.ext_fragment_shader_interlock)
1827 || (self.ext_frame_boundary && other.ext_frame_boundary)
1828 || (self.ext_full_screen_exclusive && other.ext_full_screen_exclusive)
1829 || (self.ext_global_priority && other.ext_global_priority)
1830 || (self.ext_global_priority_query && other.ext_global_priority_query)
1831 || (self.ext_graphics_pipeline_library && other.ext_graphics_pipeline_library)
1832 || (self.ext_hdr_metadata && other.ext_hdr_metadata)
1833 || (self.ext_host_image_copy && other.ext_host_image_copy)
1834 || (self.ext_host_query_reset && other.ext_host_query_reset)
1835 || (self.ext_image_2d_view_of_3d && other.ext_image_2d_view_of_3d)
1836 || (self.ext_image_compression_control && other.ext_image_compression_control)
1837 || (self.ext_image_compression_control_swapchain
1838 && other.ext_image_compression_control_swapchain)
1839 || (self.ext_image_drm_format_modifier && other.ext_image_drm_format_modifier)
1840 || (self.ext_image_robustness && other.ext_image_robustness)
1841 || (self.ext_image_sliced_view_of_3d && other.ext_image_sliced_view_of_3d)
1842 || (self.ext_image_view_min_lod && other.ext_image_view_min_lod)
1843 || (self.ext_index_type_uint8 && other.ext_index_type_uint8)
1844 || (self.ext_inline_uniform_block && other.ext_inline_uniform_block)
1845 || (self.ext_legacy_dithering && other.ext_legacy_dithering)
1846 || (self.ext_line_rasterization && other.ext_line_rasterization)
1847 || (self.ext_load_store_op_none && other.ext_load_store_op_none)
1848 || (self.ext_map_memory_placed && other.ext_map_memory_placed)
1849 || (self.ext_memory_budget && other.ext_memory_budget)
1850 || (self.ext_memory_priority && other.ext_memory_priority)
1851 || (self.ext_mesh_shader && other.ext_mesh_shader)
1852 || (self.ext_metal_objects && other.ext_metal_objects)
1853 || (self.ext_multi_draw && other.ext_multi_draw)
1854 || (self.ext_multisampled_render_to_single_sampled
1855 && other.ext_multisampled_render_to_single_sampled)
1856 || (self.ext_mutable_descriptor_type && other.ext_mutable_descriptor_type)
1857 || (self.ext_nested_command_buffer && other.ext_nested_command_buffer)
1858 || (self.ext_non_seamless_cube_map && other.ext_non_seamless_cube_map)
1859 || (self.ext_opacity_micromap && other.ext_opacity_micromap)
1860 || (self.ext_pageable_device_local_memory && other.ext_pageable_device_local_memory)
1861 || (self.ext_pci_bus_info && other.ext_pci_bus_info)
1862 || (self.ext_physical_device_drm && other.ext_physical_device_drm)
1863 || (self.ext_pipeline_creation_cache_control
1864 && other.ext_pipeline_creation_cache_control)
1865 || (self.ext_pipeline_creation_feedback && other.ext_pipeline_creation_feedback)
1866 || (self.ext_pipeline_library_group_handles && other.ext_pipeline_library_group_handles)
1867 || (self.ext_pipeline_properties && other.ext_pipeline_properties)
1868 || (self.ext_pipeline_protected_access && other.ext_pipeline_protected_access)
1869 || (self.ext_pipeline_robustness && other.ext_pipeline_robustness)
1870 || (self.ext_post_depth_coverage && other.ext_post_depth_coverage)
1871 || (self.ext_primitive_topology_list_restart
1872 && other.ext_primitive_topology_list_restart)
1873 || (self.ext_primitives_generated_query && other.ext_primitives_generated_query)
1874 || (self.ext_private_data && other.ext_private_data)
1875 || (self.ext_provoking_vertex && other.ext_provoking_vertex)
1876 || (self.ext_queue_family_foreign && other.ext_queue_family_foreign)
1877 || (self.ext_rasterization_order_attachment_access
1878 && other.ext_rasterization_order_attachment_access)
1879 || (self.ext_rgba10x6_formats && other.ext_rgba10x6_formats)
1880 || (self.ext_robustness2 && other.ext_robustness2)
1881 || (self.ext_sample_locations && other.ext_sample_locations)
1882 || (self.ext_sampler_filter_minmax && other.ext_sampler_filter_minmax)
1883 || (self.ext_scalar_block_layout && other.ext_scalar_block_layout)
1884 || (self.ext_separate_stencil_usage && other.ext_separate_stencil_usage)
1885 || (self.ext_shader_atomic_float && other.ext_shader_atomic_float)
1886 || (self.ext_shader_atomic_float2 && other.ext_shader_atomic_float2)
1887 || (self.ext_shader_demote_to_helper_invocation
1888 && other.ext_shader_demote_to_helper_invocation)
1889 || (self.ext_shader_image_atomic_int64 && other.ext_shader_image_atomic_int64)
1890 || (self.ext_shader_module_identifier && other.ext_shader_module_identifier)
1891 || (self.ext_shader_object && other.ext_shader_object)
1892 || (self.ext_shader_stencil_export && other.ext_shader_stencil_export)
1893 || (self.ext_shader_subgroup_ballot && other.ext_shader_subgroup_ballot)
1894 || (self.ext_shader_subgroup_vote && other.ext_shader_subgroup_vote)
1895 || (self.ext_shader_tile_image && other.ext_shader_tile_image)
1896 || (self.ext_shader_viewport_index_layer && other.ext_shader_viewport_index_layer)
1897 || (self.ext_subgroup_size_control && other.ext_subgroup_size_control)
1898 || (self.ext_subpass_merge_feedback && other.ext_subpass_merge_feedback)
1899 || (self.ext_swapchain_maintenance1 && other.ext_swapchain_maintenance1)
1900 || (self.ext_texel_buffer_alignment && other.ext_texel_buffer_alignment)
1901 || (self.ext_texture_compression_astc_hdr && other.ext_texture_compression_astc_hdr)
1902 || (self.ext_tooling_info && other.ext_tooling_info)
1903 || (self.ext_transform_feedback && other.ext_transform_feedback)
1904 || (self.ext_validation_cache && other.ext_validation_cache)
1905 || (self.ext_vertex_attribute_divisor && other.ext_vertex_attribute_divisor)
1906 || (self.ext_vertex_input_dynamic_state && other.ext_vertex_input_dynamic_state)
1907 || (self.ext_ycbcr_2plane_444_formats && other.ext_ycbcr_2plane_444_formats)
1908 || (self.ext_ycbcr_image_arrays && other.ext_ycbcr_image_arrays)
1909 || (self.amdx_shader_enqueue && other.amdx_shader_enqueue)
1910 || (self.amd_buffer_marker && other.amd_buffer_marker)
1911 || (self.amd_device_coherent_memory && other.amd_device_coherent_memory)
1912 || (self.amd_display_native_hdr && other.amd_display_native_hdr)
1913 || (self.amd_draw_indirect_count && other.amd_draw_indirect_count)
1914 || (self.amd_gcn_shader && other.amd_gcn_shader)
1915 || (self.amd_gpu_shader_half_float && other.amd_gpu_shader_half_float)
1916 || (self.amd_gpu_shader_int16 && other.amd_gpu_shader_int16)
1917 || (self.amd_memory_overallocation_behavior && other.amd_memory_overallocation_behavior)
1918 || (self.amd_mixed_attachment_samples && other.amd_mixed_attachment_samples)
1919 || (self.amd_pipeline_compiler_control && other.amd_pipeline_compiler_control)
1920 || (self.amd_rasterization_order && other.amd_rasterization_order)
1921 || (self.amd_shader_ballot && other.amd_shader_ballot)
1922 || (self.amd_shader_core_properties && other.amd_shader_core_properties)
1923 || (self.amd_shader_core_properties2 && other.amd_shader_core_properties2)
1924 || (self.amd_shader_early_and_late_fragment_tests
1925 && other.amd_shader_early_and_late_fragment_tests)
1926 || (self.amd_shader_explicit_vertex_parameter
1927 && other.amd_shader_explicit_vertex_parameter)
1928 || (self.amd_shader_fragment_mask && other.amd_shader_fragment_mask)
1929 || (self.amd_shader_image_load_store_lod && other.amd_shader_image_load_store_lod)
1930 || (self.amd_shader_info && other.amd_shader_info)
1931 || (self.amd_shader_trinary_minmax && other.amd_shader_trinary_minmax)
1932 || (self.amd_texture_gather_bias_lod && other.amd_texture_gather_bias_lod)
1933 || (self.android_external_format_resolve && other.android_external_format_resolve)
1934 || (self.android_external_memory_android_hardware_buffer
1935 && other.android_external_memory_android_hardware_buffer)
1936 || (self.arm_rasterization_order_attachment_access
1937 && other.arm_rasterization_order_attachment_access)
1938 || (self.arm_render_pass_striped && other.arm_render_pass_striped)
1939 || (self.arm_scheduling_controls && other.arm_scheduling_controls)
1940 || (self.arm_shader_core_builtins && other.arm_shader_core_builtins)
1941 || (self.arm_shader_core_properties && other.arm_shader_core_properties)
1942 || (self.fuchsia_buffer_collection && other.fuchsia_buffer_collection)
1943 || (self.fuchsia_external_memory && other.fuchsia_external_memory)
1944 || (self.fuchsia_external_semaphore && other.fuchsia_external_semaphore)
1945 || (self.ggp_frame_token && other.ggp_frame_token)
1946 || (self.google_decorate_string && other.google_decorate_string)
1947 || (self.google_display_timing && other.google_display_timing)
1948 || (self.google_hlsl_functionality1 && other.google_hlsl_functionality1)
1949 || (self.google_user_type && other.google_user_type)
1950 || (self.huawei_cluster_culling_shader && other.huawei_cluster_culling_shader)
1951 || (self.huawei_invocation_mask && other.huawei_invocation_mask)
1952 || (self.huawei_subpass_shading && other.huawei_subpass_shading)
1953 || (self.img_filter_cubic && other.img_filter_cubic)
1954 || (self.img_format_pvrtc && other.img_format_pvrtc)
1955 || (self.img_relaxed_line_rasterization && other.img_relaxed_line_rasterization)
1956 || (self.intel_performance_query && other.intel_performance_query)
1957 || (self.intel_shader_integer_functions2 && other.intel_shader_integer_functions2)
1958 || (self.msft_layered_driver && other.msft_layered_driver)
1959 || (self.nvx_binary_import && other.nvx_binary_import)
1960 || (self.nvx_image_view_handle && other.nvx_image_view_handle)
1961 || (self.nvx_multiview_per_view_attributes && other.nvx_multiview_per_view_attributes)
1962 || (self.nv_acquire_winrt_display && other.nv_acquire_winrt_display)
1963 || (self.nv_clip_space_w_scaling && other.nv_clip_space_w_scaling)
1964 || (self.nv_compute_shader_derivatives && other.nv_compute_shader_derivatives)
1965 || (self.nv_cooperative_matrix && other.nv_cooperative_matrix)
1966 || (self.nv_copy_memory_indirect && other.nv_copy_memory_indirect)
1967 || (self.nv_corner_sampled_image && other.nv_corner_sampled_image)
1968 || (self.nv_coverage_reduction_mode && other.nv_coverage_reduction_mode)
1969 || (self.nv_cuda_kernel_launch && other.nv_cuda_kernel_launch)
1970 || (self.nv_dedicated_allocation && other.nv_dedicated_allocation)
1971 || (self.nv_dedicated_allocation_image_aliasing
1972 && other.nv_dedicated_allocation_image_aliasing)
1973 || (self.nv_descriptor_pool_overallocation && other.nv_descriptor_pool_overallocation)
1974 || (self.nv_device_diagnostic_checkpoints && other.nv_device_diagnostic_checkpoints)
1975 || (self.nv_device_diagnostics_config && other.nv_device_diagnostics_config)
1976 || (self.nv_device_generated_commands && other.nv_device_generated_commands)
1977 || (self.nv_device_generated_commands_compute
1978 && other.nv_device_generated_commands_compute)
1979 || (self.nv_displacement_micromap && other.nv_displacement_micromap)
1980 || (self.nv_extended_sparse_address_space && other.nv_extended_sparse_address_space)
1981 || (self.nv_external_memory && other.nv_external_memory)
1982 || (self.nv_external_memory_rdma && other.nv_external_memory_rdma)
1983 || (self.nv_external_memory_win32 && other.nv_external_memory_win32)
1984 || (self.nv_fill_rectangle && other.nv_fill_rectangle)
1985 || (self.nv_fragment_coverage_to_color && other.nv_fragment_coverage_to_color)
1986 || (self.nv_fragment_shader_barycentric && other.nv_fragment_shader_barycentric)
1987 || (self.nv_fragment_shading_rate_enums && other.nv_fragment_shading_rate_enums)
1988 || (self.nv_framebuffer_mixed_samples && other.nv_framebuffer_mixed_samples)
1989 || (self.nv_geometry_shader_passthrough && other.nv_geometry_shader_passthrough)
1990 || (self.nv_glsl_shader && other.nv_glsl_shader)
1991 || (self.nv_inherited_viewport_scissor && other.nv_inherited_viewport_scissor)
1992 || (self.nv_linear_color_attachment && other.nv_linear_color_attachment)
1993 || (self.nv_low_latency && other.nv_low_latency)
1994 || (self.nv_low_latency2 && other.nv_low_latency2)
1995 || (self.nv_memory_decompression && other.nv_memory_decompression)
1996 || (self.nv_mesh_shader && other.nv_mesh_shader)
1997 || (self.nv_optical_flow && other.nv_optical_flow)
1998 || (self.nv_per_stage_descriptor_set && other.nv_per_stage_descriptor_set)
1999 || (self.nv_present_barrier && other.nv_present_barrier)
2000 || (self.nv_raw_access_chains && other.nv_raw_access_chains)
2001 || (self.nv_ray_tracing && other.nv_ray_tracing)
2002 || (self.nv_ray_tracing_invocation_reorder && other.nv_ray_tracing_invocation_reorder)
2003 || (self.nv_ray_tracing_motion_blur && other.nv_ray_tracing_motion_blur)
2004 || (self.nv_ray_tracing_validation && other.nv_ray_tracing_validation)
2005 || (self.nv_representative_fragment_test && other.nv_representative_fragment_test)
2006 || (self.nv_sample_mask_override_coverage && other.nv_sample_mask_override_coverage)
2007 || (self.nv_scissor_exclusive && other.nv_scissor_exclusive)
2008 || (self.nv_shader_atomic_float16_vector && other.nv_shader_atomic_float16_vector)
2009 || (self.nv_shader_image_footprint && other.nv_shader_image_footprint)
2010 || (self.nv_shader_sm_builtins && other.nv_shader_sm_builtins)
2011 || (self.nv_shader_subgroup_partitioned && other.nv_shader_subgroup_partitioned)
2012 || (self.nv_shading_rate_image && other.nv_shading_rate_image)
2013 || (self.nv_viewport_array2 && other.nv_viewport_array2)
2014 || (self.nv_viewport_swizzle && other.nv_viewport_swizzle)
2015 || (self.nv_win32_keyed_mutex && other.nv_win32_keyed_mutex)
2016 || (self.qcom_filter_cubic_clamp && other.qcom_filter_cubic_clamp)
2017 || (self.qcom_filter_cubic_weights && other.qcom_filter_cubic_weights)
2018 || (self.qcom_fragment_density_map_offset && other.qcom_fragment_density_map_offset)
2019 || (self.qcom_image_processing && other.qcom_image_processing)
2020 || (self.qcom_image_processing2 && other.qcom_image_processing2)
2021 || (self.qcom_multiview_per_view_render_areas
2022 && other.qcom_multiview_per_view_render_areas)
2023 || (self.qcom_multiview_per_view_viewports && other.qcom_multiview_per_view_viewports)
2024 || (self.qcom_render_pass_shader_resolve && other.qcom_render_pass_shader_resolve)
2025 || (self.qcom_render_pass_store_ops && other.qcom_render_pass_store_ops)
2026 || (self.qcom_render_pass_transform && other.qcom_render_pass_transform)
2027 || (self.qcom_rotated_copy_commands && other.qcom_rotated_copy_commands)
2028 || (self.qcom_tile_properties && other.qcom_tile_properties)
2029 || (self.qcom_ycbcr_degamma && other.qcom_ycbcr_degamma)
2030 || (self.qnx_external_memory_screen_buffer && other.qnx_external_memory_screen_buffer)
2031 || (self.sec_amigo_profiling && other.sec_amigo_profiling)
2032 || (self.valve_descriptor_set_host_mapping && other.valve_descriptor_set_host_mapping)
2033 || (self.valve_mutable_descriptor_type && other.valve_mutable_descriptor_type)
2034 }
2035 #[doc = r" Returns whether all members in `other` are set in `self`."]
2036 #[inline]
2037 pub const fn contains(&self, other: &Self) -> bool {
2038 (self.khr_16bit_storage || !other.khr_16bit_storage)
2039 && (self.khr_8bit_storage || !other.khr_8bit_storage)
2040 && (self.khr_acceleration_structure || !other.khr_acceleration_structure)
2041 && (self.khr_bind_memory2 || !other.khr_bind_memory2)
2042 && (self.khr_buffer_device_address || !other.khr_buffer_device_address)
2043 && (self.khr_calibrated_timestamps || !other.khr_calibrated_timestamps)
2044 && (self.khr_cooperative_matrix || !other.khr_cooperative_matrix)
2045 && (self.khr_copy_commands2 || !other.khr_copy_commands2)
2046 && (self.khr_create_renderpass2 || !other.khr_create_renderpass2)
2047 && (self.khr_dedicated_allocation || !other.khr_dedicated_allocation)
2048 && (self.khr_deferred_host_operations || !other.khr_deferred_host_operations)
2049 && (self.khr_depth_stencil_resolve || !other.khr_depth_stencil_resolve)
2050 && (self.khr_descriptor_update_template || !other.khr_descriptor_update_template)
2051 && (self.khr_device_group || !other.khr_device_group)
2052 && (self.khr_display_swapchain || !other.khr_display_swapchain)
2053 && (self.khr_draw_indirect_count || !other.khr_draw_indirect_count)
2054 && (self.khr_driver_properties || !other.khr_driver_properties)
2055 && (self.khr_dynamic_rendering || !other.khr_dynamic_rendering)
2056 && (self.khr_dynamic_rendering_local_read || !other.khr_dynamic_rendering_local_read)
2057 && (self.khr_external_fence || !other.khr_external_fence)
2058 && (self.khr_external_fence_fd || !other.khr_external_fence_fd)
2059 && (self.khr_external_fence_win32 || !other.khr_external_fence_win32)
2060 && (self.khr_external_memory || !other.khr_external_memory)
2061 && (self.khr_external_memory_fd || !other.khr_external_memory_fd)
2062 && (self.khr_external_memory_win32 || !other.khr_external_memory_win32)
2063 && (self.khr_external_semaphore || !other.khr_external_semaphore)
2064 && (self.khr_external_semaphore_fd || !other.khr_external_semaphore_fd)
2065 && (self.khr_external_semaphore_win32 || !other.khr_external_semaphore_win32)
2066 && (self.khr_format_feature_flags2 || !other.khr_format_feature_flags2)
2067 && (self.khr_fragment_shader_barycentric || !other.khr_fragment_shader_barycentric)
2068 && (self.khr_fragment_shading_rate || !other.khr_fragment_shading_rate)
2069 && (self.khr_get_memory_requirements2 || !other.khr_get_memory_requirements2)
2070 && (self.khr_global_priority || !other.khr_global_priority)
2071 && (self.khr_image_format_list || !other.khr_image_format_list)
2072 && (self.khr_imageless_framebuffer || !other.khr_imageless_framebuffer)
2073 && (self.khr_incremental_present || !other.khr_incremental_present)
2074 && (self.khr_index_type_uint8 || !other.khr_index_type_uint8)
2075 && (self.khr_line_rasterization || !other.khr_line_rasterization)
2076 && (self.khr_load_store_op_none || !other.khr_load_store_op_none)
2077 && (self.khr_maintenance1 || !other.khr_maintenance1)
2078 && (self.khr_maintenance2 || !other.khr_maintenance2)
2079 && (self.khr_maintenance3 || !other.khr_maintenance3)
2080 && (self.khr_maintenance4 || !other.khr_maintenance4)
2081 && (self.khr_maintenance5 || !other.khr_maintenance5)
2082 && (self.khr_maintenance6 || !other.khr_maintenance6)
2083 && (self.khr_map_memory2 || !other.khr_map_memory2)
2084 && (self.khr_multiview || !other.khr_multiview)
2085 && (self.khr_performance_query || !other.khr_performance_query)
2086 && (self.khr_pipeline_executable_properties
2087 || !other.khr_pipeline_executable_properties)
2088 && (self.khr_pipeline_library || !other.khr_pipeline_library)
2089 && (self.khr_portability_subset || !other.khr_portability_subset)
2090 && (self.khr_present_id || !other.khr_present_id)
2091 && (self.khr_present_wait || !other.khr_present_wait)
2092 && (self.khr_push_descriptor || !other.khr_push_descriptor)
2093 && (self.khr_ray_query || !other.khr_ray_query)
2094 && (self.khr_ray_tracing_maintenance1 || !other.khr_ray_tracing_maintenance1)
2095 && (self.khr_ray_tracing_pipeline || !other.khr_ray_tracing_pipeline)
2096 && (self.khr_ray_tracing_position_fetch || !other.khr_ray_tracing_position_fetch)
2097 && (self.khr_relaxed_block_layout || !other.khr_relaxed_block_layout)
2098 && (self.khr_sampler_mirror_clamp_to_edge || !other.khr_sampler_mirror_clamp_to_edge)
2099 && (self.khr_sampler_ycbcr_conversion || !other.khr_sampler_ycbcr_conversion)
2100 && (self.khr_separate_depth_stencil_layouts
2101 || !other.khr_separate_depth_stencil_layouts)
2102 && (self.khr_shader_atomic_int64 || !other.khr_shader_atomic_int64)
2103 && (self.khr_shader_clock || !other.khr_shader_clock)
2104 && (self.khr_shader_draw_parameters || !other.khr_shader_draw_parameters)
2105 && (self.khr_shader_expect_assume || !other.khr_shader_expect_assume)
2106 && (self.khr_shader_float16_int8 || !other.khr_shader_float16_int8)
2107 && (self.khr_shader_float_controls || !other.khr_shader_float_controls)
2108 && (self.khr_shader_float_controls2 || !other.khr_shader_float_controls2)
2109 && (self.khr_shader_integer_dot_product || !other.khr_shader_integer_dot_product)
2110 && (self.khr_shader_maximal_reconvergence || !other.khr_shader_maximal_reconvergence)
2111 && (self.khr_shader_non_semantic_info || !other.khr_shader_non_semantic_info)
2112 && (self.khr_shader_quad_control || !other.khr_shader_quad_control)
2113 && (self.khr_shader_subgroup_extended_types
2114 || !other.khr_shader_subgroup_extended_types)
2115 && (self.khr_shader_subgroup_rotate || !other.khr_shader_subgroup_rotate)
2116 && (self.khr_shader_subgroup_uniform_control_flow
2117 || !other.khr_shader_subgroup_uniform_control_flow)
2118 && (self.khr_shader_terminate_invocation || !other.khr_shader_terminate_invocation)
2119 && (self.khr_shared_presentable_image || !other.khr_shared_presentable_image)
2120 && (self.khr_spirv_1_4 || !other.khr_spirv_1_4)
2121 && (self.khr_storage_buffer_storage_class || !other.khr_storage_buffer_storage_class)
2122 && (self.khr_swapchain || !other.khr_swapchain)
2123 && (self.khr_swapchain_mutable_format || !other.khr_swapchain_mutable_format)
2124 && (self.khr_synchronization2 || !other.khr_synchronization2)
2125 && (self.khr_timeline_semaphore || !other.khr_timeline_semaphore)
2126 && (self.khr_uniform_buffer_standard_layout
2127 || !other.khr_uniform_buffer_standard_layout)
2128 && (self.khr_variable_pointers || !other.khr_variable_pointers)
2129 && (self.khr_vertex_attribute_divisor || !other.khr_vertex_attribute_divisor)
2130 && (self.khr_video_decode_av1 || !other.khr_video_decode_av1)
2131 && (self.khr_video_decode_h264 || !other.khr_video_decode_h264)
2132 && (self.khr_video_decode_h265 || !other.khr_video_decode_h265)
2133 && (self.khr_video_decode_queue || !other.khr_video_decode_queue)
2134 && (self.khr_video_encode_h264 || !other.khr_video_encode_h264)
2135 && (self.khr_video_encode_h265 || !other.khr_video_encode_h265)
2136 && (self.khr_video_encode_queue || !other.khr_video_encode_queue)
2137 && (self.khr_video_maintenance1 || !other.khr_video_maintenance1)
2138 && (self.khr_video_queue || !other.khr_video_queue)
2139 && (self.khr_vulkan_memory_model || !other.khr_vulkan_memory_model)
2140 && (self.khr_win32_keyed_mutex || !other.khr_win32_keyed_mutex)
2141 && (self.khr_workgroup_memory_explicit_layout
2142 || !other.khr_workgroup_memory_explicit_layout)
2143 && (self.khr_zero_initialize_workgroup_memory
2144 || !other.khr_zero_initialize_workgroup_memory)
2145 && (self.ext_4444_formats || !other.ext_4444_formats)
2146 && (self.ext_astc_decode_mode || !other.ext_astc_decode_mode)
2147 && (self.ext_attachment_feedback_loop_dynamic_state
2148 || !other.ext_attachment_feedback_loop_dynamic_state)
2149 && (self.ext_attachment_feedback_loop_layout
2150 || !other.ext_attachment_feedback_loop_layout)
2151 && (self.ext_blend_operation_advanced || !other.ext_blend_operation_advanced)
2152 && (self.ext_border_color_swizzle || !other.ext_border_color_swizzle)
2153 && (self.ext_buffer_device_address || !other.ext_buffer_device_address)
2154 && (self.ext_calibrated_timestamps || !other.ext_calibrated_timestamps)
2155 && (self.ext_color_write_enable || !other.ext_color_write_enable)
2156 && (self.ext_conditional_rendering || !other.ext_conditional_rendering)
2157 && (self.ext_conservative_rasterization || !other.ext_conservative_rasterization)
2158 && (self.ext_custom_border_color || !other.ext_custom_border_color)
2159 && (self.ext_debug_marker || !other.ext_debug_marker)
2160 && (self.ext_depth_bias_control || !other.ext_depth_bias_control)
2161 && (self.ext_depth_clamp_zero_one || !other.ext_depth_clamp_zero_one)
2162 && (self.ext_depth_clip_control || !other.ext_depth_clip_control)
2163 && (self.ext_depth_clip_enable || !other.ext_depth_clip_enable)
2164 && (self.ext_depth_range_unrestricted || !other.ext_depth_range_unrestricted)
2165 && (self.ext_descriptor_buffer || !other.ext_descriptor_buffer)
2166 && (self.ext_descriptor_indexing || !other.ext_descriptor_indexing)
2167 && (self.ext_device_address_binding_report || !other.ext_device_address_binding_report)
2168 && (self.ext_device_fault || !other.ext_device_fault)
2169 && (self.ext_device_memory_report || !other.ext_device_memory_report)
2170 && (self.ext_discard_rectangles || !other.ext_discard_rectangles)
2171 && (self.ext_display_control || !other.ext_display_control)
2172 && (self.ext_dynamic_rendering_unused_attachments
2173 || !other.ext_dynamic_rendering_unused_attachments)
2174 && (self.ext_extended_dynamic_state || !other.ext_extended_dynamic_state)
2175 && (self.ext_extended_dynamic_state2 || !other.ext_extended_dynamic_state2)
2176 && (self.ext_extended_dynamic_state3 || !other.ext_extended_dynamic_state3)
2177 && (self.ext_external_memory_acquire_unmodified
2178 || !other.ext_external_memory_acquire_unmodified)
2179 && (self.ext_external_memory_dma_buf || !other.ext_external_memory_dma_buf)
2180 && (self.ext_external_memory_host || !other.ext_external_memory_host)
2181 && (self.ext_filter_cubic || !other.ext_filter_cubic)
2182 && (self.ext_fragment_density_map || !other.ext_fragment_density_map)
2183 && (self.ext_fragment_density_map2 || !other.ext_fragment_density_map2)
2184 && (self.ext_fragment_shader_interlock || !other.ext_fragment_shader_interlock)
2185 && (self.ext_frame_boundary || !other.ext_frame_boundary)
2186 && (self.ext_full_screen_exclusive || !other.ext_full_screen_exclusive)
2187 && (self.ext_global_priority || !other.ext_global_priority)
2188 && (self.ext_global_priority_query || !other.ext_global_priority_query)
2189 && (self.ext_graphics_pipeline_library || !other.ext_graphics_pipeline_library)
2190 && (self.ext_hdr_metadata || !other.ext_hdr_metadata)
2191 && (self.ext_host_image_copy || !other.ext_host_image_copy)
2192 && (self.ext_host_query_reset || !other.ext_host_query_reset)
2193 && (self.ext_image_2d_view_of_3d || !other.ext_image_2d_view_of_3d)
2194 && (self.ext_image_compression_control || !other.ext_image_compression_control)
2195 && (self.ext_image_compression_control_swapchain
2196 || !other.ext_image_compression_control_swapchain)
2197 && (self.ext_image_drm_format_modifier || !other.ext_image_drm_format_modifier)
2198 && (self.ext_image_robustness || !other.ext_image_robustness)
2199 && (self.ext_image_sliced_view_of_3d || !other.ext_image_sliced_view_of_3d)
2200 && (self.ext_image_view_min_lod || !other.ext_image_view_min_lod)
2201 && (self.ext_index_type_uint8 || !other.ext_index_type_uint8)
2202 && (self.ext_inline_uniform_block || !other.ext_inline_uniform_block)
2203 && (self.ext_legacy_dithering || !other.ext_legacy_dithering)
2204 && (self.ext_line_rasterization || !other.ext_line_rasterization)
2205 && (self.ext_load_store_op_none || !other.ext_load_store_op_none)
2206 && (self.ext_map_memory_placed || !other.ext_map_memory_placed)
2207 && (self.ext_memory_budget || !other.ext_memory_budget)
2208 && (self.ext_memory_priority || !other.ext_memory_priority)
2209 && (self.ext_mesh_shader || !other.ext_mesh_shader)
2210 && (self.ext_metal_objects || !other.ext_metal_objects)
2211 && (self.ext_multi_draw || !other.ext_multi_draw)
2212 && (self.ext_multisampled_render_to_single_sampled
2213 || !other.ext_multisampled_render_to_single_sampled)
2214 && (self.ext_mutable_descriptor_type || !other.ext_mutable_descriptor_type)
2215 && (self.ext_nested_command_buffer || !other.ext_nested_command_buffer)
2216 && (self.ext_non_seamless_cube_map || !other.ext_non_seamless_cube_map)
2217 && (self.ext_opacity_micromap || !other.ext_opacity_micromap)
2218 && (self.ext_pageable_device_local_memory || !other.ext_pageable_device_local_memory)
2219 && (self.ext_pci_bus_info || !other.ext_pci_bus_info)
2220 && (self.ext_physical_device_drm || !other.ext_physical_device_drm)
2221 && (self.ext_pipeline_creation_cache_control
2222 || !other.ext_pipeline_creation_cache_control)
2223 && (self.ext_pipeline_creation_feedback || !other.ext_pipeline_creation_feedback)
2224 && (self.ext_pipeline_library_group_handles
2225 || !other.ext_pipeline_library_group_handles)
2226 && (self.ext_pipeline_properties || !other.ext_pipeline_properties)
2227 && (self.ext_pipeline_protected_access || !other.ext_pipeline_protected_access)
2228 && (self.ext_pipeline_robustness || !other.ext_pipeline_robustness)
2229 && (self.ext_post_depth_coverage || !other.ext_post_depth_coverage)
2230 && (self.ext_primitive_topology_list_restart
2231 || !other.ext_primitive_topology_list_restart)
2232 && (self.ext_primitives_generated_query || !other.ext_primitives_generated_query)
2233 && (self.ext_private_data || !other.ext_private_data)
2234 && (self.ext_provoking_vertex || !other.ext_provoking_vertex)
2235 && (self.ext_queue_family_foreign || !other.ext_queue_family_foreign)
2236 && (self.ext_rasterization_order_attachment_access
2237 || !other.ext_rasterization_order_attachment_access)
2238 && (self.ext_rgba10x6_formats || !other.ext_rgba10x6_formats)
2239 && (self.ext_robustness2 || !other.ext_robustness2)
2240 && (self.ext_sample_locations || !other.ext_sample_locations)
2241 && (self.ext_sampler_filter_minmax || !other.ext_sampler_filter_minmax)
2242 && (self.ext_scalar_block_layout || !other.ext_scalar_block_layout)
2243 && (self.ext_separate_stencil_usage || !other.ext_separate_stencil_usage)
2244 && (self.ext_shader_atomic_float || !other.ext_shader_atomic_float)
2245 && (self.ext_shader_atomic_float2 || !other.ext_shader_atomic_float2)
2246 && (self.ext_shader_demote_to_helper_invocation
2247 || !other.ext_shader_demote_to_helper_invocation)
2248 && (self.ext_shader_image_atomic_int64 || !other.ext_shader_image_atomic_int64)
2249 && (self.ext_shader_module_identifier || !other.ext_shader_module_identifier)
2250 && (self.ext_shader_object || !other.ext_shader_object)
2251 && (self.ext_shader_stencil_export || !other.ext_shader_stencil_export)
2252 && (self.ext_shader_subgroup_ballot || !other.ext_shader_subgroup_ballot)
2253 && (self.ext_shader_subgroup_vote || !other.ext_shader_subgroup_vote)
2254 && (self.ext_shader_tile_image || !other.ext_shader_tile_image)
2255 && (self.ext_shader_viewport_index_layer || !other.ext_shader_viewport_index_layer)
2256 && (self.ext_subgroup_size_control || !other.ext_subgroup_size_control)
2257 && (self.ext_subpass_merge_feedback || !other.ext_subpass_merge_feedback)
2258 && (self.ext_swapchain_maintenance1 || !other.ext_swapchain_maintenance1)
2259 && (self.ext_texel_buffer_alignment || !other.ext_texel_buffer_alignment)
2260 && (self.ext_texture_compression_astc_hdr || !other.ext_texture_compression_astc_hdr)
2261 && (self.ext_tooling_info || !other.ext_tooling_info)
2262 && (self.ext_transform_feedback || !other.ext_transform_feedback)
2263 && (self.ext_validation_cache || !other.ext_validation_cache)
2264 && (self.ext_vertex_attribute_divisor || !other.ext_vertex_attribute_divisor)
2265 && (self.ext_vertex_input_dynamic_state || !other.ext_vertex_input_dynamic_state)
2266 && (self.ext_ycbcr_2plane_444_formats || !other.ext_ycbcr_2plane_444_formats)
2267 && (self.ext_ycbcr_image_arrays || !other.ext_ycbcr_image_arrays)
2268 && (self.amdx_shader_enqueue || !other.amdx_shader_enqueue)
2269 && (self.amd_buffer_marker || !other.amd_buffer_marker)
2270 && (self.amd_device_coherent_memory || !other.amd_device_coherent_memory)
2271 && (self.amd_display_native_hdr || !other.amd_display_native_hdr)
2272 && (self.amd_draw_indirect_count || !other.amd_draw_indirect_count)
2273 && (self.amd_gcn_shader || !other.amd_gcn_shader)
2274 && (self.amd_gpu_shader_half_float || !other.amd_gpu_shader_half_float)
2275 && (self.amd_gpu_shader_int16 || !other.amd_gpu_shader_int16)
2276 && (self.amd_memory_overallocation_behavior
2277 || !other.amd_memory_overallocation_behavior)
2278 && (self.amd_mixed_attachment_samples || !other.amd_mixed_attachment_samples)
2279 && (self.amd_pipeline_compiler_control || !other.amd_pipeline_compiler_control)
2280 && (self.amd_rasterization_order || !other.amd_rasterization_order)
2281 && (self.amd_shader_ballot || !other.amd_shader_ballot)
2282 && (self.amd_shader_core_properties || !other.amd_shader_core_properties)
2283 && (self.amd_shader_core_properties2 || !other.amd_shader_core_properties2)
2284 && (self.amd_shader_early_and_late_fragment_tests
2285 || !other.amd_shader_early_and_late_fragment_tests)
2286 && (self.amd_shader_explicit_vertex_parameter
2287 || !other.amd_shader_explicit_vertex_parameter)
2288 && (self.amd_shader_fragment_mask || !other.amd_shader_fragment_mask)
2289 && (self.amd_shader_image_load_store_lod || !other.amd_shader_image_load_store_lod)
2290 && (self.amd_shader_info || !other.amd_shader_info)
2291 && (self.amd_shader_trinary_minmax || !other.amd_shader_trinary_minmax)
2292 && (self.amd_texture_gather_bias_lod || !other.amd_texture_gather_bias_lod)
2293 && (self.android_external_format_resolve || !other.android_external_format_resolve)
2294 && (self.android_external_memory_android_hardware_buffer
2295 || !other.android_external_memory_android_hardware_buffer)
2296 && (self.arm_rasterization_order_attachment_access
2297 || !other.arm_rasterization_order_attachment_access)
2298 && (self.arm_render_pass_striped || !other.arm_render_pass_striped)
2299 && (self.arm_scheduling_controls || !other.arm_scheduling_controls)
2300 && (self.arm_shader_core_builtins || !other.arm_shader_core_builtins)
2301 && (self.arm_shader_core_properties || !other.arm_shader_core_properties)
2302 && (self.fuchsia_buffer_collection || !other.fuchsia_buffer_collection)
2303 && (self.fuchsia_external_memory || !other.fuchsia_external_memory)
2304 && (self.fuchsia_external_semaphore || !other.fuchsia_external_semaphore)
2305 && (self.ggp_frame_token || !other.ggp_frame_token)
2306 && (self.google_decorate_string || !other.google_decorate_string)
2307 && (self.google_display_timing || !other.google_display_timing)
2308 && (self.google_hlsl_functionality1 || !other.google_hlsl_functionality1)
2309 && (self.google_user_type || !other.google_user_type)
2310 && (self.huawei_cluster_culling_shader || !other.huawei_cluster_culling_shader)
2311 && (self.huawei_invocation_mask || !other.huawei_invocation_mask)
2312 && (self.huawei_subpass_shading || !other.huawei_subpass_shading)
2313 && (self.img_filter_cubic || !other.img_filter_cubic)
2314 && (self.img_format_pvrtc || !other.img_format_pvrtc)
2315 && (self.img_relaxed_line_rasterization || !other.img_relaxed_line_rasterization)
2316 && (self.intel_performance_query || !other.intel_performance_query)
2317 && (self.intel_shader_integer_functions2 || !other.intel_shader_integer_functions2)
2318 && (self.msft_layered_driver || !other.msft_layered_driver)
2319 && (self.nvx_binary_import || !other.nvx_binary_import)
2320 && (self.nvx_image_view_handle || !other.nvx_image_view_handle)
2321 && (self.nvx_multiview_per_view_attributes || !other.nvx_multiview_per_view_attributes)
2322 && (self.nv_acquire_winrt_display || !other.nv_acquire_winrt_display)
2323 && (self.nv_clip_space_w_scaling || !other.nv_clip_space_w_scaling)
2324 && (self.nv_compute_shader_derivatives || !other.nv_compute_shader_derivatives)
2325 && (self.nv_cooperative_matrix || !other.nv_cooperative_matrix)
2326 && (self.nv_copy_memory_indirect || !other.nv_copy_memory_indirect)
2327 && (self.nv_corner_sampled_image || !other.nv_corner_sampled_image)
2328 && (self.nv_coverage_reduction_mode || !other.nv_coverage_reduction_mode)
2329 && (self.nv_cuda_kernel_launch || !other.nv_cuda_kernel_launch)
2330 && (self.nv_dedicated_allocation || !other.nv_dedicated_allocation)
2331 && (self.nv_dedicated_allocation_image_aliasing
2332 || !other.nv_dedicated_allocation_image_aliasing)
2333 && (self.nv_descriptor_pool_overallocation || !other.nv_descriptor_pool_overallocation)
2334 && (self.nv_device_diagnostic_checkpoints || !other.nv_device_diagnostic_checkpoints)
2335 && (self.nv_device_diagnostics_config || !other.nv_device_diagnostics_config)
2336 && (self.nv_device_generated_commands || !other.nv_device_generated_commands)
2337 && (self.nv_device_generated_commands_compute
2338 || !other.nv_device_generated_commands_compute)
2339 && (self.nv_displacement_micromap || !other.nv_displacement_micromap)
2340 && (self.nv_extended_sparse_address_space || !other.nv_extended_sparse_address_space)
2341 && (self.nv_external_memory || !other.nv_external_memory)
2342 && (self.nv_external_memory_rdma || !other.nv_external_memory_rdma)
2343 && (self.nv_external_memory_win32 || !other.nv_external_memory_win32)
2344 && (self.nv_fill_rectangle || !other.nv_fill_rectangle)
2345 && (self.nv_fragment_coverage_to_color || !other.nv_fragment_coverage_to_color)
2346 && (self.nv_fragment_shader_barycentric || !other.nv_fragment_shader_barycentric)
2347 && (self.nv_fragment_shading_rate_enums || !other.nv_fragment_shading_rate_enums)
2348 && (self.nv_framebuffer_mixed_samples || !other.nv_framebuffer_mixed_samples)
2349 && (self.nv_geometry_shader_passthrough || !other.nv_geometry_shader_passthrough)
2350 && (self.nv_glsl_shader || !other.nv_glsl_shader)
2351 && (self.nv_inherited_viewport_scissor || !other.nv_inherited_viewport_scissor)
2352 && (self.nv_linear_color_attachment || !other.nv_linear_color_attachment)
2353 && (self.nv_low_latency || !other.nv_low_latency)
2354 && (self.nv_low_latency2 || !other.nv_low_latency2)
2355 && (self.nv_memory_decompression || !other.nv_memory_decompression)
2356 && (self.nv_mesh_shader || !other.nv_mesh_shader)
2357 && (self.nv_optical_flow || !other.nv_optical_flow)
2358 && (self.nv_per_stage_descriptor_set || !other.nv_per_stage_descriptor_set)
2359 && (self.nv_present_barrier || !other.nv_present_barrier)
2360 && (self.nv_raw_access_chains || !other.nv_raw_access_chains)
2361 && (self.nv_ray_tracing || !other.nv_ray_tracing)
2362 && (self.nv_ray_tracing_invocation_reorder || !other.nv_ray_tracing_invocation_reorder)
2363 && (self.nv_ray_tracing_motion_blur || !other.nv_ray_tracing_motion_blur)
2364 && (self.nv_ray_tracing_validation || !other.nv_ray_tracing_validation)
2365 && (self.nv_representative_fragment_test || !other.nv_representative_fragment_test)
2366 && (self.nv_sample_mask_override_coverage || !other.nv_sample_mask_override_coverage)
2367 && (self.nv_scissor_exclusive || !other.nv_scissor_exclusive)
2368 && (self.nv_shader_atomic_float16_vector || !other.nv_shader_atomic_float16_vector)
2369 && (self.nv_shader_image_footprint || !other.nv_shader_image_footprint)
2370 && (self.nv_shader_sm_builtins || !other.nv_shader_sm_builtins)
2371 && (self.nv_shader_subgroup_partitioned || !other.nv_shader_subgroup_partitioned)
2372 && (self.nv_shading_rate_image || !other.nv_shading_rate_image)
2373 && (self.nv_viewport_array2 || !other.nv_viewport_array2)
2374 && (self.nv_viewport_swizzle || !other.nv_viewport_swizzle)
2375 && (self.nv_win32_keyed_mutex || !other.nv_win32_keyed_mutex)
2376 && (self.qcom_filter_cubic_clamp || !other.qcom_filter_cubic_clamp)
2377 && (self.qcom_filter_cubic_weights || !other.qcom_filter_cubic_weights)
2378 && (self.qcom_fragment_density_map_offset || !other.qcom_fragment_density_map_offset)
2379 && (self.qcom_image_processing || !other.qcom_image_processing)
2380 && (self.qcom_image_processing2 || !other.qcom_image_processing2)
2381 && (self.qcom_multiview_per_view_render_areas
2382 || !other.qcom_multiview_per_view_render_areas)
2383 && (self.qcom_multiview_per_view_viewports || !other.qcom_multiview_per_view_viewports)
2384 && (self.qcom_render_pass_shader_resolve || !other.qcom_render_pass_shader_resolve)
2385 && (self.qcom_render_pass_store_ops || !other.qcom_render_pass_store_ops)
2386 && (self.qcom_render_pass_transform || !other.qcom_render_pass_transform)
2387 && (self.qcom_rotated_copy_commands || !other.qcom_rotated_copy_commands)
2388 && (self.qcom_tile_properties || !other.qcom_tile_properties)
2389 && (self.qcom_ycbcr_degamma || !other.qcom_ycbcr_degamma)
2390 && (self.qnx_external_memory_screen_buffer || !other.qnx_external_memory_screen_buffer)
2391 && (self.sec_amigo_profiling || !other.sec_amigo_profiling)
2392 && (self.valve_descriptor_set_host_mapping || !other.valve_descriptor_set_host_mapping)
2393 && (self.valve_mutable_descriptor_type || !other.valve_mutable_descriptor_type)
2394 }
2395 #[doc = r" Returns the union of `self` and `other`."]
2396 #[inline]
2397 pub const fn union(&self, other: &Self) -> Self {
2398 Self {
2399 khr_16bit_storage: self.khr_16bit_storage || other.khr_16bit_storage,
2400 khr_8bit_storage: self.khr_8bit_storage || other.khr_8bit_storage,
2401 khr_acceleration_structure: self.khr_acceleration_structure
2402 || other.khr_acceleration_structure,
2403 khr_bind_memory2: self.khr_bind_memory2 || other.khr_bind_memory2,
2404 khr_buffer_device_address: self.khr_buffer_device_address
2405 || other.khr_buffer_device_address,
2406 khr_calibrated_timestamps: self.khr_calibrated_timestamps
2407 || other.khr_calibrated_timestamps,
2408 khr_cooperative_matrix: self.khr_cooperative_matrix || other.khr_cooperative_matrix,
2409 khr_copy_commands2: self.khr_copy_commands2 || other.khr_copy_commands2,
2410 khr_create_renderpass2: self.khr_create_renderpass2 || other.khr_create_renderpass2,
2411 khr_dedicated_allocation: self.khr_dedicated_allocation
2412 || other.khr_dedicated_allocation,
2413 khr_deferred_host_operations: self.khr_deferred_host_operations
2414 || other.khr_deferred_host_operations,
2415 khr_depth_stencil_resolve: self.khr_depth_stencil_resolve
2416 || other.khr_depth_stencil_resolve,
2417 khr_descriptor_update_template: self.khr_descriptor_update_template
2418 || other.khr_descriptor_update_template,
2419 khr_device_group: self.khr_device_group || other.khr_device_group,
2420 khr_display_swapchain: self.khr_display_swapchain || other.khr_display_swapchain,
2421 khr_draw_indirect_count: self.khr_draw_indirect_count || other.khr_draw_indirect_count,
2422 khr_driver_properties: self.khr_driver_properties || other.khr_driver_properties,
2423 khr_dynamic_rendering: self.khr_dynamic_rendering || other.khr_dynamic_rendering,
2424 khr_dynamic_rendering_local_read: self.khr_dynamic_rendering_local_read
2425 || other.khr_dynamic_rendering_local_read,
2426 khr_external_fence: self.khr_external_fence || other.khr_external_fence,
2427 khr_external_fence_fd: self.khr_external_fence_fd || other.khr_external_fence_fd,
2428 khr_external_fence_win32: self.khr_external_fence_win32
2429 || other.khr_external_fence_win32,
2430 khr_external_memory: self.khr_external_memory || other.khr_external_memory,
2431 khr_external_memory_fd: self.khr_external_memory_fd || other.khr_external_memory_fd,
2432 khr_external_memory_win32: self.khr_external_memory_win32
2433 || other.khr_external_memory_win32,
2434 khr_external_semaphore: self.khr_external_semaphore || other.khr_external_semaphore,
2435 khr_external_semaphore_fd: self.khr_external_semaphore_fd
2436 || other.khr_external_semaphore_fd,
2437 khr_external_semaphore_win32: self.khr_external_semaphore_win32
2438 || other.khr_external_semaphore_win32,
2439 khr_format_feature_flags2: self.khr_format_feature_flags2
2440 || other.khr_format_feature_flags2,
2441 khr_fragment_shader_barycentric: self.khr_fragment_shader_barycentric
2442 || other.khr_fragment_shader_barycentric,
2443 khr_fragment_shading_rate: self.khr_fragment_shading_rate
2444 || other.khr_fragment_shading_rate,
2445 khr_get_memory_requirements2: self.khr_get_memory_requirements2
2446 || other.khr_get_memory_requirements2,
2447 khr_global_priority: self.khr_global_priority || other.khr_global_priority,
2448 khr_image_format_list: self.khr_image_format_list || other.khr_image_format_list,
2449 khr_imageless_framebuffer: self.khr_imageless_framebuffer
2450 || other.khr_imageless_framebuffer,
2451 khr_incremental_present: self.khr_incremental_present || other.khr_incremental_present,
2452 khr_index_type_uint8: self.khr_index_type_uint8 || other.khr_index_type_uint8,
2453 khr_line_rasterization: self.khr_line_rasterization || other.khr_line_rasterization,
2454 khr_load_store_op_none: self.khr_load_store_op_none || other.khr_load_store_op_none,
2455 khr_maintenance1: self.khr_maintenance1 || other.khr_maintenance1,
2456 khr_maintenance2: self.khr_maintenance2 || other.khr_maintenance2,
2457 khr_maintenance3: self.khr_maintenance3 || other.khr_maintenance3,
2458 khr_maintenance4: self.khr_maintenance4 || other.khr_maintenance4,
2459 khr_maintenance5: self.khr_maintenance5 || other.khr_maintenance5,
2460 khr_maintenance6: self.khr_maintenance6 || other.khr_maintenance6,
2461 khr_map_memory2: self.khr_map_memory2 || other.khr_map_memory2,
2462 khr_multiview: self.khr_multiview || other.khr_multiview,
2463 khr_performance_query: self.khr_performance_query || other.khr_performance_query,
2464 khr_pipeline_executable_properties: self.khr_pipeline_executable_properties
2465 || other.khr_pipeline_executable_properties,
2466 khr_pipeline_library: self.khr_pipeline_library || other.khr_pipeline_library,
2467 khr_portability_subset: self.khr_portability_subset || other.khr_portability_subset,
2468 khr_present_id: self.khr_present_id || other.khr_present_id,
2469 khr_present_wait: self.khr_present_wait || other.khr_present_wait,
2470 khr_push_descriptor: self.khr_push_descriptor || other.khr_push_descriptor,
2471 khr_ray_query: self.khr_ray_query || other.khr_ray_query,
2472 khr_ray_tracing_maintenance1: self.khr_ray_tracing_maintenance1
2473 || other.khr_ray_tracing_maintenance1,
2474 khr_ray_tracing_pipeline: self.khr_ray_tracing_pipeline
2475 || other.khr_ray_tracing_pipeline,
2476 khr_ray_tracing_position_fetch: self.khr_ray_tracing_position_fetch
2477 || other.khr_ray_tracing_position_fetch,
2478 khr_relaxed_block_layout: self.khr_relaxed_block_layout
2479 || other.khr_relaxed_block_layout,
2480 khr_sampler_mirror_clamp_to_edge: self.khr_sampler_mirror_clamp_to_edge
2481 || other.khr_sampler_mirror_clamp_to_edge,
2482 khr_sampler_ycbcr_conversion: self.khr_sampler_ycbcr_conversion
2483 || other.khr_sampler_ycbcr_conversion,
2484 khr_separate_depth_stencil_layouts: self.khr_separate_depth_stencil_layouts
2485 || other.khr_separate_depth_stencil_layouts,
2486 khr_shader_atomic_int64: self.khr_shader_atomic_int64 || other.khr_shader_atomic_int64,
2487 khr_shader_clock: self.khr_shader_clock || other.khr_shader_clock,
2488 khr_shader_draw_parameters: self.khr_shader_draw_parameters
2489 || other.khr_shader_draw_parameters,
2490 khr_shader_expect_assume: self.khr_shader_expect_assume
2491 || other.khr_shader_expect_assume,
2492 khr_shader_float16_int8: self.khr_shader_float16_int8 || other.khr_shader_float16_int8,
2493 khr_shader_float_controls: self.khr_shader_float_controls
2494 || other.khr_shader_float_controls,
2495 khr_shader_float_controls2: self.khr_shader_float_controls2
2496 || other.khr_shader_float_controls2,
2497 khr_shader_integer_dot_product: self.khr_shader_integer_dot_product
2498 || other.khr_shader_integer_dot_product,
2499 khr_shader_maximal_reconvergence: self.khr_shader_maximal_reconvergence
2500 || other.khr_shader_maximal_reconvergence,
2501 khr_shader_non_semantic_info: self.khr_shader_non_semantic_info
2502 || other.khr_shader_non_semantic_info,
2503 khr_shader_quad_control: self.khr_shader_quad_control || other.khr_shader_quad_control,
2504 khr_shader_subgroup_extended_types: self.khr_shader_subgroup_extended_types
2505 || other.khr_shader_subgroup_extended_types,
2506 khr_shader_subgroup_rotate: self.khr_shader_subgroup_rotate
2507 || other.khr_shader_subgroup_rotate,
2508 khr_shader_subgroup_uniform_control_flow: self.khr_shader_subgroup_uniform_control_flow
2509 || other.khr_shader_subgroup_uniform_control_flow,
2510 khr_shader_terminate_invocation: self.khr_shader_terminate_invocation
2511 || other.khr_shader_terminate_invocation,
2512 khr_shared_presentable_image: self.khr_shared_presentable_image
2513 || other.khr_shared_presentable_image,
2514 khr_spirv_1_4: self.khr_spirv_1_4 || other.khr_spirv_1_4,
2515 khr_storage_buffer_storage_class: self.khr_storage_buffer_storage_class
2516 || other.khr_storage_buffer_storage_class,
2517 khr_swapchain: self.khr_swapchain || other.khr_swapchain,
2518 khr_swapchain_mutable_format: self.khr_swapchain_mutable_format
2519 || other.khr_swapchain_mutable_format,
2520 khr_synchronization2: self.khr_synchronization2 || other.khr_synchronization2,
2521 khr_timeline_semaphore: self.khr_timeline_semaphore || other.khr_timeline_semaphore,
2522 khr_uniform_buffer_standard_layout: self.khr_uniform_buffer_standard_layout
2523 || other.khr_uniform_buffer_standard_layout,
2524 khr_variable_pointers: self.khr_variable_pointers || other.khr_variable_pointers,
2525 khr_vertex_attribute_divisor: self.khr_vertex_attribute_divisor
2526 || other.khr_vertex_attribute_divisor,
2527 khr_video_decode_av1: self.khr_video_decode_av1 || other.khr_video_decode_av1,
2528 khr_video_decode_h264: self.khr_video_decode_h264 || other.khr_video_decode_h264,
2529 khr_video_decode_h265: self.khr_video_decode_h265 || other.khr_video_decode_h265,
2530 khr_video_decode_queue: self.khr_video_decode_queue || other.khr_video_decode_queue,
2531 khr_video_encode_h264: self.khr_video_encode_h264 || other.khr_video_encode_h264,
2532 khr_video_encode_h265: self.khr_video_encode_h265 || other.khr_video_encode_h265,
2533 khr_video_encode_queue: self.khr_video_encode_queue || other.khr_video_encode_queue,
2534 khr_video_maintenance1: self.khr_video_maintenance1 || other.khr_video_maintenance1,
2535 khr_video_queue: self.khr_video_queue || other.khr_video_queue,
2536 khr_vulkan_memory_model: self.khr_vulkan_memory_model || other.khr_vulkan_memory_model,
2537 khr_win32_keyed_mutex: self.khr_win32_keyed_mutex || other.khr_win32_keyed_mutex,
2538 khr_workgroup_memory_explicit_layout: self.khr_workgroup_memory_explicit_layout
2539 || other.khr_workgroup_memory_explicit_layout,
2540 khr_zero_initialize_workgroup_memory: self.khr_zero_initialize_workgroup_memory
2541 || other.khr_zero_initialize_workgroup_memory,
2542 ext_4444_formats: self.ext_4444_formats || other.ext_4444_formats,
2543 ext_astc_decode_mode: self.ext_astc_decode_mode || other.ext_astc_decode_mode,
2544 ext_attachment_feedback_loop_dynamic_state: self
2545 .ext_attachment_feedback_loop_dynamic_state
2546 || other.ext_attachment_feedback_loop_dynamic_state,
2547 ext_attachment_feedback_loop_layout: self.ext_attachment_feedback_loop_layout
2548 || other.ext_attachment_feedback_loop_layout,
2549 ext_blend_operation_advanced: self.ext_blend_operation_advanced
2550 || other.ext_blend_operation_advanced,
2551 ext_border_color_swizzle: self.ext_border_color_swizzle
2552 || other.ext_border_color_swizzle,
2553 ext_buffer_device_address: self.ext_buffer_device_address
2554 || other.ext_buffer_device_address,
2555 ext_calibrated_timestamps: self.ext_calibrated_timestamps
2556 || other.ext_calibrated_timestamps,
2557 ext_color_write_enable: self.ext_color_write_enable || other.ext_color_write_enable,
2558 ext_conditional_rendering: self.ext_conditional_rendering
2559 || other.ext_conditional_rendering,
2560 ext_conservative_rasterization: self.ext_conservative_rasterization
2561 || other.ext_conservative_rasterization,
2562 ext_custom_border_color: self.ext_custom_border_color || other.ext_custom_border_color,
2563 ext_debug_marker: self.ext_debug_marker || other.ext_debug_marker,
2564 ext_depth_bias_control: self.ext_depth_bias_control || other.ext_depth_bias_control,
2565 ext_depth_clamp_zero_one: self.ext_depth_clamp_zero_one
2566 || other.ext_depth_clamp_zero_one,
2567 ext_depth_clip_control: self.ext_depth_clip_control || other.ext_depth_clip_control,
2568 ext_depth_clip_enable: self.ext_depth_clip_enable || other.ext_depth_clip_enable,
2569 ext_depth_range_unrestricted: self.ext_depth_range_unrestricted
2570 || other.ext_depth_range_unrestricted,
2571 ext_descriptor_buffer: self.ext_descriptor_buffer || other.ext_descriptor_buffer,
2572 ext_descriptor_indexing: self.ext_descriptor_indexing || other.ext_descriptor_indexing,
2573 ext_device_address_binding_report: self.ext_device_address_binding_report
2574 || other.ext_device_address_binding_report,
2575 ext_device_fault: self.ext_device_fault || other.ext_device_fault,
2576 ext_device_memory_report: self.ext_device_memory_report
2577 || other.ext_device_memory_report,
2578 ext_discard_rectangles: self.ext_discard_rectangles || other.ext_discard_rectangles,
2579 ext_display_control: self.ext_display_control || other.ext_display_control,
2580 ext_dynamic_rendering_unused_attachments: self.ext_dynamic_rendering_unused_attachments
2581 || other.ext_dynamic_rendering_unused_attachments,
2582 ext_extended_dynamic_state: self.ext_extended_dynamic_state
2583 || other.ext_extended_dynamic_state,
2584 ext_extended_dynamic_state2: self.ext_extended_dynamic_state2
2585 || other.ext_extended_dynamic_state2,
2586 ext_extended_dynamic_state3: self.ext_extended_dynamic_state3
2587 || other.ext_extended_dynamic_state3,
2588 ext_external_memory_acquire_unmodified: self.ext_external_memory_acquire_unmodified
2589 || other.ext_external_memory_acquire_unmodified,
2590 ext_external_memory_dma_buf: self.ext_external_memory_dma_buf
2591 || other.ext_external_memory_dma_buf,
2592 ext_external_memory_host: self.ext_external_memory_host
2593 || other.ext_external_memory_host,
2594 ext_filter_cubic: self.ext_filter_cubic || other.ext_filter_cubic,
2595 ext_fragment_density_map: self.ext_fragment_density_map
2596 || other.ext_fragment_density_map,
2597 ext_fragment_density_map2: self.ext_fragment_density_map2
2598 || other.ext_fragment_density_map2,
2599 ext_fragment_shader_interlock: self.ext_fragment_shader_interlock
2600 || other.ext_fragment_shader_interlock,
2601 ext_frame_boundary: self.ext_frame_boundary || other.ext_frame_boundary,
2602 ext_full_screen_exclusive: self.ext_full_screen_exclusive
2603 || other.ext_full_screen_exclusive,
2604 ext_global_priority: self.ext_global_priority || other.ext_global_priority,
2605 ext_global_priority_query: self.ext_global_priority_query
2606 || other.ext_global_priority_query,
2607 ext_graphics_pipeline_library: self.ext_graphics_pipeline_library
2608 || other.ext_graphics_pipeline_library,
2609 ext_hdr_metadata: self.ext_hdr_metadata || other.ext_hdr_metadata,
2610 ext_host_image_copy: self.ext_host_image_copy || other.ext_host_image_copy,
2611 ext_host_query_reset: self.ext_host_query_reset || other.ext_host_query_reset,
2612 ext_image_2d_view_of_3d: self.ext_image_2d_view_of_3d || other.ext_image_2d_view_of_3d,
2613 ext_image_compression_control: self.ext_image_compression_control
2614 || other.ext_image_compression_control,
2615 ext_image_compression_control_swapchain: self.ext_image_compression_control_swapchain
2616 || other.ext_image_compression_control_swapchain,
2617 ext_image_drm_format_modifier: self.ext_image_drm_format_modifier
2618 || other.ext_image_drm_format_modifier,
2619 ext_image_robustness: self.ext_image_robustness || other.ext_image_robustness,
2620 ext_image_sliced_view_of_3d: self.ext_image_sliced_view_of_3d
2621 || other.ext_image_sliced_view_of_3d,
2622 ext_image_view_min_lod: self.ext_image_view_min_lod || other.ext_image_view_min_lod,
2623 ext_index_type_uint8: self.ext_index_type_uint8 || other.ext_index_type_uint8,
2624 ext_inline_uniform_block: self.ext_inline_uniform_block
2625 || other.ext_inline_uniform_block,
2626 ext_legacy_dithering: self.ext_legacy_dithering || other.ext_legacy_dithering,
2627 ext_line_rasterization: self.ext_line_rasterization || other.ext_line_rasterization,
2628 ext_load_store_op_none: self.ext_load_store_op_none || other.ext_load_store_op_none,
2629 ext_map_memory_placed: self.ext_map_memory_placed || other.ext_map_memory_placed,
2630 ext_memory_budget: self.ext_memory_budget || other.ext_memory_budget,
2631 ext_memory_priority: self.ext_memory_priority || other.ext_memory_priority,
2632 ext_mesh_shader: self.ext_mesh_shader || other.ext_mesh_shader,
2633 ext_metal_objects: self.ext_metal_objects || other.ext_metal_objects,
2634 ext_multi_draw: self.ext_multi_draw || other.ext_multi_draw,
2635 ext_multisampled_render_to_single_sampled: self
2636 .ext_multisampled_render_to_single_sampled
2637 || other.ext_multisampled_render_to_single_sampled,
2638 ext_mutable_descriptor_type: self.ext_mutable_descriptor_type
2639 || other.ext_mutable_descriptor_type,
2640 ext_nested_command_buffer: self.ext_nested_command_buffer
2641 || other.ext_nested_command_buffer,
2642 ext_non_seamless_cube_map: self.ext_non_seamless_cube_map
2643 || other.ext_non_seamless_cube_map,
2644 ext_opacity_micromap: self.ext_opacity_micromap || other.ext_opacity_micromap,
2645 ext_pageable_device_local_memory: self.ext_pageable_device_local_memory
2646 || other.ext_pageable_device_local_memory,
2647 ext_pci_bus_info: self.ext_pci_bus_info || other.ext_pci_bus_info,
2648 ext_physical_device_drm: self.ext_physical_device_drm || other.ext_physical_device_drm,
2649 ext_pipeline_creation_cache_control: self.ext_pipeline_creation_cache_control
2650 || other.ext_pipeline_creation_cache_control,
2651 ext_pipeline_creation_feedback: self.ext_pipeline_creation_feedback
2652 || other.ext_pipeline_creation_feedback,
2653 ext_pipeline_library_group_handles: self.ext_pipeline_library_group_handles
2654 || other.ext_pipeline_library_group_handles,
2655 ext_pipeline_properties: self.ext_pipeline_properties || other.ext_pipeline_properties,
2656 ext_pipeline_protected_access: self.ext_pipeline_protected_access
2657 || other.ext_pipeline_protected_access,
2658 ext_pipeline_robustness: self.ext_pipeline_robustness || other.ext_pipeline_robustness,
2659 ext_post_depth_coverage: self.ext_post_depth_coverage || other.ext_post_depth_coverage,
2660 ext_primitive_topology_list_restart: self.ext_primitive_topology_list_restart
2661 || other.ext_primitive_topology_list_restart,
2662 ext_primitives_generated_query: self.ext_primitives_generated_query
2663 || other.ext_primitives_generated_query,
2664 ext_private_data: self.ext_private_data || other.ext_private_data,
2665 ext_provoking_vertex: self.ext_provoking_vertex || other.ext_provoking_vertex,
2666 ext_queue_family_foreign: self.ext_queue_family_foreign
2667 || other.ext_queue_family_foreign,
2668 ext_rasterization_order_attachment_access: self
2669 .ext_rasterization_order_attachment_access
2670 || other.ext_rasterization_order_attachment_access,
2671 ext_rgba10x6_formats: self.ext_rgba10x6_formats || other.ext_rgba10x6_formats,
2672 ext_robustness2: self.ext_robustness2 || other.ext_robustness2,
2673 ext_sample_locations: self.ext_sample_locations || other.ext_sample_locations,
2674 ext_sampler_filter_minmax: self.ext_sampler_filter_minmax
2675 || other.ext_sampler_filter_minmax,
2676 ext_scalar_block_layout: self.ext_scalar_block_layout || other.ext_scalar_block_layout,
2677 ext_separate_stencil_usage: self.ext_separate_stencil_usage
2678 || other.ext_separate_stencil_usage,
2679 ext_shader_atomic_float: self.ext_shader_atomic_float || other.ext_shader_atomic_float,
2680 ext_shader_atomic_float2: self.ext_shader_atomic_float2
2681 || other.ext_shader_atomic_float2,
2682 ext_shader_demote_to_helper_invocation: self.ext_shader_demote_to_helper_invocation
2683 || other.ext_shader_demote_to_helper_invocation,
2684 ext_shader_image_atomic_int64: self.ext_shader_image_atomic_int64
2685 || other.ext_shader_image_atomic_int64,
2686 ext_shader_module_identifier: self.ext_shader_module_identifier
2687 || other.ext_shader_module_identifier,
2688 ext_shader_object: self.ext_shader_object || other.ext_shader_object,
2689 ext_shader_stencil_export: self.ext_shader_stencil_export
2690 || other.ext_shader_stencil_export,
2691 ext_shader_subgroup_ballot: self.ext_shader_subgroup_ballot
2692 || other.ext_shader_subgroup_ballot,
2693 ext_shader_subgroup_vote: self.ext_shader_subgroup_vote
2694 || other.ext_shader_subgroup_vote,
2695 ext_shader_tile_image: self.ext_shader_tile_image || other.ext_shader_tile_image,
2696 ext_shader_viewport_index_layer: self.ext_shader_viewport_index_layer
2697 || other.ext_shader_viewport_index_layer,
2698 ext_subgroup_size_control: self.ext_subgroup_size_control
2699 || other.ext_subgroup_size_control,
2700 ext_subpass_merge_feedback: self.ext_subpass_merge_feedback
2701 || other.ext_subpass_merge_feedback,
2702 ext_swapchain_maintenance1: self.ext_swapchain_maintenance1
2703 || other.ext_swapchain_maintenance1,
2704 ext_texel_buffer_alignment: self.ext_texel_buffer_alignment
2705 || other.ext_texel_buffer_alignment,
2706 ext_texture_compression_astc_hdr: self.ext_texture_compression_astc_hdr
2707 || other.ext_texture_compression_astc_hdr,
2708 ext_tooling_info: self.ext_tooling_info || other.ext_tooling_info,
2709 ext_transform_feedback: self.ext_transform_feedback || other.ext_transform_feedback,
2710 ext_validation_cache: self.ext_validation_cache || other.ext_validation_cache,
2711 ext_vertex_attribute_divisor: self.ext_vertex_attribute_divisor
2712 || other.ext_vertex_attribute_divisor,
2713 ext_vertex_input_dynamic_state: self.ext_vertex_input_dynamic_state
2714 || other.ext_vertex_input_dynamic_state,
2715 ext_ycbcr_2plane_444_formats: self.ext_ycbcr_2plane_444_formats
2716 || other.ext_ycbcr_2plane_444_formats,
2717 ext_ycbcr_image_arrays: self.ext_ycbcr_image_arrays || other.ext_ycbcr_image_arrays,
2718 amdx_shader_enqueue: self.amdx_shader_enqueue || other.amdx_shader_enqueue,
2719 amd_buffer_marker: self.amd_buffer_marker || other.amd_buffer_marker,
2720 amd_device_coherent_memory: self.amd_device_coherent_memory
2721 || other.amd_device_coherent_memory,
2722 amd_display_native_hdr: self.amd_display_native_hdr || other.amd_display_native_hdr,
2723 amd_draw_indirect_count: self.amd_draw_indirect_count || other.amd_draw_indirect_count,
2724 amd_gcn_shader: self.amd_gcn_shader || other.amd_gcn_shader,
2725 amd_gpu_shader_half_float: self.amd_gpu_shader_half_float
2726 || other.amd_gpu_shader_half_float,
2727 amd_gpu_shader_int16: self.amd_gpu_shader_int16 || other.amd_gpu_shader_int16,
2728 amd_memory_overallocation_behavior: self.amd_memory_overallocation_behavior
2729 || other.amd_memory_overallocation_behavior,
2730 amd_mixed_attachment_samples: self.amd_mixed_attachment_samples
2731 || other.amd_mixed_attachment_samples,
2732 amd_pipeline_compiler_control: self.amd_pipeline_compiler_control
2733 || other.amd_pipeline_compiler_control,
2734 amd_rasterization_order: self.amd_rasterization_order || other.amd_rasterization_order,
2735 amd_shader_ballot: self.amd_shader_ballot || other.amd_shader_ballot,
2736 amd_shader_core_properties: self.amd_shader_core_properties
2737 || other.amd_shader_core_properties,
2738 amd_shader_core_properties2: self.amd_shader_core_properties2
2739 || other.amd_shader_core_properties2,
2740 amd_shader_early_and_late_fragment_tests: self.amd_shader_early_and_late_fragment_tests
2741 || other.amd_shader_early_and_late_fragment_tests,
2742 amd_shader_explicit_vertex_parameter: self.amd_shader_explicit_vertex_parameter
2743 || other.amd_shader_explicit_vertex_parameter,
2744 amd_shader_fragment_mask: self.amd_shader_fragment_mask
2745 || other.amd_shader_fragment_mask,
2746 amd_shader_image_load_store_lod: self.amd_shader_image_load_store_lod
2747 || other.amd_shader_image_load_store_lod,
2748 amd_shader_info: self.amd_shader_info || other.amd_shader_info,
2749 amd_shader_trinary_minmax: self.amd_shader_trinary_minmax
2750 || other.amd_shader_trinary_minmax,
2751 amd_texture_gather_bias_lod: self.amd_texture_gather_bias_lod
2752 || other.amd_texture_gather_bias_lod,
2753 android_external_format_resolve: self.android_external_format_resolve
2754 || other.android_external_format_resolve,
2755 android_external_memory_android_hardware_buffer: self
2756 .android_external_memory_android_hardware_buffer
2757 || other.android_external_memory_android_hardware_buffer,
2758 arm_rasterization_order_attachment_access: self
2759 .arm_rasterization_order_attachment_access
2760 || other.arm_rasterization_order_attachment_access,
2761 arm_render_pass_striped: self.arm_render_pass_striped || other.arm_render_pass_striped,
2762 arm_scheduling_controls: self.arm_scheduling_controls || other.arm_scheduling_controls,
2763 arm_shader_core_builtins: self.arm_shader_core_builtins
2764 || other.arm_shader_core_builtins,
2765 arm_shader_core_properties: self.arm_shader_core_properties
2766 || other.arm_shader_core_properties,
2767 fuchsia_buffer_collection: self.fuchsia_buffer_collection
2768 || other.fuchsia_buffer_collection,
2769 fuchsia_external_memory: self.fuchsia_external_memory || other.fuchsia_external_memory,
2770 fuchsia_external_semaphore: self.fuchsia_external_semaphore
2771 || other.fuchsia_external_semaphore,
2772 ggp_frame_token: self.ggp_frame_token || other.ggp_frame_token,
2773 google_decorate_string: self.google_decorate_string || other.google_decorate_string,
2774 google_display_timing: self.google_display_timing || other.google_display_timing,
2775 google_hlsl_functionality1: self.google_hlsl_functionality1
2776 || other.google_hlsl_functionality1,
2777 google_user_type: self.google_user_type || other.google_user_type,
2778 huawei_cluster_culling_shader: self.huawei_cluster_culling_shader
2779 || other.huawei_cluster_culling_shader,
2780 huawei_invocation_mask: self.huawei_invocation_mask || other.huawei_invocation_mask,
2781 huawei_subpass_shading: self.huawei_subpass_shading || other.huawei_subpass_shading,
2782 img_filter_cubic: self.img_filter_cubic || other.img_filter_cubic,
2783 img_format_pvrtc: self.img_format_pvrtc || other.img_format_pvrtc,
2784 img_relaxed_line_rasterization: self.img_relaxed_line_rasterization
2785 || other.img_relaxed_line_rasterization,
2786 intel_performance_query: self.intel_performance_query || other.intel_performance_query,
2787 intel_shader_integer_functions2: self.intel_shader_integer_functions2
2788 || other.intel_shader_integer_functions2,
2789 msft_layered_driver: self.msft_layered_driver || other.msft_layered_driver,
2790 nvx_binary_import: self.nvx_binary_import || other.nvx_binary_import,
2791 nvx_image_view_handle: self.nvx_image_view_handle || other.nvx_image_view_handle,
2792 nvx_multiview_per_view_attributes: self.nvx_multiview_per_view_attributes
2793 || other.nvx_multiview_per_view_attributes,
2794 nv_acquire_winrt_display: self.nv_acquire_winrt_display
2795 || other.nv_acquire_winrt_display,
2796 nv_clip_space_w_scaling: self.nv_clip_space_w_scaling || other.nv_clip_space_w_scaling,
2797 nv_compute_shader_derivatives: self.nv_compute_shader_derivatives
2798 || other.nv_compute_shader_derivatives,
2799 nv_cooperative_matrix: self.nv_cooperative_matrix || other.nv_cooperative_matrix,
2800 nv_copy_memory_indirect: self.nv_copy_memory_indirect || other.nv_copy_memory_indirect,
2801 nv_corner_sampled_image: self.nv_corner_sampled_image || other.nv_corner_sampled_image,
2802 nv_coverage_reduction_mode: self.nv_coverage_reduction_mode
2803 || other.nv_coverage_reduction_mode,
2804 nv_cuda_kernel_launch: self.nv_cuda_kernel_launch || other.nv_cuda_kernel_launch,
2805 nv_dedicated_allocation: self.nv_dedicated_allocation || other.nv_dedicated_allocation,
2806 nv_dedicated_allocation_image_aliasing: self.nv_dedicated_allocation_image_aliasing
2807 || other.nv_dedicated_allocation_image_aliasing,
2808 nv_descriptor_pool_overallocation: self.nv_descriptor_pool_overallocation
2809 || other.nv_descriptor_pool_overallocation,
2810 nv_device_diagnostic_checkpoints: self.nv_device_diagnostic_checkpoints
2811 || other.nv_device_diagnostic_checkpoints,
2812 nv_device_diagnostics_config: self.nv_device_diagnostics_config
2813 || other.nv_device_diagnostics_config,
2814 nv_device_generated_commands: self.nv_device_generated_commands
2815 || other.nv_device_generated_commands,
2816 nv_device_generated_commands_compute: self.nv_device_generated_commands_compute
2817 || other.nv_device_generated_commands_compute,
2818 nv_displacement_micromap: self.nv_displacement_micromap
2819 || other.nv_displacement_micromap,
2820 nv_extended_sparse_address_space: self.nv_extended_sparse_address_space
2821 || other.nv_extended_sparse_address_space,
2822 nv_external_memory: self.nv_external_memory || other.nv_external_memory,
2823 nv_external_memory_rdma: self.nv_external_memory_rdma || other.nv_external_memory_rdma,
2824 nv_external_memory_win32: self.nv_external_memory_win32
2825 || other.nv_external_memory_win32,
2826 nv_fill_rectangle: self.nv_fill_rectangle || other.nv_fill_rectangle,
2827 nv_fragment_coverage_to_color: self.nv_fragment_coverage_to_color
2828 || other.nv_fragment_coverage_to_color,
2829 nv_fragment_shader_barycentric: self.nv_fragment_shader_barycentric
2830 || other.nv_fragment_shader_barycentric,
2831 nv_fragment_shading_rate_enums: self.nv_fragment_shading_rate_enums
2832 || other.nv_fragment_shading_rate_enums,
2833 nv_framebuffer_mixed_samples: self.nv_framebuffer_mixed_samples
2834 || other.nv_framebuffer_mixed_samples,
2835 nv_geometry_shader_passthrough: self.nv_geometry_shader_passthrough
2836 || other.nv_geometry_shader_passthrough,
2837 nv_glsl_shader: self.nv_glsl_shader || other.nv_glsl_shader,
2838 nv_inherited_viewport_scissor: self.nv_inherited_viewport_scissor
2839 || other.nv_inherited_viewport_scissor,
2840 nv_linear_color_attachment: self.nv_linear_color_attachment
2841 || other.nv_linear_color_attachment,
2842 nv_low_latency: self.nv_low_latency || other.nv_low_latency,
2843 nv_low_latency2: self.nv_low_latency2 || other.nv_low_latency2,
2844 nv_memory_decompression: self.nv_memory_decompression || other.nv_memory_decompression,
2845 nv_mesh_shader: self.nv_mesh_shader || other.nv_mesh_shader,
2846 nv_optical_flow: self.nv_optical_flow || other.nv_optical_flow,
2847 nv_per_stage_descriptor_set: self.nv_per_stage_descriptor_set
2848 || other.nv_per_stage_descriptor_set,
2849 nv_present_barrier: self.nv_present_barrier || other.nv_present_barrier,
2850 nv_raw_access_chains: self.nv_raw_access_chains || other.nv_raw_access_chains,
2851 nv_ray_tracing: self.nv_ray_tracing || other.nv_ray_tracing,
2852 nv_ray_tracing_invocation_reorder: self.nv_ray_tracing_invocation_reorder
2853 || other.nv_ray_tracing_invocation_reorder,
2854 nv_ray_tracing_motion_blur: self.nv_ray_tracing_motion_blur
2855 || other.nv_ray_tracing_motion_blur,
2856 nv_ray_tracing_validation: self.nv_ray_tracing_validation
2857 || other.nv_ray_tracing_validation,
2858 nv_representative_fragment_test: self.nv_representative_fragment_test
2859 || other.nv_representative_fragment_test,
2860 nv_sample_mask_override_coverage: self.nv_sample_mask_override_coverage
2861 || other.nv_sample_mask_override_coverage,
2862 nv_scissor_exclusive: self.nv_scissor_exclusive || other.nv_scissor_exclusive,
2863 nv_shader_atomic_float16_vector: self.nv_shader_atomic_float16_vector
2864 || other.nv_shader_atomic_float16_vector,
2865 nv_shader_image_footprint: self.nv_shader_image_footprint
2866 || other.nv_shader_image_footprint,
2867 nv_shader_sm_builtins: self.nv_shader_sm_builtins || other.nv_shader_sm_builtins,
2868 nv_shader_subgroup_partitioned: self.nv_shader_subgroup_partitioned
2869 || other.nv_shader_subgroup_partitioned,
2870 nv_shading_rate_image: self.nv_shading_rate_image || other.nv_shading_rate_image,
2871 nv_viewport_array2: self.nv_viewport_array2 || other.nv_viewport_array2,
2872 nv_viewport_swizzle: self.nv_viewport_swizzle || other.nv_viewport_swizzle,
2873 nv_win32_keyed_mutex: self.nv_win32_keyed_mutex || other.nv_win32_keyed_mutex,
2874 qcom_filter_cubic_clamp: self.qcom_filter_cubic_clamp || other.qcom_filter_cubic_clamp,
2875 qcom_filter_cubic_weights: self.qcom_filter_cubic_weights
2876 || other.qcom_filter_cubic_weights,
2877 qcom_fragment_density_map_offset: self.qcom_fragment_density_map_offset
2878 || other.qcom_fragment_density_map_offset,
2879 qcom_image_processing: self.qcom_image_processing || other.qcom_image_processing,
2880 qcom_image_processing2: self.qcom_image_processing2 || other.qcom_image_processing2,
2881 qcom_multiview_per_view_render_areas: self.qcom_multiview_per_view_render_areas
2882 || other.qcom_multiview_per_view_render_areas,
2883 qcom_multiview_per_view_viewports: self.qcom_multiview_per_view_viewports
2884 || other.qcom_multiview_per_view_viewports,
2885 qcom_render_pass_shader_resolve: self.qcom_render_pass_shader_resolve
2886 || other.qcom_render_pass_shader_resolve,
2887 qcom_render_pass_store_ops: self.qcom_render_pass_store_ops
2888 || other.qcom_render_pass_store_ops,
2889 qcom_render_pass_transform: self.qcom_render_pass_transform
2890 || other.qcom_render_pass_transform,
2891 qcom_rotated_copy_commands: self.qcom_rotated_copy_commands
2892 || other.qcom_rotated_copy_commands,
2893 qcom_tile_properties: self.qcom_tile_properties || other.qcom_tile_properties,
2894 qcom_ycbcr_degamma: self.qcom_ycbcr_degamma || other.qcom_ycbcr_degamma,
2895 qnx_external_memory_screen_buffer: self.qnx_external_memory_screen_buffer
2896 || other.qnx_external_memory_screen_buffer,
2897 sec_amigo_profiling: self.sec_amigo_profiling || other.sec_amigo_profiling,
2898 valve_descriptor_set_host_mapping: self.valve_descriptor_set_host_mapping
2899 || other.valve_descriptor_set_host_mapping,
2900 valve_mutable_descriptor_type: self.valve_mutable_descriptor_type
2901 || other.valve_mutable_descriptor_type,
2902 _ne: crate::NonExhaustive(()),
2903 }
2904 }
2905 #[doc = r" Returns the intersection of `self` and `other`."]
2906 #[inline]
2907 pub const fn intersection(&self, other: &Self) -> Self {
2908 Self {
2909 khr_16bit_storage: self.khr_16bit_storage && other.khr_16bit_storage,
2910 khr_8bit_storage: self.khr_8bit_storage && other.khr_8bit_storage,
2911 khr_acceleration_structure: self.khr_acceleration_structure
2912 && other.khr_acceleration_structure,
2913 khr_bind_memory2: self.khr_bind_memory2 && other.khr_bind_memory2,
2914 khr_buffer_device_address: self.khr_buffer_device_address
2915 && other.khr_buffer_device_address,
2916 khr_calibrated_timestamps: self.khr_calibrated_timestamps
2917 && other.khr_calibrated_timestamps,
2918 khr_cooperative_matrix: self.khr_cooperative_matrix && other.khr_cooperative_matrix,
2919 khr_copy_commands2: self.khr_copy_commands2 && other.khr_copy_commands2,
2920 khr_create_renderpass2: self.khr_create_renderpass2 && other.khr_create_renderpass2,
2921 khr_dedicated_allocation: self.khr_dedicated_allocation
2922 && other.khr_dedicated_allocation,
2923 khr_deferred_host_operations: self.khr_deferred_host_operations
2924 && other.khr_deferred_host_operations,
2925 khr_depth_stencil_resolve: self.khr_depth_stencil_resolve
2926 && other.khr_depth_stencil_resolve,
2927 khr_descriptor_update_template: self.khr_descriptor_update_template
2928 && other.khr_descriptor_update_template,
2929 khr_device_group: self.khr_device_group && other.khr_device_group,
2930 khr_display_swapchain: self.khr_display_swapchain && other.khr_display_swapchain,
2931 khr_draw_indirect_count: self.khr_draw_indirect_count && other.khr_draw_indirect_count,
2932 khr_driver_properties: self.khr_driver_properties && other.khr_driver_properties,
2933 khr_dynamic_rendering: self.khr_dynamic_rendering && other.khr_dynamic_rendering,
2934 khr_dynamic_rendering_local_read: self.khr_dynamic_rendering_local_read
2935 && other.khr_dynamic_rendering_local_read,
2936 khr_external_fence: self.khr_external_fence && other.khr_external_fence,
2937 khr_external_fence_fd: self.khr_external_fence_fd && other.khr_external_fence_fd,
2938 khr_external_fence_win32: self.khr_external_fence_win32
2939 && other.khr_external_fence_win32,
2940 khr_external_memory: self.khr_external_memory && other.khr_external_memory,
2941 khr_external_memory_fd: self.khr_external_memory_fd && other.khr_external_memory_fd,
2942 khr_external_memory_win32: self.khr_external_memory_win32
2943 && other.khr_external_memory_win32,
2944 khr_external_semaphore: self.khr_external_semaphore && other.khr_external_semaphore,
2945 khr_external_semaphore_fd: self.khr_external_semaphore_fd
2946 && other.khr_external_semaphore_fd,
2947 khr_external_semaphore_win32: self.khr_external_semaphore_win32
2948 && other.khr_external_semaphore_win32,
2949 khr_format_feature_flags2: self.khr_format_feature_flags2
2950 && other.khr_format_feature_flags2,
2951 khr_fragment_shader_barycentric: self.khr_fragment_shader_barycentric
2952 && other.khr_fragment_shader_barycentric,
2953 khr_fragment_shading_rate: self.khr_fragment_shading_rate
2954 && other.khr_fragment_shading_rate,
2955 khr_get_memory_requirements2: self.khr_get_memory_requirements2
2956 && other.khr_get_memory_requirements2,
2957 khr_global_priority: self.khr_global_priority && other.khr_global_priority,
2958 khr_image_format_list: self.khr_image_format_list && other.khr_image_format_list,
2959 khr_imageless_framebuffer: self.khr_imageless_framebuffer
2960 && other.khr_imageless_framebuffer,
2961 khr_incremental_present: self.khr_incremental_present && other.khr_incremental_present,
2962 khr_index_type_uint8: self.khr_index_type_uint8 && other.khr_index_type_uint8,
2963 khr_line_rasterization: self.khr_line_rasterization && other.khr_line_rasterization,
2964 khr_load_store_op_none: self.khr_load_store_op_none && other.khr_load_store_op_none,
2965 khr_maintenance1: self.khr_maintenance1 && other.khr_maintenance1,
2966 khr_maintenance2: self.khr_maintenance2 && other.khr_maintenance2,
2967 khr_maintenance3: self.khr_maintenance3 && other.khr_maintenance3,
2968 khr_maintenance4: self.khr_maintenance4 && other.khr_maintenance4,
2969 khr_maintenance5: self.khr_maintenance5 && other.khr_maintenance5,
2970 khr_maintenance6: self.khr_maintenance6 && other.khr_maintenance6,
2971 khr_map_memory2: self.khr_map_memory2 && other.khr_map_memory2,
2972 khr_multiview: self.khr_multiview && other.khr_multiview,
2973 khr_performance_query: self.khr_performance_query && other.khr_performance_query,
2974 khr_pipeline_executable_properties: self.khr_pipeline_executable_properties
2975 && other.khr_pipeline_executable_properties,
2976 khr_pipeline_library: self.khr_pipeline_library && other.khr_pipeline_library,
2977 khr_portability_subset: self.khr_portability_subset && other.khr_portability_subset,
2978 khr_present_id: self.khr_present_id && other.khr_present_id,
2979 khr_present_wait: self.khr_present_wait && other.khr_present_wait,
2980 khr_push_descriptor: self.khr_push_descriptor && other.khr_push_descriptor,
2981 khr_ray_query: self.khr_ray_query && other.khr_ray_query,
2982 khr_ray_tracing_maintenance1: self.khr_ray_tracing_maintenance1
2983 && other.khr_ray_tracing_maintenance1,
2984 khr_ray_tracing_pipeline: self.khr_ray_tracing_pipeline
2985 && other.khr_ray_tracing_pipeline,
2986 khr_ray_tracing_position_fetch: self.khr_ray_tracing_position_fetch
2987 && other.khr_ray_tracing_position_fetch,
2988 khr_relaxed_block_layout: self.khr_relaxed_block_layout
2989 && other.khr_relaxed_block_layout,
2990 khr_sampler_mirror_clamp_to_edge: self.khr_sampler_mirror_clamp_to_edge
2991 && other.khr_sampler_mirror_clamp_to_edge,
2992 khr_sampler_ycbcr_conversion: self.khr_sampler_ycbcr_conversion
2993 && other.khr_sampler_ycbcr_conversion,
2994 khr_separate_depth_stencil_layouts: self.khr_separate_depth_stencil_layouts
2995 && other.khr_separate_depth_stencil_layouts,
2996 khr_shader_atomic_int64: self.khr_shader_atomic_int64 && other.khr_shader_atomic_int64,
2997 khr_shader_clock: self.khr_shader_clock && other.khr_shader_clock,
2998 khr_shader_draw_parameters: self.khr_shader_draw_parameters
2999 && other.khr_shader_draw_parameters,
3000 khr_shader_expect_assume: self.khr_shader_expect_assume
3001 && other.khr_shader_expect_assume,
3002 khr_shader_float16_int8: self.khr_shader_float16_int8 && other.khr_shader_float16_int8,
3003 khr_shader_float_controls: self.khr_shader_float_controls
3004 && other.khr_shader_float_controls,
3005 khr_shader_float_controls2: self.khr_shader_float_controls2
3006 && other.khr_shader_float_controls2,
3007 khr_shader_integer_dot_product: self.khr_shader_integer_dot_product
3008 && other.khr_shader_integer_dot_product,
3009 khr_shader_maximal_reconvergence: self.khr_shader_maximal_reconvergence
3010 && other.khr_shader_maximal_reconvergence,
3011 khr_shader_non_semantic_info: self.khr_shader_non_semantic_info
3012 && other.khr_shader_non_semantic_info,
3013 khr_shader_quad_control: self.khr_shader_quad_control && other.khr_shader_quad_control,
3014 khr_shader_subgroup_extended_types: self.khr_shader_subgroup_extended_types
3015 && other.khr_shader_subgroup_extended_types,
3016 khr_shader_subgroup_rotate: self.khr_shader_subgroup_rotate
3017 && other.khr_shader_subgroup_rotate,
3018 khr_shader_subgroup_uniform_control_flow: self.khr_shader_subgroup_uniform_control_flow
3019 && other.khr_shader_subgroup_uniform_control_flow,
3020 khr_shader_terminate_invocation: self.khr_shader_terminate_invocation
3021 && other.khr_shader_terminate_invocation,
3022 khr_shared_presentable_image: self.khr_shared_presentable_image
3023 && other.khr_shared_presentable_image,
3024 khr_spirv_1_4: self.khr_spirv_1_4 && other.khr_spirv_1_4,
3025 khr_storage_buffer_storage_class: self.khr_storage_buffer_storage_class
3026 && other.khr_storage_buffer_storage_class,
3027 khr_swapchain: self.khr_swapchain && other.khr_swapchain,
3028 khr_swapchain_mutable_format: self.khr_swapchain_mutable_format
3029 && other.khr_swapchain_mutable_format,
3030 khr_synchronization2: self.khr_synchronization2 && other.khr_synchronization2,
3031 khr_timeline_semaphore: self.khr_timeline_semaphore && other.khr_timeline_semaphore,
3032 khr_uniform_buffer_standard_layout: self.khr_uniform_buffer_standard_layout
3033 && other.khr_uniform_buffer_standard_layout,
3034 khr_variable_pointers: self.khr_variable_pointers && other.khr_variable_pointers,
3035 khr_vertex_attribute_divisor: self.khr_vertex_attribute_divisor
3036 && other.khr_vertex_attribute_divisor,
3037 khr_video_decode_av1: self.khr_video_decode_av1 && other.khr_video_decode_av1,
3038 khr_video_decode_h264: self.khr_video_decode_h264 && other.khr_video_decode_h264,
3039 khr_video_decode_h265: self.khr_video_decode_h265 && other.khr_video_decode_h265,
3040 khr_video_decode_queue: self.khr_video_decode_queue && other.khr_video_decode_queue,
3041 khr_video_encode_h264: self.khr_video_encode_h264 && other.khr_video_encode_h264,
3042 khr_video_encode_h265: self.khr_video_encode_h265 && other.khr_video_encode_h265,
3043 khr_video_encode_queue: self.khr_video_encode_queue && other.khr_video_encode_queue,
3044 khr_video_maintenance1: self.khr_video_maintenance1 && other.khr_video_maintenance1,
3045 khr_video_queue: self.khr_video_queue && other.khr_video_queue,
3046 khr_vulkan_memory_model: self.khr_vulkan_memory_model && other.khr_vulkan_memory_model,
3047 khr_win32_keyed_mutex: self.khr_win32_keyed_mutex && other.khr_win32_keyed_mutex,
3048 khr_workgroup_memory_explicit_layout: self.khr_workgroup_memory_explicit_layout
3049 && other.khr_workgroup_memory_explicit_layout,
3050 khr_zero_initialize_workgroup_memory: self.khr_zero_initialize_workgroup_memory
3051 && other.khr_zero_initialize_workgroup_memory,
3052 ext_4444_formats: self.ext_4444_formats && other.ext_4444_formats,
3053 ext_astc_decode_mode: self.ext_astc_decode_mode && other.ext_astc_decode_mode,
3054 ext_attachment_feedback_loop_dynamic_state: self
3055 .ext_attachment_feedback_loop_dynamic_state
3056 && other.ext_attachment_feedback_loop_dynamic_state,
3057 ext_attachment_feedback_loop_layout: self.ext_attachment_feedback_loop_layout
3058 && other.ext_attachment_feedback_loop_layout,
3059 ext_blend_operation_advanced: self.ext_blend_operation_advanced
3060 && other.ext_blend_operation_advanced,
3061 ext_border_color_swizzle: self.ext_border_color_swizzle
3062 && other.ext_border_color_swizzle,
3063 ext_buffer_device_address: self.ext_buffer_device_address
3064 && other.ext_buffer_device_address,
3065 ext_calibrated_timestamps: self.ext_calibrated_timestamps
3066 && other.ext_calibrated_timestamps,
3067 ext_color_write_enable: self.ext_color_write_enable && other.ext_color_write_enable,
3068 ext_conditional_rendering: self.ext_conditional_rendering
3069 && other.ext_conditional_rendering,
3070 ext_conservative_rasterization: self.ext_conservative_rasterization
3071 && other.ext_conservative_rasterization,
3072 ext_custom_border_color: self.ext_custom_border_color && other.ext_custom_border_color,
3073 ext_debug_marker: self.ext_debug_marker && other.ext_debug_marker,
3074 ext_depth_bias_control: self.ext_depth_bias_control && other.ext_depth_bias_control,
3075 ext_depth_clamp_zero_one: self.ext_depth_clamp_zero_one
3076 && other.ext_depth_clamp_zero_one,
3077 ext_depth_clip_control: self.ext_depth_clip_control && other.ext_depth_clip_control,
3078 ext_depth_clip_enable: self.ext_depth_clip_enable && other.ext_depth_clip_enable,
3079 ext_depth_range_unrestricted: self.ext_depth_range_unrestricted
3080 && other.ext_depth_range_unrestricted,
3081 ext_descriptor_buffer: self.ext_descriptor_buffer && other.ext_descriptor_buffer,
3082 ext_descriptor_indexing: self.ext_descriptor_indexing && other.ext_descriptor_indexing,
3083 ext_device_address_binding_report: self.ext_device_address_binding_report
3084 && other.ext_device_address_binding_report,
3085 ext_device_fault: self.ext_device_fault && other.ext_device_fault,
3086 ext_device_memory_report: self.ext_device_memory_report
3087 && other.ext_device_memory_report,
3088 ext_discard_rectangles: self.ext_discard_rectangles && other.ext_discard_rectangles,
3089 ext_display_control: self.ext_display_control && other.ext_display_control,
3090 ext_dynamic_rendering_unused_attachments: self.ext_dynamic_rendering_unused_attachments
3091 && other.ext_dynamic_rendering_unused_attachments,
3092 ext_extended_dynamic_state: self.ext_extended_dynamic_state
3093 && other.ext_extended_dynamic_state,
3094 ext_extended_dynamic_state2: self.ext_extended_dynamic_state2
3095 && other.ext_extended_dynamic_state2,
3096 ext_extended_dynamic_state3: self.ext_extended_dynamic_state3
3097 && other.ext_extended_dynamic_state3,
3098 ext_external_memory_acquire_unmodified: self.ext_external_memory_acquire_unmodified
3099 && other.ext_external_memory_acquire_unmodified,
3100 ext_external_memory_dma_buf: self.ext_external_memory_dma_buf
3101 && other.ext_external_memory_dma_buf,
3102 ext_external_memory_host: self.ext_external_memory_host
3103 && other.ext_external_memory_host,
3104 ext_filter_cubic: self.ext_filter_cubic && other.ext_filter_cubic,
3105 ext_fragment_density_map: self.ext_fragment_density_map
3106 && other.ext_fragment_density_map,
3107 ext_fragment_density_map2: self.ext_fragment_density_map2
3108 && other.ext_fragment_density_map2,
3109 ext_fragment_shader_interlock: self.ext_fragment_shader_interlock
3110 && other.ext_fragment_shader_interlock,
3111 ext_frame_boundary: self.ext_frame_boundary && other.ext_frame_boundary,
3112 ext_full_screen_exclusive: self.ext_full_screen_exclusive
3113 && other.ext_full_screen_exclusive,
3114 ext_global_priority: self.ext_global_priority && other.ext_global_priority,
3115 ext_global_priority_query: self.ext_global_priority_query
3116 && other.ext_global_priority_query,
3117 ext_graphics_pipeline_library: self.ext_graphics_pipeline_library
3118 && other.ext_graphics_pipeline_library,
3119 ext_hdr_metadata: self.ext_hdr_metadata && other.ext_hdr_metadata,
3120 ext_host_image_copy: self.ext_host_image_copy && other.ext_host_image_copy,
3121 ext_host_query_reset: self.ext_host_query_reset && other.ext_host_query_reset,
3122 ext_image_2d_view_of_3d: self.ext_image_2d_view_of_3d && other.ext_image_2d_view_of_3d,
3123 ext_image_compression_control: self.ext_image_compression_control
3124 && other.ext_image_compression_control,
3125 ext_image_compression_control_swapchain: self.ext_image_compression_control_swapchain
3126 && other.ext_image_compression_control_swapchain,
3127 ext_image_drm_format_modifier: self.ext_image_drm_format_modifier
3128 && other.ext_image_drm_format_modifier,
3129 ext_image_robustness: self.ext_image_robustness && other.ext_image_robustness,
3130 ext_image_sliced_view_of_3d: self.ext_image_sliced_view_of_3d
3131 && other.ext_image_sliced_view_of_3d,
3132 ext_image_view_min_lod: self.ext_image_view_min_lod && other.ext_image_view_min_lod,
3133 ext_index_type_uint8: self.ext_index_type_uint8 && other.ext_index_type_uint8,
3134 ext_inline_uniform_block: self.ext_inline_uniform_block
3135 && other.ext_inline_uniform_block,
3136 ext_legacy_dithering: self.ext_legacy_dithering && other.ext_legacy_dithering,
3137 ext_line_rasterization: self.ext_line_rasterization && other.ext_line_rasterization,
3138 ext_load_store_op_none: self.ext_load_store_op_none && other.ext_load_store_op_none,
3139 ext_map_memory_placed: self.ext_map_memory_placed && other.ext_map_memory_placed,
3140 ext_memory_budget: self.ext_memory_budget && other.ext_memory_budget,
3141 ext_memory_priority: self.ext_memory_priority && other.ext_memory_priority,
3142 ext_mesh_shader: self.ext_mesh_shader && other.ext_mesh_shader,
3143 ext_metal_objects: self.ext_metal_objects && other.ext_metal_objects,
3144 ext_multi_draw: self.ext_multi_draw && other.ext_multi_draw,
3145 ext_multisampled_render_to_single_sampled: self
3146 .ext_multisampled_render_to_single_sampled
3147 && other.ext_multisampled_render_to_single_sampled,
3148 ext_mutable_descriptor_type: self.ext_mutable_descriptor_type
3149 && other.ext_mutable_descriptor_type,
3150 ext_nested_command_buffer: self.ext_nested_command_buffer
3151 && other.ext_nested_command_buffer,
3152 ext_non_seamless_cube_map: self.ext_non_seamless_cube_map
3153 && other.ext_non_seamless_cube_map,
3154 ext_opacity_micromap: self.ext_opacity_micromap && other.ext_opacity_micromap,
3155 ext_pageable_device_local_memory: self.ext_pageable_device_local_memory
3156 && other.ext_pageable_device_local_memory,
3157 ext_pci_bus_info: self.ext_pci_bus_info && other.ext_pci_bus_info,
3158 ext_physical_device_drm: self.ext_physical_device_drm && other.ext_physical_device_drm,
3159 ext_pipeline_creation_cache_control: self.ext_pipeline_creation_cache_control
3160 && other.ext_pipeline_creation_cache_control,
3161 ext_pipeline_creation_feedback: self.ext_pipeline_creation_feedback
3162 && other.ext_pipeline_creation_feedback,
3163 ext_pipeline_library_group_handles: self.ext_pipeline_library_group_handles
3164 && other.ext_pipeline_library_group_handles,
3165 ext_pipeline_properties: self.ext_pipeline_properties && other.ext_pipeline_properties,
3166 ext_pipeline_protected_access: self.ext_pipeline_protected_access
3167 && other.ext_pipeline_protected_access,
3168 ext_pipeline_robustness: self.ext_pipeline_robustness && other.ext_pipeline_robustness,
3169 ext_post_depth_coverage: self.ext_post_depth_coverage && other.ext_post_depth_coverage,
3170 ext_primitive_topology_list_restart: self.ext_primitive_topology_list_restart
3171 && other.ext_primitive_topology_list_restart,
3172 ext_primitives_generated_query: self.ext_primitives_generated_query
3173 && other.ext_primitives_generated_query,
3174 ext_private_data: self.ext_private_data && other.ext_private_data,
3175 ext_provoking_vertex: self.ext_provoking_vertex && other.ext_provoking_vertex,
3176 ext_queue_family_foreign: self.ext_queue_family_foreign
3177 && other.ext_queue_family_foreign,
3178 ext_rasterization_order_attachment_access: self
3179 .ext_rasterization_order_attachment_access
3180 && other.ext_rasterization_order_attachment_access,
3181 ext_rgba10x6_formats: self.ext_rgba10x6_formats && other.ext_rgba10x6_formats,
3182 ext_robustness2: self.ext_robustness2 && other.ext_robustness2,
3183 ext_sample_locations: self.ext_sample_locations && other.ext_sample_locations,
3184 ext_sampler_filter_minmax: self.ext_sampler_filter_minmax
3185 && other.ext_sampler_filter_minmax,
3186 ext_scalar_block_layout: self.ext_scalar_block_layout && other.ext_scalar_block_layout,
3187 ext_separate_stencil_usage: self.ext_separate_stencil_usage
3188 && other.ext_separate_stencil_usage,
3189 ext_shader_atomic_float: self.ext_shader_atomic_float && other.ext_shader_atomic_float,
3190 ext_shader_atomic_float2: self.ext_shader_atomic_float2
3191 && other.ext_shader_atomic_float2,
3192 ext_shader_demote_to_helper_invocation: self.ext_shader_demote_to_helper_invocation
3193 && other.ext_shader_demote_to_helper_invocation,
3194 ext_shader_image_atomic_int64: self.ext_shader_image_atomic_int64
3195 && other.ext_shader_image_atomic_int64,
3196 ext_shader_module_identifier: self.ext_shader_module_identifier
3197 && other.ext_shader_module_identifier,
3198 ext_shader_object: self.ext_shader_object && other.ext_shader_object,
3199 ext_shader_stencil_export: self.ext_shader_stencil_export
3200 && other.ext_shader_stencil_export,
3201 ext_shader_subgroup_ballot: self.ext_shader_subgroup_ballot
3202 && other.ext_shader_subgroup_ballot,
3203 ext_shader_subgroup_vote: self.ext_shader_subgroup_vote
3204 && other.ext_shader_subgroup_vote,
3205 ext_shader_tile_image: self.ext_shader_tile_image && other.ext_shader_tile_image,
3206 ext_shader_viewport_index_layer: self.ext_shader_viewport_index_layer
3207 && other.ext_shader_viewport_index_layer,
3208 ext_subgroup_size_control: self.ext_subgroup_size_control
3209 && other.ext_subgroup_size_control,
3210 ext_subpass_merge_feedback: self.ext_subpass_merge_feedback
3211 && other.ext_subpass_merge_feedback,
3212 ext_swapchain_maintenance1: self.ext_swapchain_maintenance1
3213 && other.ext_swapchain_maintenance1,
3214 ext_texel_buffer_alignment: self.ext_texel_buffer_alignment
3215 && other.ext_texel_buffer_alignment,
3216 ext_texture_compression_astc_hdr: self.ext_texture_compression_astc_hdr
3217 && other.ext_texture_compression_astc_hdr,
3218 ext_tooling_info: self.ext_tooling_info && other.ext_tooling_info,
3219 ext_transform_feedback: self.ext_transform_feedback && other.ext_transform_feedback,
3220 ext_validation_cache: self.ext_validation_cache && other.ext_validation_cache,
3221 ext_vertex_attribute_divisor: self.ext_vertex_attribute_divisor
3222 && other.ext_vertex_attribute_divisor,
3223 ext_vertex_input_dynamic_state: self.ext_vertex_input_dynamic_state
3224 && other.ext_vertex_input_dynamic_state,
3225 ext_ycbcr_2plane_444_formats: self.ext_ycbcr_2plane_444_formats
3226 && other.ext_ycbcr_2plane_444_formats,
3227 ext_ycbcr_image_arrays: self.ext_ycbcr_image_arrays && other.ext_ycbcr_image_arrays,
3228 amdx_shader_enqueue: self.amdx_shader_enqueue && other.amdx_shader_enqueue,
3229 amd_buffer_marker: self.amd_buffer_marker && other.amd_buffer_marker,
3230 amd_device_coherent_memory: self.amd_device_coherent_memory
3231 && other.amd_device_coherent_memory,
3232 amd_display_native_hdr: self.amd_display_native_hdr && other.amd_display_native_hdr,
3233 amd_draw_indirect_count: self.amd_draw_indirect_count && other.amd_draw_indirect_count,
3234 amd_gcn_shader: self.amd_gcn_shader && other.amd_gcn_shader,
3235 amd_gpu_shader_half_float: self.amd_gpu_shader_half_float
3236 && other.amd_gpu_shader_half_float,
3237 amd_gpu_shader_int16: self.amd_gpu_shader_int16 && other.amd_gpu_shader_int16,
3238 amd_memory_overallocation_behavior: self.amd_memory_overallocation_behavior
3239 && other.amd_memory_overallocation_behavior,
3240 amd_mixed_attachment_samples: self.amd_mixed_attachment_samples
3241 && other.amd_mixed_attachment_samples,
3242 amd_pipeline_compiler_control: self.amd_pipeline_compiler_control
3243 && other.amd_pipeline_compiler_control,
3244 amd_rasterization_order: self.amd_rasterization_order && other.amd_rasterization_order,
3245 amd_shader_ballot: self.amd_shader_ballot && other.amd_shader_ballot,
3246 amd_shader_core_properties: self.amd_shader_core_properties
3247 && other.amd_shader_core_properties,
3248 amd_shader_core_properties2: self.amd_shader_core_properties2
3249 && other.amd_shader_core_properties2,
3250 amd_shader_early_and_late_fragment_tests: self.amd_shader_early_and_late_fragment_tests
3251 && other.amd_shader_early_and_late_fragment_tests,
3252 amd_shader_explicit_vertex_parameter: self.amd_shader_explicit_vertex_parameter
3253 && other.amd_shader_explicit_vertex_parameter,
3254 amd_shader_fragment_mask: self.amd_shader_fragment_mask
3255 && other.amd_shader_fragment_mask,
3256 amd_shader_image_load_store_lod: self.amd_shader_image_load_store_lod
3257 && other.amd_shader_image_load_store_lod,
3258 amd_shader_info: self.amd_shader_info && other.amd_shader_info,
3259 amd_shader_trinary_minmax: self.amd_shader_trinary_minmax
3260 && other.amd_shader_trinary_minmax,
3261 amd_texture_gather_bias_lod: self.amd_texture_gather_bias_lod
3262 && other.amd_texture_gather_bias_lod,
3263 android_external_format_resolve: self.android_external_format_resolve
3264 && other.android_external_format_resolve,
3265 android_external_memory_android_hardware_buffer: self
3266 .android_external_memory_android_hardware_buffer
3267 && other.android_external_memory_android_hardware_buffer,
3268 arm_rasterization_order_attachment_access: self
3269 .arm_rasterization_order_attachment_access
3270 && other.arm_rasterization_order_attachment_access,
3271 arm_render_pass_striped: self.arm_render_pass_striped && other.arm_render_pass_striped,
3272 arm_scheduling_controls: self.arm_scheduling_controls && other.arm_scheduling_controls,
3273 arm_shader_core_builtins: self.arm_shader_core_builtins
3274 && other.arm_shader_core_builtins,
3275 arm_shader_core_properties: self.arm_shader_core_properties
3276 && other.arm_shader_core_properties,
3277 fuchsia_buffer_collection: self.fuchsia_buffer_collection
3278 && other.fuchsia_buffer_collection,
3279 fuchsia_external_memory: self.fuchsia_external_memory && other.fuchsia_external_memory,
3280 fuchsia_external_semaphore: self.fuchsia_external_semaphore
3281 && other.fuchsia_external_semaphore,
3282 ggp_frame_token: self.ggp_frame_token && other.ggp_frame_token,
3283 google_decorate_string: self.google_decorate_string && other.google_decorate_string,
3284 google_display_timing: self.google_display_timing && other.google_display_timing,
3285 google_hlsl_functionality1: self.google_hlsl_functionality1
3286 && other.google_hlsl_functionality1,
3287 google_user_type: self.google_user_type && other.google_user_type,
3288 huawei_cluster_culling_shader: self.huawei_cluster_culling_shader
3289 && other.huawei_cluster_culling_shader,
3290 huawei_invocation_mask: self.huawei_invocation_mask && other.huawei_invocation_mask,
3291 huawei_subpass_shading: self.huawei_subpass_shading && other.huawei_subpass_shading,
3292 img_filter_cubic: self.img_filter_cubic && other.img_filter_cubic,
3293 img_format_pvrtc: self.img_format_pvrtc && other.img_format_pvrtc,
3294 img_relaxed_line_rasterization: self.img_relaxed_line_rasterization
3295 && other.img_relaxed_line_rasterization,
3296 intel_performance_query: self.intel_performance_query && other.intel_performance_query,
3297 intel_shader_integer_functions2: self.intel_shader_integer_functions2
3298 && other.intel_shader_integer_functions2,
3299 msft_layered_driver: self.msft_layered_driver && other.msft_layered_driver,
3300 nvx_binary_import: self.nvx_binary_import && other.nvx_binary_import,
3301 nvx_image_view_handle: self.nvx_image_view_handle && other.nvx_image_view_handle,
3302 nvx_multiview_per_view_attributes: self.nvx_multiview_per_view_attributes
3303 && other.nvx_multiview_per_view_attributes,
3304 nv_acquire_winrt_display: self.nv_acquire_winrt_display
3305 && other.nv_acquire_winrt_display,
3306 nv_clip_space_w_scaling: self.nv_clip_space_w_scaling && other.nv_clip_space_w_scaling,
3307 nv_compute_shader_derivatives: self.nv_compute_shader_derivatives
3308 && other.nv_compute_shader_derivatives,
3309 nv_cooperative_matrix: self.nv_cooperative_matrix && other.nv_cooperative_matrix,
3310 nv_copy_memory_indirect: self.nv_copy_memory_indirect && other.nv_copy_memory_indirect,
3311 nv_corner_sampled_image: self.nv_corner_sampled_image && other.nv_corner_sampled_image,
3312 nv_coverage_reduction_mode: self.nv_coverage_reduction_mode
3313 && other.nv_coverage_reduction_mode,
3314 nv_cuda_kernel_launch: self.nv_cuda_kernel_launch && other.nv_cuda_kernel_launch,
3315 nv_dedicated_allocation: self.nv_dedicated_allocation && other.nv_dedicated_allocation,
3316 nv_dedicated_allocation_image_aliasing: self.nv_dedicated_allocation_image_aliasing
3317 && other.nv_dedicated_allocation_image_aliasing,
3318 nv_descriptor_pool_overallocation: self.nv_descriptor_pool_overallocation
3319 && other.nv_descriptor_pool_overallocation,
3320 nv_device_diagnostic_checkpoints: self.nv_device_diagnostic_checkpoints
3321 && other.nv_device_diagnostic_checkpoints,
3322 nv_device_diagnostics_config: self.nv_device_diagnostics_config
3323 && other.nv_device_diagnostics_config,
3324 nv_device_generated_commands: self.nv_device_generated_commands
3325 && other.nv_device_generated_commands,
3326 nv_device_generated_commands_compute: self.nv_device_generated_commands_compute
3327 && other.nv_device_generated_commands_compute,
3328 nv_displacement_micromap: self.nv_displacement_micromap
3329 && other.nv_displacement_micromap,
3330 nv_extended_sparse_address_space: self.nv_extended_sparse_address_space
3331 && other.nv_extended_sparse_address_space,
3332 nv_external_memory: self.nv_external_memory && other.nv_external_memory,
3333 nv_external_memory_rdma: self.nv_external_memory_rdma && other.nv_external_memory_rdma,
3334 nv_external_memory_win32: self.nv_external_memory_win32
3335 && other.nv_external_memory_win32,
3336 nv_fill_rectangle: self.nv_fill_rectangle && other.nv_fill_rectangle,
3337 nv_fragment_coverage_to_color: self.nv_fragment_coverage_to_color
3338 && other.nv_fragment_coverage_to_color,
3339 nv_fragment_shader_barycentric: self.nv_fragment_shader_barycentric
3340 && other.nv_fragment_shader_barycentric,
3341 nv_fragment_shading_rate_enums: self.nv_fragment_shading_rate_enums
3342 && other.nv_fragment_shading_rate_enums,
3343 nv_framebuffer_mixed_samples: self.nv_framebuffer_mixed_samples
3344 && other.nv_framebuffer_mixed_samples,
3345 nv_geometry_shader_passthrough: self.nv_geometry_shader_passthrough
3346 && other.nv_geometry_shader_passthrough,
3347 nv_glsl_shader: self.nv_glsl_shader && other.nv_glsl_shader,
3348 nv_inherited_viewport_scissor: self.nv_inherited_viewport_scissor
3349 && other.nv_inherited_viewport_scissor,
3350 nv_linear_color_attachment: self.nv_linear_color_attachment
3351 && other.nv_linear_color_attachment,
3352 nv_low_latency: self.nv_low_latency && other.nv_low_latency,
3353 nv_low_latency2: self.nv_low_latency2 && other.nv_low_latency2,
3354 nv_memory_decompression: self.nv_memory_decompression && other.nv_memory_decompression,
3355 nv_mesh_shader: self.nv_mesh_shader && other.nv_mesh_shader,
3356 nv_optical_flow: self.nv_optical_flow && other.nv_optical_flow,
3357 nv_per_stage_descriptor_set: self.nv_per_stage_descriptor_set
3358 && other.nv_per_stage_descriptor_set,
3359 nv_present_barrier: self.nv_present_barrier && other.nv_present_barrier,
3360 nv_raw_access_chains: self.nv_raw_access_chains && other.nv_raw_access_chains,
3361 nv_ray_tracing: self.nv_ray_tracing && other.nv_ray_tracing,
3362 nv_ray_tracing_invocation_reorder: self.nv_ray_tracing_invocation_reorder
3363 && other.nv_ray_tracing_invocation_reorder,
3364 nv_ray_tracing_motion_blur: self.nv_ray_tracing_motion_blur
3365 && other.nv_ray_tracing_motion_blur,
3366 nv_ray_tracing_validation: self.nv_ray_tracing_validation
3367 && other.nv_ray_tracing_validation,
3368 nv_representative_fragment_test: self.nv_representative_fragment_test
3369 && other.nv_representative_fragment_test,
3370 nv_sample_mask_override_coverage: self.nv_sample_mask_override_coverage
3371 && other.nv_sample_mask_override_coverage,
3372 nv_scissor_exclusive: self.nv_scissor_exclusive && other.nv_scissor_exclusive,
3373 nv_shader_atomic_float16_vector: self.nv_shader_atomic_float16_vector
3374 && other.nv_shader_atomic_float16_vector,
3375 nv_shader_image_footprint: self.nv_shader_image_footprint
3376 && other.nv_shader_image_footprint,
3377 nv_shader_sm_builtins: self.nv_shader_sm_builtins && other.nv_shader_sm_builtins,
3378 nv_shader_subgroup_partitioned: self.nv_shader_subgroup_partitioned
3379 && other.nv_shader_subgroup_partitioned,
3380 nv_shading_rate_image: self.nv_shading_rate_image && other.nv_shading_rate_image,
3381 nv_viewport_array2: self.nv_viewport_array2 && other.nv_viewport_array2,
3382 nv_viewport_swizzle: self.nv_viewport_swizzle && other.nv_viewport_swizzle,
3383 nv_win32_keyed_mutex: self.nv_win32_keyed_mutex && other.nv_win32_keyed_mutex,
3384 qcom_filter_cubic_clamp: self.qcom_filter_cubic_clamp && other.qcom_filter_cubic_clamp,
3385 qcom_filter_cubic_weights: self.qcom_filter_cubic_weights
3386 && other.qcom_filter_cubic_weights,
3387 qcom_fragment_density_map_offset: self.qcom_fragment_density_map_offset
3388 && other.qcom_fragment_density_map_offset,
3389 qcom_image_processing: self.qcom_image_processing && other.qcom_image_processing,
3390 qcom_image_processing2: self.qcom_image_processing2 && other.qcom_image_processing2,
3391 qcom_multiview_per_view_render_areas: self.qcom_multiview_per_view_render_areas
3392 && other.qcom_multiview_per_view_render_areas,
3393 qcom_multiview_per_view_viewports: self.qcom_multiview_per_view_viewports
3394 && other.qcom_multiview_per_view_viewports,
3395 qcom_render_pass_shader_resolve: self.qcom_render_pass_shader_resolve
3396 && other.qcom_render_pass_shader_resolve,
3397 qcom_render_pass_store_ops: self.qcom_render_pass_store_ops
3398 && other.qcom_render_pass_store_ops,
3399 qcom_render_pass_transform: self.qcom_render_pass_transform
3400 && other.qcom_render_pass_transform,
3401 qcom_rotated_copy_commands: self.qcom_rotated_copy_commands
3402 && other.qcom_rotated_copy_commands,
3403 qcom_tile_properties: self.qcom_tile_properties && other.qcom_tile_properties,
3404 qcom_ycbcr_degamma: self.qcom_ycbcr_degamma && other.qcom_ycbcr_degamma,
3405 qnx_external_memory_screen_buffer: self.qnx_external_memory_screen_buffer
3406 && other.qnx_external_memory_screen_buffer,
3407 sec_amigo_profiling: self.sec_amigo_profiling && other.sec_amigo_profiling,
3408 valve_descriptor_set_host_mapping: self.valve_descriptor_set_host_mapping
3409 && other.valve_descriptor_set_host_mapping,
3410 valve_mutable_descriptor_type: self.valve_mutable_descriptor_type
3411 && other.valve_mutable_descriptor_type,
3412 _ne: crate::NonExhaustive(()),
3413 }
3414 }
3415 #[doc = r" Returns `self` without the members set in `other`."]
3416 #[inline]
3417 pub const fn difference(&self, other: &Self) -> Self {
3418 Self {
3419 khr_16bit_storage: self.khr_16bit_storage && !other.khr_16bit_storage,
3420 khr_8bit_storage: self.khr_8bit_storage && !other.khr_8bit_storage,
3421 khr_acceleration_structure: self.khr_acceleration_structure
3422 && !other.khr_acceleration_structure,
3423 khr_bind_memory2: self.khr_bind_memory2 && !other.khr_bind_memory2,
3424 khr_buffer_device_address: self.khr_buffer_device_address
3425 && !other.khr_buffer_device_address,
3426 khr_calibrated_timestamps: self.khr_calibrated_timestamps
3427 && !other.khr_calibrated_timestamps,
3428 khr_cooperative_matrix: self.khr_cooperative_matrix && !other.khr_cooperative_matrix,
3429 khr_copy_commands2: self.khr_copy_commands2 && !other.khr_copy_commands2,
3430 khr_create_renderpass2: self.khr_create_renderpass2 && !other.khr_create_renderpass2,
3431 khr_dedicated_allocation: self.khr_dedicated_allocation
3432 && !other.khr_dedicated_allocation,
3433 khr_deferred_host_operations: self.khr_deferred_host_operations
3434 && !other.khr_deferred_host_operations,
3435 khr_depth_stencil_resolve: self.khr_depth_stencil_resolve
3436 && !other.khr_depth_stencil_resolve,
3437 khr_descriptor_update_template: self.khr_descriptor_update_template
3438 && !other.khr_descriptor_update_template,
3439 khr_device_group: self.khr_device_group && !other.khr_device_group,
3440 khr_display_swapchain: self.khr_display_swapchain && !other.khr_display_swapchain,
3441 khr_draw_indirect_count: self.khr_draw_indirect_count && !other.khr_draw_indirect_count,
3442 khr_driver_properties: self.khr_driver_properties && !other.khr_driver_properties,
3443 khr_dynamic_rendering: self.khr_dynamic_rendering && !other.khr_dynamic_rendering,
3444 khr_dynamic_rendering_local_read: self.khr_dynamic_rendering_local_read
3445 && !other.khr_dynamic_rendering_local_read,
3446 khr_external_fence: self.khr_external_fence && !other.khr_external_fence,
3447 khr_external_fence_fd: self.khr_external_fence_fd && !other.khr_external_fence_fd,
3448 khr_external_fence_win32: self.khr_external_fence_win32
3449 && !other.khr_external_fence_win32,
3450 khr_external_memory: self.khr_external_memory && !other.khr_external_memory,
3451 khr_external_memory_fd: self.khr_external_memory_fd && !other.khr_external_memory_fd,
3452 khr_external_memory_win32: self.khr_external_memory_win32
3453 && !other.khr_external_memory_win32,
3454 khr_external_semaphore: self.khr_external_semaphore && !other.khr_external_semaphore,
3455 khr_external_semaphore_fd: self.khr_external_semaphore_fd
3456 && !other.khr_external_semaphore_fd,
3457 khr_external_semaphore_win32: self.khr_external_semaphore_win32
3458 && !other.khr_external_semaphore_win32,
3459 khr_format_feature_flags2: self.khr_format_feature_flags2
3460 && !other.khr_format_feature_flags2,
3461 khr_fragment_shader_barycentric: self.khr_fragment_shader_barycentric
3462 && !other.khr_fragment_shader_barycentric,
3463 khr_fragment_shading_rate: self.khr_fragment_shading_rate
3464 && !other.khr_fragment_shading_rate,
3465 khr_get_memory_requirements2: self.khr_get_memory_requirements2
3466 && !other.khr_get_memory_requirements2,
3467 khr_global_priority: self.khr_global_priority && !other.khr_global_priority,
3468 khr_image_format_list: self.khr_image_format_list && !other.khr_image_format_list,
3469 khr_imageless_framebuffer: self.khr_imageless_framebuffer
3470 && !other.khr_imageless_framebuffer,
3471 khr_incremental_present: self.khr_incremental_present && !other.khr_incremental_present,
3472 khr_index_type_uint8: self.khr_index_type_uint8 && !other.khr_index_type_uint8,
3473 khr_line_rasterization: self.khr_line_rasterization && !other.khr_line_rasterization,
3474 khr_load_store_op_none: self.khr_load_store_op_none && !other.khr_load_store_op_none,
3475 khr_maintenance1: self.khr_maintenance1 && !other.khr_maintenance1,
3476 khr_maintenance2: self.khr_maintenance2 && !other.khr_maintenance2,
3477 khr_maintenance3: self.khr_maintenance3 && !other.khr_maintenance3,
3478 khr_maintenance4: self.khr_maintenance4 && !other.khr_maintenance4,
3479 khr_maintenance5: self.khr_maintenance5 && !other.khr_maintenance5,
3480 khr_maintenance6: self.khr_maintenance6 && !other.khr_maintenance6,
3481 khr_map_memory2: self.khr_map_memory2 && !other.khr_map_memory2,
3482 khr_multiview: self.khr_multiview && !other.khr_multiview,
3483 khr_performance_query: self.khr_performance_query && !other.khr_performance_query,
3484 khr_pipeline_executable_properties: self.khr_pipeline_executable_properties
3485 && !other.khr_pipeline_executable_properties,
3486 khr_pipeline_library: self.khr_pipeline_library && !other.khr_pipeline_library,
3487 khr_portability_subset: self.khr_portability_subset && !other.khr_portability_subset,
3488 khr_present_id: self.khr_present_id && !other.khr_present_id,
3489 khr_present_wait: self.khr_present_wait && !other.khr_present_wait,
3490 khr_push_descriptor: self.khr_push_descriptor && !other.khr_push_descriptor,
3491 khr_ray_query: self.khr_ray_query && !other.khr_ray_query,
3492 khr_ray_tracing_maintenance1: self.khr_ray_tracing_maintenance1
3493 && !other.khr_ray_tracing_maintenance1,
3494 khr_ray_tracing_pipeline: self.khr_ray_tracing_pipeline
3495 && !other.khr_ray_tracing_pipeline,
3496 khr_ray_tracing_position_fetch: self.khr_ray_tracing_position_fetch
3497 && !other.khr_ray_tracing_position_fetch,
3498 khr_relaxed_block_layout: self.khr_relaxed_block_layout
3499 && !other.khr_relaxed_block_layout,
3500 khr_sampler_mirror_clamp_to_edge: self.khr_sampler_mirror_clamp_to_edge
3501 && !other.khr_sampler_mirror_clamp_to_edge,
3502 khr_sampler_ycbcr_conversion: self.khr_sampler_ycbcr_conversion
3503 && !other.khr_sampler_ycbcr_conversion,
3504 khr_separate_depth_stencil_layouts: self.khr_separate_depth_stencil_layouts
3505 && !other.khr_separate_depth_stencil_layouts,
3506 khr_shader_atomic_int64: self.khr_shader_atomic_int64 && !other.khr_shader_atomic_int64,
3507 khr_shader_clock: self.khr_shader_clock && !other.khr_shader_clock,
3508 khr_shader_draw_parameters: self.khr_shader_draw_parameters
3509 && !other.khr_shader_draw_parameters,
3510 khr_shader_expect_assume: self.khr_shader_expect_assume
3511 && !other.khr_shader_expect_assume,
3512 khr_shader_float16_int8: self.khr_shader_float16_int8 && !other.khr_shader_float16_int8,
3513 khr_shader_float_controls: self.khr_shader_float_controls
3514 && !other.khr_shader_float_controls,
3515 khr_shader_float_controls2: self.khr_shader_float_controls2
3516 && !other.khr_shader_float_controls2,
3517 khr_shader_integer_dot_product: self.khr_shader_integer_dot_product
3518 && !other.khr_shader_integer_dot_product,
3519 khr_shader_maximal_reconvergence: self.khr_shader_maximal_reconvergence
3520 && !other.khr_shader_maximal_reconvergence,
3521 khr_shader_non_semantic_info: self.khr_shader_non_semantic_info
3522 && !other.khr_shader_non_semantic_info,
3523 khr_shader_quad_control: self.khr_shader_quad_control && !other.khr_shader_quad_control,
3524 khr_shader_subgroup_extended_types: self.khr_shader_subgroup_extended_types
3525 && !other.khr_shader_subgroup_extended_types,
3526 khr_shader_subgroup_rotate: self.khr_shader_subgroup_rotate
3527 && !other.khr_shader_subgroup_rotate,
3528 khr_shader_subgroup_uniform_control_flow: self.khr_shader_subgroup_uniform_control_flow
3529 && !other.khr_shader_subgroup_uniform_control_flow,
3530 khr_shader_terminate_invocation: self.khr_shader_terminate_invocation
3531 && !other.khr_shader_terminate_invocation,
3532 khr_shared_presentable_image: self.khr_shared_presentable_image
3533 && !other.khr_shared_presentable_image,
3534 khr_spirv_1_4: self.khr_spirv_1_4 && !other.khr_spirv_1_4,
3535 khr_storage_buffer_storage_class: self.khr_storage_buffer_storage_class
3536 && !other.khr_storage_buffer_storage_class,
3537 khr_swapchain: self.khr_swapchain && !other.khr_swapchain,
3538 khr_swapchain_mutable_format: self.khr_swapchain_mutable_format
3539 && !other.khr_swapchain_mutable_format,
3540 khr_synchronization2: self.khr_synchronization2 && !other.khr_synchronization2,
3541 khr_timeline_semaphore: self.khr_timeline_semaphore && !other.khr_timeline_semaphore,
3542 khr_uniform_buffer_standard_layout: self.khr_uniform_buffer_standard_layout
3543 && !other.khr_uniform_buffer_standard_layout,
3544 khr_variable_pointers: self.khr_variable_pointers && !other.khr_variable_pointers,
3545 khr_vertex_attribute_divisor: self.khr_vertex_attribute_divisor
3546 && !other.khr_vertex_attribute_divisor,
3547 khr_video_decode_av1: self.khr_video_decode_av1 && !other.khr_video_decode_av1,
3548 khr_video_decode_h264: self.khr_video_decode_h264 && !other.khr_video_decode_h264,
3549 khr_video_decode_h265: self.khr_video_decode_h265 && !other.khr_video_decode_h265,
3550 khr_video_decode_queue: self.khr_video_decode_queue && !other.khr_video_decode_queue,
3551 khr_video_encode_h264: self.khr_video_encode_h264 && !other.khr_video_encode_h264,
3552 khr_video_encode_h265: self.khr_video_encode_h265 && !other.khr_video_encode_h265,
3553 khr_video_encode_queue: self.khr_video_encode_queue && !other.khr_video_encode_queue,
3554 khr_video_maintenance1: self.khr_video_maintenance1 && !other.khr_video_maintenance1,
3555 khr_video_queue: self.khr_video_queue && !other.khr_video_queue,
3556 khr_vulkan_memory_model: self.khr_vulkan_memory_model && !other.khr_vulkan_memory_model,
3557 khr_win32_keyed_mutex: self.khr_win32_keyed_mutex && !other.khr_win32_keyed_mutex,
3558 khr_workgroup_memory_explicit_layout: self.khr_workgroup_memory_explicit_layout
3559 && !other.khr_workgroup_memory_explicit_layout,
3560 khr_zero_initialize_workgroup_memory: self.khr_zero_initialize_workgroup_memory
3561 && !other.khr_zero_initialize_workgroup_memory,
3562 ext_4444_formats: self.ext_4444_formats && !other.ext_4444_formats,
3563 ext_astc_decode_mode: self.ext_astc_decode_mode && !other.ext_astc_decode_mode,
3564 ext_attachment_feedback_loop_dynamic_state: self
3565 .ext_attachment_feedback_loop_dynamic_state
3566 && !other.ext_attachment_feedback_loop_dynamic_state,
3567 ext_attachment_feedback_loop_layout: self.ext_attachment_feedback_loop_layout
3568 && !other.ext_attachment_feedback_loop_layout,
3569 ext_blend_operation_advanced: self.ext_blend_operation_advanced
3570 && !other.ext_blend_operation_advanced,
3571 ext_border_color_swizzle: self.ext_border_color_swizzle
3572 && !other.ext_border_color_swizzle,
3573 ext_buffer_device_address: self.ext_buffer_device_address
3574 && !other.ext_buffer_device_address,
3575 ext_calibrated_timestamps: self.ext_calibrated_timestamps
3576 && !other.ext_calibrated_timestamps,
3577 ext_color_write_enable: self.ext_color_write_enable && !other.ext_color_write_enable,
3578 ext_conditional_rendering: self.ext_conditional_rendering
3579 && !other.ext_conditional_rendering,
3580 ext_conservative_rasterization: self.ext_conservative_rasterization
3581 && !other.ext_conservative_rasterization,
3582 ext_custom_border_color: self.ext_custom_border_color && !other.ext_custom_border_color,
3583 ext_debug_marker: self.ext_debug_marker && !other.ext_debug_marker,
3584 ext_depth_bias_control: self.ext_depth_bias_control && !other.ext_depth_bias_control,
3585 ext_depth_clamp_zero_one: self.ext_depth_clamp_zero_one
3586 && !other.ext_depth_clamp_zero_one,
3587 ext_depth_clip_control: self.ext_depth_clip_control && !other.ext_depth_clip_control,
3588 ext_depth_clip_enable: self.ext_depth_clip_enable && !other.ext_depth_clip_enable,
3589 ext_depth_range_unrestricted: self.ext_depth_range_unrestricted
3590 && !other.ext_depth_range_unrestricted,
3591 ext_descriptor_buffer: self.ext_descriptor_buffer && !other.ext_descriptor_buffer,
3592 ext_descriptor_indexing: self.ext_descriptor_indexing && !other.ext_descriptor_indexing,
3593 ext_device_address_binding_report: self.ext_device_address_binding_report
3594 && !other.ext_device_address_binding_report,
3595 ext_device_fault: self.ext_device_fault && !other.ext_device_fault,
3596 ext_device_memory_report: self.ext_device_memory_report
3597 && !other.ext_device_memory_report,
3598 ext_discard_rectangles: self.ext_discard_rectangles && !other.ext_discard_rectangles,
3599 ext_display_control: self.ext_display_control && !other.ext_display_control,
3600 ext_dynamic_rendering_unused_attachments: self.ext_dynamic_rendering_unused_attachments
3601 && !other.ext_dynamic_rendering_unused_attachments,
3602 ext_extended_dynamic_state: self.ext_extended_dynamic_state
3603 && !other.ext_extended_dynamic_state,
3604 ext_extended_dynamic_state2: self.ext_extended_dynamic_state2
3605 && !other.ext_extended_dynamic_state2,
3606 ext_extended_dynamic_state3: self.ext_extended_dynamic_state3
3607 && !other.ext_extended_dynamic_state3,
3608 ext_external_memory_acquire_unmodified: self.ext_external_memory_acquire_unmodified
3609 && !other.ext_external_memory_acquire_unmodified,
3610 ext_external_memory_dma_buf: self.ext_external_memory_dma_buf
3611 && !other.ext_external_memory_dma_buf,
3612 ext_external_memory_host: self.ext_external_memory_host
3613 && !other.ext_external_memory_host,
3614 ext_filter_cubic: self.ext_filter_cubic && !other.ext_filter_cubic,
3615 ext_fragment_density_map: self.ext_fragment_density_map
3616 && !other.ext_fragment_density_map,
3617 ext_fragment_density_map2: self.ext_fragment_density_map2
3618 && !other.ext_fragment_density_map2,
3619 ext_fragment_shader_interlock: self.ext_fragment_shader_interlock
3620 && !other.ext_fragment_shader_interlock,
3621 ext_frame_boundary: self.ext_frame_boundary && !other.ext_frame_boundary,
3622 ext_full_screen_exclusive: self.ext_full_screen_exclusive
3623 && !other.ext_full_screen_exclusive,
3624 ext_global_priority: self.ext_global_priority && !other.ext_global_priority,
3625 ext_global_priority_query: self.ext_global_priority_query
3626 && !other.ext_global_priority_query,
3627 ext_graphics_pipeline_library: self.ext_graphics_pipeline_library
3628 && !other.ext_graphics_pipeline_library,
3629 ext_hdr_metadata: self.ext_hdr_metadata && !other.ext_hdr_metadata,
3630 ext_host_image_copy: self.ext_host_image_copy && !other.ext_host_image_copy,
3631 ext_host_query_reset: self.ext_host_query_reset && !other.ext_host_query_reset,
3632 ext_image_2d_view_of_3d: self.ext_image_2d_view_of_3d && !other.ext_image_2d_view_of_3d,
3633 ext_image_compression_control: self.ext_image_compression_control
3634 && !other.ext_image_compression_control,
3635 ext_image_compression_control_swapchain: self.ext_image_compression_control_swapchain
3636 && !other.ext_image_compression_control_swapchain,
3637 ext_image_drm_format_modifier: self.ext_image_drm_format_modifier
3638 && !other.ext_image_drm_format_modifier,
3639 ext_image_robustness: self.ext_image_robustness && !other.ext_image_robustness,
3640 ext_image_sliced_view_of_3d: self.ext_image_sliced_view_of_3d
3641 && !other.ext_image_sliced_view_of_3d,
3642 ext_image_view_min_lod: self.ext_image_view_min_lod && !other.ext_image_view_min_lod,
3643 ext_index_type_uint8: self.ext_index_type_uint8 && !other.ext_index_type_uint8,
3644 ext_inline_uniform_block: self.ext_inline_uniform_block
3645 && !other.ext_inline_uniform_block,
3646 ext_legacy_dithering: self.ext_legacy_dithering && !other.ext_legacy_dithering,
3647 ext_line_rasterization: self.ext_line_rasterization && !other.ext_line_rasterization,
3648 ext_load_store_op_none: self.ext_load_store_op_none && !other.ext_load_store_op_none,
3649 ext_map_memory_placed: self.ext_map_memory_placed && !other.ext_map_memory_placed,
3650 ext_memory_budget: self.ext_memory_budget && !other.ext_memory_budget,
3651 ext_memory_priority: self.ext_memory_priority && !other.ext_memory_priority,
3652 ext_mesh_shader: self.ext_mesh_shader && !other.ext_mesh_shader,
3653 ext_metal_objects: self.ext_metal_objects && !other.ext_metal_objects,
3654 ext_multi_draw: self.ext_multi_draw && !other.ext_multi_draw,
3655 ext_multisampled_render_to_single_sampled: self
3656 .ext_multisampled_render_to_single_sampled
3657 && !other.ext_multisampled_render_to_single_sampled,
3658 ext_mutable_descriptor_type: self.ext_mutable_descriptor_type
3659 && !other.ext_mutable_descriptor_type,
3660 ext_nested_command_buffer: self.ext_nested_command_buffer
3661 && !other.ext_nested_command_buffer,
3662 ext_non_seamless_cube_map: self.ext_non_seamless_cube_map
3663 && !other.ext_non_seamless_cube_map,
3664 ext_opacity_micromap: self.ext_opacity_micromap && !other.ext_opacity_micromap,
3665 ext_pageable_device_local_memory: self.ext_pageable_device_local_memory
3666 && !other.ext_pageable_device_local_memory,
3667 ext_pci_bus_info: self.ext_pci_bus_info && !other.ext_pci_bus_info,
3668 ext_physical_device_drm: self.ext_physical_device_drm && !other.ext_physical_device_drm,
3669 ext_pipeline_creation_cache_control: self.ext_pipeline_creation_cache_control
3670 && !other.ext_pipeline_creation_cache_control,
3671 ext_pipeline_creation_feedback: self.ext_pipeline_creation_feedback
3672 && !other.ext_pipeline_creation_feedback,
3673 ext_pipeline_library_group_handles: self.ext_pipeline_library_group_handles
3674 && !other.ext_pipeline_library_group_handles,
3675 ext_pipeline_properties: self.ext_pipeline_properties && !other.ext_pipeline_properties,
3676 ext_pipeline_protected_access: self.ext_pipeline_protected_access
3677 && !other.ext_pipeline_protected_access,
3678 ext_pipeline_robustness: self.ext_pipeline_robustness && !other.ext_pipeline_robustness,
3679 ext_post_depth_coverage: self.ext_post_depth_coverage && !other.ext_post_depth_coverage,
3680 ext_primitive_topology_list_restart: self.ext_primitive_topology_list_restart
3681 && !other.ext_primitive_topology_list_restart,
3682 ext_primitives_generated_query: self.ext_primitives_generated_query
3683 && !other.ext_primitives_generated_query,
3684 ext_private_data: self.ext_private_data && !other.ext_private_data,
3685 ext_provoking_vertex: self.ext_provoking_vertex && !other.ext_provoking_vertex,
3686 ext_queue_family_foreign: self.ext_queue_family_foreign
3687 && !other.ext_queue_family_foreign,
3688 ext_rasterization_order_attachment_access: self
3689 .ext_rasterization_order_attachment_access
3690 && !other.ext_rasterization_order_attachment_access,
3691 ext_rgba10x6_formats: self.ext_rgba10x6_formats && !other.ext_rgba10x6_formats,
3692 ext_robustness2: self.ext_robustness2 && !other.ext_robustness2,
3693 ext_sample_locations: self.ext_sample_locations && !other.ext_sample_locations,
3694 ext_sampler_filter_minmax: self.ext_sampler_filter_minmax
3695 && !other.ext_sampler_filter_minmax,
3696 ext_scalar_block_layout: self.ext_scalar_block_layout && !other.ext_scalar_block_layout,
3697 ext_separate_stencil_usage: self.ext_separate_stencil_usage
3698 && !other.ext_separate_stencil_usage,
3699 ext_shader_atomic_float: self.ext_shader_atomic_float && !other.ext_shader_atomic_float,
3700 ext_shader_atomic_float2: self.ext_shader_atomic_float2
3701 && !other.ext_shader_atomic_float2,
3702 ext_shader_demote_to_helper_invocation: self.ext_shader_demote_to_helper_invocation
3703 && !other.ext_shader_demote_to_helper_invocation,
3704 ext_shader_image_atomic_int64: self.ext_shader_image_atomic_int64
3705 && !other.ext_shader_image_atomic_int64,
3706 ext_shader_module_identifier: self.ext_shader_module_identifier
3707 && !other.ext_shader_module_identifier,
3708 ext_shader_object: self.ext_shader_object && !other.ext_shader_object,
3709 ext_shader_stencil_export: self.ext_shader_stencil_export
3710 && !other.ext_shader_stencil_export,
3711 ext_shader_subgroup_ballot: self.ext_shader_subgroup_ballot
3712 && !other.ext_shader_subgroup_ballot,
3713 ext_shader_subgroup_vote: self.ext_shader_subgroup_vote
3714 && !other.ext_shader_subgroup_vote,
3715 ext_shader_tile_image: self.ext_shader_tile_image && !other.ext_shader_tile_image,
3716 ext_shader_viewport_index_layer: self.ext_shader_viewport_index_layer
3717 && !other.ext_shader_viewport_index_layer,
3718 ext_subgroup_size_control: self.ext_subgroup_size_control
3719 && !other.ext_subgroup_size_control,
3720 ext_subpass_merge_feedback: self.ext_subpass_merge_feedback
3721 && !other.ext_subpass_merge_feedback,
3722 ext_swapchain_maintenance1: self.ext_swapchain_maintenance1
3723 && !other.ext_swapchain_maintenance1,
3724 ext_texel_buffer_alignment: self.ext_texel_buffer_alignment
3725 && !other.ext_texel_buffer_alignment,
3726 ext_texture_compression_astc_hdr: self.ext_texture_compression_astc_hdr
3727 && !other.ext_texture_compression_astc_hdr,
3728 ext_tooling_info: self.ext_tooling_info && !other.ext_tooling_info,
3729 ext_transform_feedback: self.ext_transform_feedback && !other.ext_transform_feedback,
3730 ext_validation_cache: self.ext_validation_cache && !other.ext_validation_cache,
3731 ext_vertex_attribute_divisor: self.ext_vertex_attribute_divisor
3732 && !other.ext_vertex_attribute_divisor,
3733 ext_vertex_input_dynamic_state: self.ext_vertex_input_dynamic_state
3734 && !other.ext_vertex_input_dynamic_state,
3735 ext_ycbcr_2plane_444_formats: self.ext_ycbcr_2plane_444_formats
3736 && !other.ext_ycbcr_2plane_444_formats,
3737 ext_ycbcr_image_arrays: self.ext_ycbcr_image_arrays && !other.ext_ycbcr_image_arrays,
3738 amdx_shader_enqueue: self.amdx_shader_enqueue && !other.amdx_shader_enqueue,
3739 amd_buffer_marker: self.amd_buffer_marker && !other.amd_buffer_marker,
3740 amd_device_coherent_memory: self.amd_device_coherent_memory
3741 && !other.amd_device_coherent_memory,
3742 amd_display_native_hdr: self.amd_display_native_hdr && !other.amd_display_native_hdr,
3743 amd_draw_indirect_count: self.amd_draw_indirect_count && !other.amd_draw_indirect_count,
3744 amd_gcn_shader: self.amd_gcn_shader && !other.amd_gcn_shader,
3745 amd_gpu_shader_half_float: self.amd_gpu_shader_half_float
3746 && !other.amd_gpu_shader_half_float,
3747 amd_gpu_shader_int16: self.amd_gpu_shader_int16 && !other.amd_gpu_shader_int16,
3748 amd_memory_overallocation_behavior: self.amd_memory_overallocation_behavior
3749 && !other.amd_memory_overallocation_behavior,
3750 amd_mixed_attachment_samples: self.amd_mixed_attachment_samples
3751 && !other.amd_mixed_attachment_samples,
3752 amd_pipeline_compiler_control: self.amd_pipeline_compiler_control
3753 && !other.amd_pipeline_compiler_control,
3754 amd_rasterization_order: self.amd_rasterization_order && !other.amd_rasterization_order,
3755 amd_shader_ballot: self.amd_shader_ballot && !other.amd_shader_ballot,
3756 amd_shader_core_properties: self.amd_shader_core_properties
3757 && !other.amd_shader_core_properties,
3758 amd_shader_core_properties2: self.amd_shader_core_properties2
3759 && !other.amd_shader_core_properties2,
3760 amd_shader_early_and_late_fragment_tests: self.amd_shader_early_and_late_fragment_tests
3761 && !other.amd_shader_early_and_late_fragment_tests,
3762 amd_shader_explicit_vertex_parameter: self.amd_shader_explicit_vertex_parameter
3763 && !other.amd_shader_explicit_vertex_parameter,
3764 amd_shader_fragment_mask: self.amd_shader_fragment_mask
3765 && !other.amd_shader_fragment_mask,
3766 amd_shader_image_load_store_lod: self.amd_shader_image_load_store_lod
3767 && !other.amd_shader_image_load_store_lod,
3768 amd_shader_info: self.amd_shader_info && !other.amd_shader_info,
3769 amd_shader_trinary_minmax: self.amd_shader_trinary_minmax
3770 && !other.amd_shader_trinary_minmax,
3771 amd_texture_gather_bias_lod: self.amd_texture_gather_bias_lod
3772 && !other.amd_texture_gather_bias_lod,
3773 android_external_format_resolve: self.android_external_format_resolve
3774 && !other.android_external_format_resolve,
3775 android_external_memory_android_hardware_buffer: self
3776 .android_external_memory_android_hardware_buffer
3777 && !other.android_external_memory_android_hardware_buffer,
3778 arm_rasterization_order_attachment_access: self
3779 .arm_rasterization_order_attachment_access
3780 && !other.arm_rasterization_order_attachment_access,
3781 arm_render_pass_striped: self.arm_render_pass_striped && !other.arm_render_pass_striped,
3782 arm_scheduling_controls: self.arm_scheduling_controls && !other.arm_scheduling_controls,
3783 arm_shader_core_builtins: self.arm_shader_core_builtins
3784 && !other.arm_shader_core_builtins,
3785 arm_shader_core_properties: self.arm_shader_core_properties
3786 && !other.arm_shader_core_properties,
3787 fuchsia_buffer_collection: self.fuchsia_buffer_collection
3788 && !other.fuchsia_buffer_collection,
3789 fuchsia_external_memory: self.fuchsia_external_memory && !other.fuchsia_external_memory,
3790 fuchsia_external_semaphore: self.fuchsia_external_semaphore
3791 && !other.fuchsia_external_semaphore,
3792 ggp_frame_token: self.ggp_frame_token && !other.ggp_frame_token,
3793 google_decorate_string: self.google_decorate_string && !other.google_decorate_string,
3794 google_display_timing: self.google_display_timing && !other.google_display_timing,
3795 google_hlsl_functionality1: self.google_hlsl_functionality1
3796 && !other.google_hlsl_functionality1,
3797 google_user_type: self.google_user_type && !other.google_user_type,
3798 huawei_cluster_culling_shader: self.huawei_cluster_culling_shader
3799 && !other.huawei_cluster_culling_shader,
3800 huawei_invocation_mask: self.huawei_invocation_mask && !other.huawei_invocation_mask,
3801 huawei_subpass_shading: self.huawei_subpass_shading && !other.huawei_subpass_shading,
3802 img_filter_cubic: self.img_filter_cubic && !other.img_filter_cubic,
3803 img_format_pvrtc: self.img_format_pvrtc && !other.img_format_pvrtc,
3804 img_relaxed_line_rasterization: self.img_relaxed_line_rasterization
3805 && !other.img_relaxed_line_rasterization,
3806 intel_performance_query: self.intel_performance_query && !other.intel_performance_query,
3807 intel_shader_integer_functions2: self.intel_shader_integer_functions2
3808 && !other.intel_shader_integer_functions2,
3809 msft_layered_driver: self.msft_layered_driver && !other.msft_layered_driver,
3810 nvx_binary_import: self.nvx_binary_import && !other.nvx_binary_import,
3811 nvx_image_view_handle: self.nvx_image_view_handle && !other.nvx_image_view_handle,
3812 nvx_multiview_per_view_attributes: self.nvx_multiview_per_view_attributes
3813 && !other.nvx_multiview_per_view_attributes,
3814 nv_acquire_winrt_display: self.nv_acquire_winrt_display
3815 && !other.nv_acquire_winrt_display,
3816 nv_clip_space_w_scaling: self.nv_clip_space_w_scaling && !other.nv_clip_space_w_scaling,
3817 nv_compute_shader_derivatives: self.nv_compute_shader_derivatives
3818 && !other.nv_compute_shader_derivatives,
3819 nv_cooperative_matrix: self.nv_cooperative_matrix && !other.nv_cooperative_matrix,
3820 nv_copy_memory_indirect: self.nv_copy_memory_indirect && !other.nv_copy_memory_indirect,
3821 nv_corner_sampled_image: self.nv_corner_sampled_image && !other.nv_corner_sampled_image,
3822 nv_coverage_reduction_mode: self.nv_coverage_reduction_mode
3823 && !other.nv_coverage_reduction_mode,
3824 nv_cuda_kernel_launch: self.nv_cuda_kernel_launch && !other.nv_cuda_kernel_launch,
3825 nv_dedicated_allocation: self.nv_dedicated_allocation && !other.nv_dedicated_allocation,
3826 nv_dedicated_allocation_image_aliasing: self.nv_dedicated_allocation_image_aliasing
3827 && !other.nv_dedicated_allocation_image_aliasing,
3828 nv_descriptor_pool_overallocation: self.nv_descriptor_pool_overallocation
3829 && !other.nv_descriptor_pool_overallocation,
3830 nv_device_diagnostic_checkpoints: self.nv_device_diagnostic_checkpoints
3831 && !other.nv_device_diagnostic_checkpoints,
3832 nv_device_diagnostics_config: self.nv_device_diagnostics_config
3833 && !other.nv_device_diagnostics_config,
3834 nv_device_generated_commands: self.nv_device_generated_commands
3835 && !other.nv_device_generated_commands,
3836 nv_device_generated_commands_compute: self.nv_device_generated_commands_compute
3837 && !other.nv_device_generated_commands_compute,
3838 nv_displacement_micromap: self.nv_displacement_micromap
3839 && !other.nv_displacement_micromap,
3840 nv_extended_sparse_address_space: self.nv_extended_sparse_address_space
3841 && !other.nv_extended_sparse_address_space,
3842 nv_external_memory: self.nv_external_memory && !other.nv_external_memory,
3843 nv_external_memory_rdma: self.nv_external_memory_rdma && !other.nv_external_memory_rdma,
3844 nv_external_memory_win32: self.nv_external_memory_win32
3845 && !other.nv_external_memory_win32,
3846 nv_fill_rectangle: self.nv_fill_rectangle && !other.nv_fill_rectangle,
3847 nv_fragment_coverage_to_color: self.nv_fragment_coverage_to_color
3848 && !other.nv_fragment_coverage_to_color,
3849 nv_fragment_shader_barycentric: self.nv_fragment_shader_barycentric
3850 && !other.nv_fragment_shader_barycentric,
3851 nv_fragment_shading_rate_enums: self.nv_fragment_shading_rate_enums
3852 && !other.nv_fragment_shading_rate_enums,
3853 nv_framebuffer_mixed_samples: self.nv_framebuffer_mixed_samples
3854 && !other.nv_framebuffer_mixed_samples,
3855 nv_geometry_shader_passthrough: self.nv_geometry_shader_passthrough
3856 && !other.nv_geometry_shader_passthrough,
3857 nv_glsl_shader: self.nv_glsl_shader && !other.nv_glsl_shader,
3858 nv_inherited_viewport_scissor: self.nv_inherited_viewport_scissor
3859 && !other.nv_inherited_viewport_scissor,
3860 nv_linear_color_attachment: self.nv_linear_color_attachment
3861 && !other.nv_linear_color_attachment,
3862 nv_low_latency: self.nv_low_latency && !other.nv_low_latency,
3863 nv_low_latency2: self.nv_low_latency2 && !other.nv_low_latency2,
3864 nv_memory_decompression: self.nv_memory_decompression && !other.nv_memory_decompression,
3865 nv_mesh_shader: self.nv_mesh_shader && !other.nv_mesh_shader,
3866 nv_optical_flow: self.nv_optical_flow && !other.nv_optical_flow,
3867 nv_per_stage_descriptor_set: self.nv_per_stage_descriptor_set
3868 && !other.nv_per_stage_descriptor_set,
3869 nv_present_barrier: self.nv_present_barrier && !other.nv_present_barrier,
3870 nv_raw_access_chains: self.nv_raw_access_chains && !other.nv_raw_access_chains,
3871 nv_ray_tracing: self.nv_ray_tracing && !other.nv_ray_tracing,
3872 nv_ray_tracing_invocation_reorder: self.nv_ray_tracing_invocation_reorder
3873 && !other.nv_ray_tracing_invocation_reorder,
3874 nv_ray_tracing_motion_blur: self.nv_ray_tracing_motion_blur
3875 && !other.nv_ray_tracing_motion_blur,
3876 nv_ray_tracing_validation: self.nv_ray_tracing_validation
3877 && !other.nv_ray_tracing_validation,
3878 nv_representative_fragment_test: self.nv_representative_fragment_test
3879 && !other.nv_representative_fragment_test,
3880 nv_sample_mask_override_coverage: self.nv_sample_mask_override_coverage
3881 && !other.nv_sample_mask_override_coverage,
3882 nv_scissor_exclusive: self.nv_scissor_exclusive && !other.nv_scissor_exclusive,
3883 nv_shader_atomic_float16_vector: self.nv_shader_atomic_float16_vector
3884 && !other.nv_shader_atomic_float16_vector,
3885 nv_shader_image_footprint: self.nv_shader_image_footprint
3886 && !other.nv_shader_image_footprint,
3887 nv_shader_sm_builtins: self.nv_shader_sm_builtins && !other.nv_shader_sm_builtins,
3888 nv_shader_subgroup_partitioned: self.nv_shader_subgroup_partitioned
3889 && !other.nv_shader_subgroup_partitioned,
3890 nv_shading_rate_image: self.nv_shading_rate_image && !other.nv_shading_rate_image,
3891 nv_viewport_array2: self.nv_viewport_array2 && !other.nv_viewport_array2,
3892 nv_viewport_swizzle: self.nv_viewport_swizzle && !other.nv_viewport_swizzle,
3893 nv_win32_keyed_mutex: self.nv_win32_keyed_mutex && !other.nv_win32_keyed_mutex,
3894 qcom_filter_cubic_clamp: self.qcom_filter_cubic_clamp && !other.qcom_filter_cubic_clamp,
3895 qcom_filter_cubic_weights: self.qcom_filter_cubic_weights
3896 && !other.qcom_filter_cubic_weights,
3897 qcom_fragment_density_map_offset: self.qcom_fragment_density_map_offset
3898 && !other.qcom_fragment_density_map_offset,
3899 qcom_image_processing: self.qcom_image_processing && !other.qcom_image_processing,
3900 qcom_image_processing2: self.qcom_image_processing2 && !other.qcom_image_processing2,
3901 qcom_multiview_per_view_render_areas: self.qcom_multiview_per_view_render_areas
3902 && !other.qcom_multiview_per_view_render_areas,
3903 qcom_multiview_per_view_viewports: self.qcom_multiview_per_view_viewports
3904 && !other.qcom_multiview_per_view_viewports,
3905 qcom_render_pass_shader_resolve: self.qcom_render_pass_shader_resolve
3906 && !other.qcom_render_pass_shader_resolve,
3907 qcom_render_pass_store_ops: self.qcom_render_pass_store_ops
3908 && !other.qcom_render_pass_store_ops,
3909 qcom_render_pass_transform: self.qcom_render_pass_transform
3910 && !other.qcom_render_pass_transform,
3911 qcom_rotated_copy_commands: self.qcom_rotated_copy_commands
3912 && !other.qcom_rotated_copy_commands,
3913 qcom_tile_properties: self.qcom_tile_properties && !other.qcom_tile_properties,
3914 qcom_ycbcr_degamma: self.qcom_ycbcr_degamma && !other.qcom_ycbcr_degamma,
3915 qnx_external_memory_screen_buffer: self.qnx_external_memory_screen_buffer
3916 && !other.qnx_external_memory_screen_buffer,
3917 sec_amigo_profiling: self.sec_amigo_profiling && !other.sec_amigo_profiling,
3918 valve_descriptor_set_host_mapping: self.valve_descriptor_set_host_mapping
3919 && !other.valve_descriptor_set_host_mapping,
3920 valve_mutable_descriptor_type: self.valve_mutable_descriptor_type
3921 && !other.valve_mutable_descriptor_type,
3922 _ne: crate::NonExhaustive(()),
3923 }
3924 }
3925 #[doc = r" Returns the members set in `self` or `other`, but not both."]
3926 #[inline]
3927 pub const fn symmetric_difference(&self, other: &Self) -> Self {
3928 Self {
3929 khr_16bit_storage: self.khr_16bit_storage ^ other.khr_16bit_storage,
3930 khr_8bit_storage: self.khr_8bit_storage ^ other.khr_8bit_storage,
3931 khr_acceleration_structure: self.khr_acceleration_structure
3932 ^ other.khr_acceleration_structure,
3933 khr_bind_memory2: self.khr_bind_memory2 ^ other.khr_bind_memory2,
3934 khr_buffer_device_address: self.khr_buffer_device_address
3935 ^ other.khr_buffer_device_address,
3936 khr_calibrated_timestamps: self.khr_calibrated_timestamps
3937 ^ other.khr_calibrated_timestamps,
3938 khr_cooperative_matrix: self.khr_cooperative_matrix ^ other.khr_cooperative_matrix,
3939 khr_copy_commands2: self.khr_copy_commands2 ^ other.khr_copy_commands2,
3940 khr_create_renderpass2: self.khr_create_renderpass2 ^ other.khr_create_renderpass2,
3941 khr_dedicated_allocation: self.khr_dedicated_allocation
3942 ^ other.khr_dedicated_allocation,
3943 khr_deferred_host_operations: self.khr_deferred_host_operations
3944 ^ other.khr_deferred_host_operations,
3945 khr_depth_stencil_resolve: self.khr_depth_stencil_resolve
3946 ^ other.khr_depth_stencil_resolve,
3947 khr_descriptor_update_template: self.khr_descriptor_update_template
3948 ^ other.khr_descriptor_update_template,
3949 khr_device_group: self.khr_device_group ^ other.khr_device_group,
3950 khr_display_swapchain: self.khr_display_swapchain ^ other.khr_display_swapchain,
3951 khr_draw_indirect_count: self.khr_draw_indirect_count ^ other.khr_draw_indirect_count,
3952 khr_driver_properties: self.khr_driver_properties ^ other.khr_driver_properties,
3953 khr_dynamic_rendering: self.khr_dynamic_rendering ^ other.khr_dynamic_rendering,
3954 khr_dynamic_rendering_local_read: self.khr_dynamic_rendering_local_read
3955 ^ other.khr_dynamic_rendering_local_read,
3956 khr_external_fence: self.khr_external_fence ^ other.khr_external_fence,
3957 khr_external_fence_fd: self.khr_external_fence_fd ^ other.khr_external_fence_fd,
3958 khr_external_fence_win32: self.khr_external_fence_win32
3959 ^ other.khr_external_fence_win32,
3960 khr_external_memory: self.khr_external_memory ^ other.khr_external_memory,
3961 khr_external_memory_fd: self.khr_external_memory_fd ^ other.khr_external_memory_fd,
3962 khr_external_memory_win32: self.khr_external_memory_win32
3963 ^ other.khr_external_memory_win32,
3964 khr_external_semaphore: self.khr_external_semaphore ^ other.khr_external_semaphore,
3965 khr_external_semaphore_fd: self.khr_external_semaphore_fd
3966 ^ other.khr_external_semaphore_fd,
3967 khr_external_semaphore_win32: self.khr_external_semaphore_win32
3968 ^ other.khr_external_semaphore_win32,
3969 khr_format_feature_flags2: self.khr_format_feature_flags2
3970 ^ other.khr_format_feature_flags2,
3971 khr_fragment_shader_barycentric: self.khr_fragment_shader_barycentric
3972 ^ other.khr_fragment_shader_barycentric,
3973 khr_fragment_shading_rate: self.khr_fragment_shading_rate
3974 ^ other.khr_fragment_shading_rate,
3975 khr_get_memory_requirements2: self.khr_get_memory_requirements2
3976 ^ other.khr_get_memory_requirements2,
3977 khr_global_priority: self.khr_global_priority ^ other.khr_global_priority,
3978 khr_image_format_list: self.khr_image_format_list ^ other.khr_image_format_list,
3979 khr_imageless_framebuffer: self.khr_imageless_framebuffer
3980 ^ other.khr_imageless_framebuffer,
3981 khr_incremental_present: self.khr_incremental_present ^ other.khr_incremental_present,
3982 khr_index_type_uint8: self.khr_index_type_uint8 ^ other.khr_index_type_uint8,
3983 khr_line_rasterization: self.khr_line_rasterization ^ other.khr_line_rasterization,
3984 khr_load_store_op_none: self.khr_load_store_op_none ^ other.khr_load_store_op_none,
3985 khr_maintenance1: self.khr_maintenance1 ^ other.khr_maintenance1,
3986 khr_maintenance2: self.khr_maintenance2 ^ other.khr_maintenance2,
3987 khr_maintenance3: self.khr_maintenance3 ^ other.khr_maintenance3,
3988 khr_maintenance4: self.khr_maintenance4 ^ other.khr_maintenance4,
3989 khr_maintenance5: self.khr_maintenance5 ^ other.khr_maintenance5,
3990 khr_maintenance6: self.khr_maintenance6 ^ other.khr_maintenance6,
3991 khr_map_memory2: self.khr_map_memory2 ^ other.khr_map_memory2,
3992 khr_multiview: self.khr_multiview ^ other.khr_multiview,
3993 khr_performance_query: self.khr_performance_query ^ other.khr_performance_query,
3994 khr_pipeline_executable_properties: self.khr_pipeline_executable_properties
3995 ^ other.khr_pipeline_executable_properties,
3996 khr_pipeline_library: self.khr_pipeline_library ^ other.khr_pipeline_library,
3997 khr_portability_subset: self.khr_portability_subset ^ other.khr_portability_subset,
3998 khr_present_id: self.khr_present_id ^ other.khr_present_id,
3999 khr_present_wait: self.khr_present_wait ^ other.khr_present_wait,
4000 khr_push_descriptor: self.khr_push_descriptor ^ other.khr_push_descriptor,
4001 khr_ray_query: self.khr_ray_query ^ other.khr_ray_query,
4002 khr_ray_tracing_maintenance1: self.khr_ray_tracing_maintenance1
4003 ^ other.khr_ray_tracing_maintenance1,
4004 khr_ray_tracing_pipeline: self.khr_ray_tracing_pipeline
4005 ^ other.khr_ray_tracing_pipeline,
4006 khr_ray_tracing_position_fetch: self.khr_ray_tracing_position_fetch
4007 ^ other.khr_ray_tracing_position_fetch,
4008 khr_relaxed_block_layout: self.khr_relaxed_block_layout
4009 ^ other.khr_relaxed_block_layout,
4010 khr_sampler_mirror_clamp_to_edge: self.khr_sampler_mirror_clamp_to_edge
4011 ^ other.khr_sampler_mirror_clamp_to_edge,
4012 khr_sampler_ycbcr_conversion: self.khr_sampler_ycbcr_conversion
4013 ^ other.khr_sampler_ycbcr_conversion,
4014 khr_separate_depth_stencil_layouts: self.khr_separate_depth_stencil_layouts
4015 ^ other.khr_separate_depth_stencil_layouts,
4016 khr_shader_atomic_int64: self.khr_shader_atomic_int64 ^ other.khr_shader_atomic_int64,
4017 khr_shader_clock: self.khr_shader_clock ^ other.khr_shader_clock,
4018 khr_shader_draw_parameters: self.khr_shader_draw_parameters
4019 ^ other.khr_shader_draw_parameters,
4020 khr_shader_expect_assume: self.khr_shader_expect_assume
4021 ^ other.khr_shader_expect_assume,
4022 khr_shader_float16_int8: self.khr_shader_float16_int8 ^ other.khr_shader_float16_int8,
4023 khr_shader_float_controls: self.khr_shader_float_controls
4024 ^ other.khr_shader_float_controls,
4025 khr_shader_float_controls2: self.khr_shader_float_controls2
4026 ^ other.khr_shader_float_controls2,
4027 khr_shader_integer_dot_product: self.khr_shader_integer_dot_product
4028 ^ other.khr_shader_integer_dot_product,
4029 khr_shader_maximal_reconvergence: self.khr_shader_maximal_reconvergence
4030 ^ other.khr_shader_maximal_reconvergence,
4031 khr_shader_non_semantic_info: self.khr_shader_non_semantic_info
4032 ^ other.khr_shader_non_semantic_info,
4033 khr_shader_quad_control: self.khr_shader_quad_control ^ other.khr_shader_quad_control,
4034 khr_shader_subgroup_extended_types: self.khr_shader_subgroup_extended_types
4035 ^ other.khr_shader_subgroup_extended_types,
4036 khr_shader_subgroup_rotate: self.khr_shader_subgroup_rotate
4037 ^ other.khr_shader_subgroup_rotate,
4038 khr_shader_subgroup_uniform_control_flow: self.khr_shader_subgroup_uniform_control_flow
4039 ^ other.khr_shader_subgroup_uniform_control_flow,
4040 khr_shader_terminate_invocation: self.khr_shader_terminate_invocation
4041 ^ other.khr_shader_terminate_invocation,
4042 khr_shared_presentable_image: self.khr_shared_presentable_image
4043 ^ other.khr_shared_presentable_image,
4044 khr_spirv_1_4: self.khr_spirv_1_4 ^ other.khr_spirv_1_4,
4045 khr_storage_buffer_storage_class: self.khr_storage_buffer_storage_class
4046 ^ other.khr_storage_buffer_storage_class,
4047 khr_swapchain: self.khr_swapchain ^ other.khr_swapchain,
4048 khr_swapchain_mutable_format: self.khr_swapchain_mutable_format
4049 ^ other.khr_swapchain_mutable_format,
4050 khr_synchronization2: self.khr_synchronization2 ^ other.khr_synchronization2,
4051 khr_timeline_semaphore: self.khr_timeline_semaphore ^ other.khr_timeline_semaphore,
4052 khr_uniform_buffer_standard_layout: self.khr_uniform_buffer_standard_layout
4053 ^ other.khr_uniform_buffer_standard_layout,
4054 khr_variable_pointers: self.khr_variable_pointers ^ other.khr_variable_pointers,
4055 khr_vertex_attribute_divisor: self.khr_vertex_attribute_divisor
4056 ^ other.khr_vertex_attribute_divisor,
4057 khr_video_decode_av1: self.khr_video_decode_av1 ^ other.khr_video_decode_av1,
4058 khr_video_decode_h264: self.khr_video_decode_h264 ^ other.khr_video_decode_h264,
4059 khr_video_decode_h265: self.khr_video_decode_h265 ^ other.khr_video_decode_h265,
4060 khr_video_decode_queue: self.khr_video_decode_queue ^ other.khr_video_decode_queue,
4061 khr_video_encode_h264: self.khr_video_encode_h264 ^ other.khr_video_encode_h264,
4062 khr_video_encode_h265: self.khr_video_encode_h265 ^ other.khr_video_encode_h265,
4063 khr_video_encode_queue: self.khr_video_encode_queue ^ other.khr_video_encode_queue,
4064 khr_video_maintenance1: self.khr_video_maintenance1 ^ other.khr_video_maintenance1,
4065 khr_video_queue: self.khr_video_queue ^ other.khr_video_queue,
4066 khr_vulkan_memory_model: self.khr_vulkan_memory_model ^ other.khr_vulkan_memory_model,
4067 khr_win32_keyed_mutex: self.khr_win32_keyed_mutex ^ other.khr_win32_keyed_mutex,
4068 khr_workgroup_memory_explicit_layout: self.khr_workgroup_memory_explicit_layout
4069 ^ other.khr_workgroup_memory_explicit_layout,
4070 khr_zero_initialize_workgroup_memory: self.khr_zero_initialize_workgroup_memory
4071 ^ other.khr_zero_initialize_workgroup_memory,
4072 ext_4444_formats: self.ext_4444_formats ^ other.ext_4444_formats,
4073 ext_astc_decode_mode: self.ext_astc_decode_mode ^ other.ext_astc_decode_mode,
4074 ext_attachment_feedback_loop_dynamic_state: self
4075 .ext_attachment_feedback_loop_dynamic_state
4076 ^ other.ext_attachment_feedback_loop_dynamic_state,
4077 ext_attachment_feedback_loop_layout: self.ext_attachment_feedback_loop_layout
4078 ^ other.ext_attachment_feedback_loop_layout,
4079 ext_blend_operation_advanced: self.ext_blend_operation_advanced
4080 ^ other.ext_blend_operation_advanced,
4081 ext_border_color_swizzle: self.ext_border_color_swizzle
4082 ^ other.ext_border_color_swizzle,
4083 ext_buffer_device_address: self.ext_buffer_device_address
4084 ^ other.ext_buffer_device_address,
4085 ext_calibrated_timestamps: self.ext_calibrated_timestamps
4086 ^ other.ext_calibrated_timestamps,
4087 ext_color_write_enable: self.ext_color_write_enable ^ other.ext_color_write_enable,
4088 ext_conditional_rendering: self.ext_conditional_rendering
4089 ^ other.ext_conditional_rendering,
4090 ext_conservative_rasterization: self.ext_conservative_rasterization
4091 ^ other.ext_conservative_rasterization,
4092 ext_custom_border_color: self.ext_custom_border_color ^ other.ext_custom_border_color,
4093 ext_debug_marker: self.ext_debug_marker ^ other.ext_debug_marker,
4094 ext_depth_bias_control: self.ext_depth_bias_control ^ other.ext_depth_bias_control,
4095 ext_depth_clamp_zero_one: self.ext_depth_clamp_zero_one
4096 ^ other.ext_depth_clamp_zero_one,
4097 ext_depth_clip_control: self.ext_depth_clip_control ^ other.ext_depth_clip_control,
4098 ext_depth_clip_enable: self.ext_depth_clip_enable ^ other.ext_depth_clip_enable,
4099 ext_depth_range_unrestricted: self.ext_depth_range_unrestricted
4100 ^ other.ext_depth_range_unrestricted,
4101 ext_descriptor_buffer: self.ext_descriptor_buffer ^ other.ext_descriptor_buffer,
4102 ext_descriptor_indexing: self.ext_descriptor_indexing ^ other.ext_descriptor_indexing,
4103 ext_device_address_binding_report: self.ext_device_address_binding_report
4104 ^ other.ext_device_address_binding_report,
4105 ext_device_fault: self.ext_device_fault ^ other.ext_device_fault,
4106 ext_device_memory_report: self.ext_device_memory_report
4107 ^ other.ext_device_memory_report,
4108 ext_discard_rectangles: self.ext_discard_rectangles ^ other.ext_discard_rectangles,
4109 ext_display_control: self.ext_display_control ^ other.ext_display_control,
4110 ext_dynamic_rendering_unused_attachments: self.ext_dynamic_rendering_unused_attachments
4111 ^ other.ext_dynamic_rendering_unused_attachments,
4112 ext_extended_dynamic_state: self.ext_extended_dynamic_state
4113 ^ other.ext_extended_dynamic_state,
4114 ext_extended_dynamic_state2: self.ext_extended_dynamic_state2
4115 ^ other.ext_extended_dynamic_state2,
4116 ext_extended_dynamic_state3: self.ext_extended_dynamic_state3
4117 ^ other.ext_extended_dynamic_state3,
4118 ext_external_memory_acquire_unmodified: self.ext_external_memory_acquire_unmodified
4119 ^ other.ext_external_memory_acquire_unmodified,
4120 ext_external_memory_dma_buf: self.ext_external_memory_dma_buf
4121 ^ other.ext_external_memory_dma_buf,
4122 ext_external_memory_host: self.ext_external_memory_host
4123 ^ other.ext_external_memory_host,
4124 ext_filter_cubic: self.ext_filter_cubic ^ other.ext_filter_cubic,
4125 ext_fragment_density_map: self.ext_fragment_density_map
4126 ^ other.ext_fragment_density_map,
4127 ext_fragment_density_map2: self.ext_fragment_density_map2
4128 ^ other.ext_fragment_density_map2,
4129 ext_fragment_shader_interlock: self.ext_fragment_shader_interlock
4130 ^ other.ext_fragment_shader_interlock,
4131 ext_frame_boundary: self.ext_frame_boundary ^ other.ext_frame_boundary,
4132 ext_full_screen_exclusive: self.ext_full_screen_exclusive
4133 ^ other.ext_full_screen_exclusive,
4134 ext_global_priority: self.ext_global_priority ^ other.ext_global_priority,
4135 ext_global_priority_query: self.ext_global_priority_query
4136 ^ other.ext_global_priority_query,
4137 ext_graphics_pipeline_library: self.ext_graphics_pipeline_library
4138 ^ other.ext_graphics_pipeline_library,
4139 ext_hdr_metadata: self.ext_hdr_metadata ^ other.ext_hdr_metadata,
4140 ext_host_image_copy: self.ext_host_image_copy ^ other.ext_host_image_copy,
4141 ext_host_query_reset: self.ext_host_query_reset ^ other.ext_host_query_reset,
4142 ext_image_2d_view_of_3d: self.ext_image_2d_view_of_3d ^ other.ext_image_2d_view_of_3d,
4143 ext_image_compression_control: self.ext_image_compression_control
4144 ^ other.ext_image_compression_control,
4145 ext_image_compression_control_swapchain: self.ext_image_compression_control_swapchain
4146 ^ other.ext_image_compression_control_swapchain,
4147 ext_image_drm_format_modifier: self.ext_image_drm_format_modifier
4148 ^ other.ext_image_drm_format_modifier,
4149 ext_image_robustness: self.ext_image_robustness ^ other.ext_image_robustness,
4150 ext_image_sliced_view_of_3d: self.ext_image_sliced_view_of_3d
4151 ^ other.ext_image_sliced_view_of_3d,
4152 ext_image_view_min_lod: self.ext_image_view_min_lod ^ other.ext_image_view_min_lod,
4153 ext_index_type_uint8: self.ext_index_type_uint8 ^ other.ext_index_type_uint8,
4154 ext_inline_uniform_block: self.ext_inline_uniform_block
4155 ^ other.ext_inline_uniform_block,
4156 ext_legacy_dithering: self.ext_legacy_dithering ^ other.ext_legacy_dithering,
4157 ext_line_rasterization: self.ext_line_rasterization ^ other.ext_line_rasterization,
4158 ext_load_store_op_none: self.ext_load_store_op_none ^ other.ext_load_store_op_none,
4159 ext_map_memory_placed: self.ext_map_memory_placed ^ other.ext_map_memory_placed,
4160 ext_memory_budget: self.ext_memory_budget ^ other.ext_memory_budget,
4161 ext_memory_priority: self.ext_memory_priority ^ other.ext_memory_priority,
4162 ext_mesh_shader: self.ext_mesh_shader ^ other.ext_mesh_shader,
4163 ext_metal_objects: self.ext_metal_objects ^ other.ext_metal_objects,
4164 ext_multi_draw: self.ext_multi_draw ^ other.ext_multi_draw,
4165 ext_multisampled_render_to_single_sampled: self
4166 .ext_multisampled_render_to_single_sampled
4167 ^ other.ext_multisampled_render_to_single_sampled,
4168 ext_mutable_descriptor_type: self.ext_mutable_descriptor_type
4169 ^ other.ext_mutable_descriptor_type,
4170 ext_nested_command_buffer: self.ext_nested_command_buffer
4171 ^ other.ext_nested_command_buffer,
4172 ext_non_seamless_cube_map: self.ext_non_seamless_cube_map
4173 ^ other.ext_non_seamless_cube_map,
4174 ext_opacity_micromap: self.ext_opacity_micromap ^ other.ext_opacity_micromap,
4175 ext_pageable_device_local_memory: self.ext_pageable_device_local_memory
4176 ^ other.ext_pageable_device_local_memory,
4177 ext_pci_bus_info: self.ext_pci_bus_info ^ other.ext_pci_bus_info,
4178 ext_physical_device_drm: self.ext_physical_device_drm ^ other.ext_physical_device_drm,
4179 ext_pipeline_creation_cache_control: self.ext_pipeline_creation_cache_control
4180 ^ other.ext_pipeline_creation_cache_control,
4181 ext_pipeline_creation_feedback: self.ext_pipeline_creation_feedback
4182 ^ other.ext_pipeline_creation_feedback,
4183 ext_pipeline_library_group_handles: self.ext_pipeline_library_group_handles
4184 ^ other.ext_pipeline_library_group_handles,
4185 ext_pipeline_properties: self.ext_pipeline_properties ^ other.ext_pipeline_properties,
4186 ext_pipeline_protected_access: self.ext_pipeline_protected_access
4187 ^ other.ext_pipeline_protected_access,
4188 ext_pipeline_robustness: self.ext_pipeline_robustness ^ other.ext_pipeline_robustness,
4189 ext_post_depth_coverage: self.ext_post_depth_coverage ^ other.ext_post_depth_coverage,
4190 ext_primitive_topology_list_restart: self.ext_primitive_topology_list_restart
4191 ^ other.ext_primitive_topology_list_restart,
4192 ext_primitives_generated_query: self.ext_primitives_generated_query
4193 ^ other.ext_primitives_generated_query,
4194 ext_private_data: self.ext_private_data ^ other.ext_private_data,
4195 ext_provoking_vertex: self.ext_provoking_vertex ^ other.ext_provoking_vertex,
4196 ext_queue_family_foreign: self.ext_queue_family_foreign
4197 ^ other.ext_queue_family_foreign,
4198 ext_rasterization_order_attachment_access: self
4199 .ext_rasterization_order_attachment_access
4200 ^ other.ext_rasterization_order_attachment_access,
4201 ext_rgba10x6_formats: self.ext_rgba10x6_formats ^ other.ext_rgba10x6_formats,
4202 ext_robustness2: self.ext_robustness2 ^ other.ext_robustness2,
4203 ext_sample_locations: self.ext_sample_locations ^ other.ext_sample_locations,
4204 ext_sampler_filter_minmax: self.ext_sampler_filter_minmax
4205 ^ other.ext_sampler_filter_minmax,
4206 ext_scalar_block_layout: self.ext_scalar_block_layout ^ other.ext_scalar_block_layout,
4207 ext_separate_stencil_usage: self.ext_separate_stencil_usage
4208 ^ other.ext_separate_stencil_usage,
4209 ext_shader_atomic_float: self.ext_shader_atomic_float ^ other.ext_shader_atomic_float,
4210 ext_shader_atomic_float2: self.ext_shader_atomic_float2
4211 ^ other.ext_shader_atomic_float2,
4212 ext_shader_demote_to_helper_invocation: self.ext_shader_demote_to_helper_invocation
4213 ^ other.ext_shader_demote_to_helper_invocation,
4214 ext_shader_image_atomic_int64: self.ext_shader_image_atomic_int64
4215 ^ other.ext_shader_image_atomic_int64,
4216 ext_shader_module_identifier: self.ext_shader_module_identifier
4217 ^ other.ext_shader_module_identifier,
4218 ext_shader_object: self.ext_shader_object ^ other.ext_shader_object,
4219 ext_shader_stencil_export: self.ext_shader_stencil_export
4220 ^ other.ext_shader_stencil_export,
4221 ext_shader_subgroup_ballot: self.ext_shader_subgroup_ballot
4222 ^ other.ext_shader_subgroup_ballot,
4223 ext_shader_subgroup_vote: self.ext_shader_subgroup_vote
4224 ^ other.ext_shader_subgroup_vote,
4225 ext_shader_tile_image: self.ext_shader_tile_image ^ other.ext_shader_tile_image,
4226 ext_shader_viewport_index_layer: self.ext_shader_viewport_index_layer
4227 ^ other.ext_shader_viewport_index_layer,
4228 ext_subgroup_size_control: self.ext_subgroup_size_control
4229 ^ other.ext_subgroup_size_control,
4230 ext_subpass_merge_feedback: self.ext_subpass_merge_feedback
4231 ^ other.ext_subpass_merge_feedback,
4232 ext_swapchain_maintenance1: self.ext_swapchain_maintenance1
4233 ^ other.ext_swapchain_maintenance1,
4234 ext_texel_buffer_alignment: self.ext_texel_buffer_alignment
4235 ^ other.ext_texel_buffer_alignment,
4236 ext_texture_compression_astc_hdr: self.ext_texture_compression_astc_hdr
4237 ^ other.ext_texture_compression_astc_hdr,
4238 ext_tooling_info: self.ext_tooling_info ^ other.ext_tooling_info,
4239 ext_transform_feedback: self.ext_transform_feedback ^ other.ext_transform_feedback,
4240 ext_validation_cache: self.ext_validation_cache ^ other.ext_validation_cache,
4241 ext_vertex_attribute_divisor: self.ext_vertex_attribute_divisor
4242 ^ other.ext_vertex_attribute_divisor,
4243 ext_vertex_input_dynamic_state: self.ext_vertex_input_dynamic_state
4244 ^ other.ext_vertex_input_dynamic_state,
4245 ext_ycbcr_2plane_444_formats: self.ext_ycbcr_2plane_444_formats
4246 ^ other.ext_ycbcr_2plane_444_formats,
4247 ext_ycbcr_image_arrays: self.ext_ycbcr_image_arrays ^ other.ext_ycbcr_image_arrays,
4248 amdx_shader_enqueue: self.amdx_shader_enqueue ^ other.amdx_shader_enqueue,
4249 amd_buffer_marker: self.amd_buffer_marker ^ other.amd_buffer_marker,
4250 amd_device_coherent_memory: self.amd_device_coherent_memory
4251 ^ other.amd_device_coherent_memory,
4252 amd_display_native_hdr: self.amd_display_native_hdr ^ other.amd_display_native_hdr,
4253 amd_draw_indirect_count: self.amd_draw_indirect_count ^ other.amd_draw_indirect_count,
4254 amd_gcn_shader: self.amd_gcn_shader ^ other.amd_gcn_shader,
4255 amd_gpu_shader_half_float: self.amd_gpu_shader_half_float
4256 ^ other.amd_gpu_shader_half_float,
4257 amd_gpu_shader_int16: self.amd_gpu_shader_int16 ^ other.amd_gpu_shader_int16,
4258 amd_memory_overallocation_behavior: self.amd_memory_overallocation_behavior
4259 ^ other.amd_memory_overallocation_behavior,
4260 amd_mixed_attachment_samples: self.amd_mixed_attachment_samples
4261 ^ other.amd_mixed_attachment_samples,
4262 amd_pipeline_compiler_control: self.amd_pipeline_compiler_control
4263 ^ other.amd_pipeline_compiler_control,
4264 amd_rasterization_order: self.amd_rasterization_order ^ other.amd_rasterization_order,
4265 amd_shader_ballot: self.amd_shader_ballot ^ other.amd_shader_ballot,
4266 amd_shader_core_properties: self.amd_shader_core_properties
4267 ^ other.amd_shader_core_properties,
4268 amd_shader_core_properties2: self.amd_shader_core_properties2
4269 ^ other.amd_shader_core_properties2,
4270 amd_shader_early_and_late_fragment_tests: self.amd_shader_early_and_late_fragment_tests
4271 ^ other.amd_shader_early_and_late_fragment_tests,
4272 amd_shader_explicit_vertex_parameter: self.amd_shader_explicit_vertex_parameter
4273 ^ other.amd_shader_explicit_vertex_parameter,
4274 amd_shader_fragment_mask: self.amd_shader_fragment_mask
4275 ^ other.amd_shader_fragment_mask,
4276 amd_shader_image_load_store_lod: self.amd_shader_image_load_store_lod
4277 ^ other.amd_shader_image_load_store_lod,
4278 amd_shader_info: self.amd_shader_info ^ other.amd_shader_info,
4279 amd_shader_trinary_minmax: self.amd_shader_trinary_minmax
4280 ^ other.amd_shader_trinary_minmax,
4281 amd_texture_gather_bias_lod: self.amd_texture_gather_bias_lod
4282 ^ other.amd_texture_gather_bias_lod,
4283 android_external_format_resolve: self.android_external_format_resolve
4284 ^ other.android_external_format_resolve,
4285 android_external_memory_android_hardware_buffer: self
4286 .android_external_memory_android_hardware_buffer
4287 ^ other.android_external_memory_android_hardware_buffer,
4288 arm_rasterization_order_attachment_access: self
4289 .arm_rasterization_order_attachment_access
4290 ^ other.arm_rasterization_order_attachment_access,
4291 arm_render_pass_striped: self.arm_render_pass_striped ^ other.arm_render_pass_striped,
4292 arm_scheduling_controls: self.arm_scheduling_controls ^ other.arm_scheduling_controls,
4293 arm_shader_core_builtins: self.arm_shader_core_builtins
4294 ^ other.arm_shader_core_builtins,
4295 arm_shader_core_properties: self.arm_shader_core_properties
4296 ^ other.arm_shader_core_properties,
4297 fuchsia_buffer_collection: self.fuchsia_buffer_collection
4298 ^ other.fuchsia_buffer_collection,
4299 fuchsia_external_memory: self.fuchsia_external_memory ^ other.fuchsia_external_memory,
4300 fuchsia_external_semaphore: self.fuchsia_external_semaphore
4301 ^ other.fuchsia_external_semaphore,
4302 ggp_frame_token: self.ggp_frame_token ^ other.ggp_frame_token,
4303 google_decorate_string: self.google_decorate_string ^ other.google_decorate_string,
4304 google_display_timing: self.google_display_timing ^ other.google_display_timing,
4305 google_hlsl_functionality1: self.google_hlsl_functionality1
4306 ^ other.google_hlsl_functionality1,
4307 google_user_type: self.google_user_type ^ other.google_user_type,
4308 huawei_cluster_culling_shader: self.huawei_cluster_culling_shader
4309 ^ other.huawei_cluster_culling_shader,
4310 huawei_invocation_mask: self.huawei_invocation_mask ^ other.huawei_invocation_mask,
4311 huawei_subpass_shading: self.huawei_subpass_shading ^ other.huawei_subpass_shading,
4312 img_filter_cubic: self.img_filter_cubic ^ other.img_filter_cubic,
4313 img_format_pvrtc: self.img_format_pvrtc ^ other.img_format_pvrtc,
4314 img_relaxed_line_rasterization: self.img_relaxed_line_rasterization
4315 ^ other.img_relaxed_line_rasterization,
4316 intel_performance_query: self.intel_performance_query ^ other.intel_performance_query,
4317 intel_shader_integer_functions2: self.intel_shader_integer_functions2
4318 ^ other.intel_shader_integer_functions2,
4319 msft_layered_driver: self.msft_layered_driver ^ other.msft_layered_driver,
4320 nvx_binary_import: self.nvx_binary_import ^ other.nvx_binary_import,
4321 nvx_image_view_handle: self.nvx_image_view_handle ^ other.nvx_image_view_handle,
4322 nvx_multiview_per_view_attributes: self.nvx_multiview_per_view_attributes
4323 ^ other.nvx_multiview_per_view_attributes,
4324 nv_acquire_winrt_display: self.nv_acquire_winrt_display
4325 ^ other.nv_acquire_winrt_display,
4326 nv_clip_space_w_scaling: self.nv_clip_space_w_scaling ^ other.nv_clip_space_w_scaling,
4327 nv_compute_shader_derivatives: self.nv_compute_shader_derivatives
4328 ^ other.nv_compute_shader_derivatives,
4329 nv_cooperative_matrix: self.nv_cooperative_matrix ^ other.nv_cooperative_matrix,
4330 nv_copy_memory_indirect: self.nv_copy_memory_indirect ^ other.nv_copy_memory_indirect,
4331 nv_corner_sampled_image: self.nv_corner_sampled_image ^ other.nv_corner_sampled_image,
4332 nv_coverage_reduction_mode: self.nv_coverage_reduction_mode
4333 ^ other.nv_coverage_reduction_mode,
4334 nv_cuda_kernel_launch: self.nv_cuda_kernel_launch ^ other.nv_cuda_kernel_launch,
4335 nv_dedicated_allocation: self.nv_dedicated_allocation ^ other.nv_dedicated_allocation,
4336 nv_dedicated_allocation_image_aliasing: self.nv_dedicated_allocation_image_aliasing
4337 ^ other.nv_dedicated_allocation_image_aliasing,
4338 nv_descriptor_pool_overallocation: self.nv_descriptor_pool_overallocation
4339 ^ other.nv_descriptor_pool_overallocation,
4340 nv_device_diagnostic_checkpoints: self.nv_device_diagnostic_checkpoints
4341 ^ other.nv_device_diagnostic_checkpoints,
4342 nv_device_diagnostics_config: self.nv_device_diagnostics_config
4343 ^ other.nv_device_diagnostics_config,
4344 nv_device_generated_commands: self.nv_device_generated_commands
4345 ^ other.nv_device_generated_commands,
4346 nv_device_generated_commands_compute: self.nv_device_generated_commands_compute
4347 ^ other.nv_device_generated_commands_compute,
4348 nv_displacement_micromap: self.nv_displacement_micromap
4349 ^ other.nv_displacement_micromap,
4350 nv_extended_sparse_address_space: self.nv_extended_sparse_address_space
4351 ^ other.nv_extended_sparse_address_space,
4352 nv_external_memory: self.nv_external_memory ^ other.nv_external_memory,
4353 nv_external_memory_rdma: self.nv_external_memory_rdma ^ other.nv_external_memory_rdma,
4354 nv_external_memory_win32: self.nv_external_memory_win32
4355 ^ other.nv_external_memory_win32,
4356 nv_fill_rectangle: self.nv_fill_rectangle ^ other.nv_fill_rectangle,
4357 nv_fragment_coverage_to_color: self.nv_fragment_coverage_to_color
4358 ^ other.nv_fragment_coverage_to_color,
4359 nv_fragment_shader_barycentric: self.nv_fragment_shader_barycentric
4360 ^ other.nv_fragment_shader_barycentric,
4361 nv_fragment_shading_rate_enums: self.nv_fragment_shading_rate_enums
4362 ^ other.nv_fragment_shading_rate_enums,
4363 nv_framebuffer_mixed_samples: self.nv_framebuffer_mixed_samples
4364 ^ other.nv_framebuffer_mixed_samples,
4365 nv_geometry_shader_passthrough: self.nv_geometry_shader_passthrough
4366 ^ other.nv_geometry_shader_passthrough,
4367 nv_glsl_shader: self.nv_glsl_shader ^ other.nv_glsl_shader,
4368 nv_inherited_viewport_scissor: self.nv_inherited_viewport_scissor
4369 ^ other.nv_inherited_viewport_scissor,
4370 nv_linear_color_attachment: self.nv_linear_color_attachment
4371 ^ other.nv_linear_color_attachment,
4372 nv_low_latency: self.nv_low_latency ^ other.nv_low_latency,
4373 nv_low_latency2: self.nv_low_latency2 ^ other.nv_low_latency2,
4374 nv_memory_decompression: self.nv_memory_decompression ^ other.nv_memory_decompression,
4375 nv_mesh_shader: self.nv_mesh_shader ^ other.nv_mesh_shader,
4376 nv_optical_flow: self.nv_optical_flow ^ other.nv_optical_flow,
4377 nv_per_stage_descriptor_set: self.nv_per_stage_descriptor_set
4378 ^ other.nv_per_stage_descriptor_set,
4379 nv_present_barrier: self.nv_present_barrier ^ other.nv_present_barrier,
4380 nv_raw_access_chains: self.nv_raw_access_chains ^ other.nv_raw_access_chains,
4381 nv_ray_tracing: self.nv_ray_tracing ^ other.nv_ray_tracing,
4382 nv_ray_tracing_invocation_reorder: self.nv_ray_tracing_invocation_reorder
4383 ^ other.nv_ray_tracing_invocation_reorder,
4384 nv_ray_tracing_motion_blur: self.nv_ray_tracing_motion_blur
4385 ^ other.nv_ray_tracing_motion_blur,
4386 nv_ray_tracing_validation: self.nv_ray_tracing_validation
4387 ^ other.nv_ray_tracing_validation,
4388 nv_representative_fragment_test: self.nv_representative_fragment_test
4389 ^ other.nv_representative_fragment_test,
4390 nv_sample_mask_override_coverage: self.nv_sample_mask_override_coverage
4391 ^ other.nv_sample_mask_override_coverage,
4392 nv_scissor_exclusive: self.nv_scissor_exclusive ^ other.nv_scissor_exclusive,
4393 nv_shader_atomic_float16_vector: self.nv_shader_atomic_float16_vector
4394 ^ other.nv_shader_atomic_float16_vector,
4395 nv_shader_image_footprint: self.nv_shader_image_footprint
4396 ^ other.nv_shader_image_footprint,
4397 nv_shader_sm_builtins: self.nv_shader_sm_builtins ^ other.nv_shader_sm_builtins,
4398 nv_shader_subgroup_partitioned: self.nv_shader_subgroup_partitioned
4399 ^ other.nv_shader_subgroup_partitioned,
4400 nv_shading_rate_image: self.nv_shading_rate_image ^ other.nv_shading_rate_image,
4401 nv_viewport_array2: self.nv_viewport_array2 ^ other.nv_viewport_array2,
4402 nv_viewport_swizzle: self.nv_viewport_swizzle ^ other.nv_viewport_swizzle,
4403 nv_win32_keyed_mutex: self.nv_win32_keyed_mutex ^ other.nv_win32_keyed_mutex,
4404 qcom_filter_cubic_clamp: self.qcom_filter_cubic_clamp ^ other.qcom_filter_cubic_clamp,
4405 qcom_filter_cubic_weights: self.qcom_filter_cubic_weights
4406 ^ other.qcom_filter_cubic_weights,
4407 qcom_fragment_density_map_offset: self.qcom_fragment_density_map_offset
4408 ^ other.qcom_fragment_density_map_offset,
4409 qcom_image_processing: self.qcom_image_processing ^ other.qcom_image_processing,
4410 qcom_image_processing2: self.qcom_image_processing2 ^ other.qcom_image_processing2,
4411 qcom_multiview_per_view_render_areas: self.qcom_multiview_per_view_render_areas
4412 ^ other.qcom_multiview_per_view_render_areas,
4413 qcom_multiview_per_view_viewports: self.qcom_multiview_per_view_viewports
4414 ^ other.qcom_multiview_per_view_viewports,
4415 qcom_render_pass_shader_resolve: self.qcom_render_pass_shader_resolve
4416 ^ other.qcom_render_pass_shader_resolve,
4417 qcom_render_pass_store_ops: self.qcom_render_pass_store_ops
4418 ^ other.qcom_render_pass_store_ops,
4419 qcom_render_pass_transform: self.qcom_render_pass_transform
4420 ^ other.qcom_render_pass_transform,
4421 qcom_rotated_copy_commands: self.qcom_rotated_copy_commands
4422 ^ other.qcom_rotated_copy_commands,
4423 qcom_tile_properties: self.qcom_tile_properties ^ other.qcom_tile_properties,
4424 qcom_ycbcr_degamma: self.qcom_ycbcr_degamma ^ other.qcom_ycbcr_degamma,
4425 qnx_external_memory_screen_buffer: self.qnx_external_memory_screen_buffer
4426 ^ other.qnx_external_memory_screen_buffer,
4427 sec_amigo_profiling: self.sec_amigo_profiling ^ other.sec_amigo_profiling,
4428 valve_descriptor_set_host_mapping: self.valve_descriptor_set_host_mapping
4429 ^ other.valve_descriptor_set_host_mapping,
4430 valve_mutable_descriptor_type: self.valve_mutable_descriptor_type
4431 ^ other.valve_mutable_descriptor_type,
4432 _ne: crate::NonExhaustive(()),
4433 }
4434 }
4435}
4436impl std::ops::BitAnd for DeviceExtensions {
4437 type Output = DeviceExtensions;
4438 #[inline]
4439 fn bitand(self, rhs: Self) -> Self::Output {
4440 self.intersection(&rhs)
4441 }
4442}
4443impl std::ops::BitAndAssign for DeviceExtensions {
4444 #[inline]
4445 fn bitand_assign(&mut self, rhs: Self) {
4446 *self = self.intersection(&rhs);
4447 }
4448}
4449impl std::ops::BitOr for DeviceExtensions {
4450 type Output = DeviceExtensions;
4451 #[inline]
4452 fn bitor(self, rhs: Self) -> Self::Output {
4453 self.union(&rhs)
4454 }
4455}
4456impl std::ops::BitOrAssign for DeviceExtensions {
4457 #[inline]
4458 fn bitor_assign(&mut self, rhs: Self) {
4459 *self = self.union(&rhs);
4460 }
4461}
4462impl std::ops::BitXor for DeviceExtensions {
4463 type Output = DeviceExtensions;
4464 #[inline]
4465 fn bitxor(self, rhs: Self) -> Self::Output {
4466 self.symmetric_difference(&rhs)
4467 }
4468}
4469impl std::ops::BitXorAssign for DeviceExtensions {
4470 #[inline]
4471 fn bitxor_assign(&mut self, rhs: Self) {
4472 *self = self.symmetric_difference(&rhs);
4473 }
4474}
4475impl std::ops::Sub for DeviceExtensions {
4476 type Output = DeviceExtensions;
4477 #[inline]
4478 fn sub(self, rhs: Self) -> Self::Output {
4479 self.difference(&rhs)
4480 }
4481}
4482impl std::ops::SubAssign for DeviceExtensions {
4483 #[inline]
4484 fn sub_assign(&mut self, rhs: Self) {
4485 *self = self.difference(&rhs);
4486 }
4487}
4488impl std::fmt::Debug for DeviceExtensions {
4489 #[allow(unused_assignments)]
4490 fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> Result<(), std::fmt::Error> {
4491 write!(f, "[")?;
4492 let mut first = true;
4493 if self.khr_16bit_storage {
4494 if !first {
4495 write!(f, ", ")?
4496 } else {
4497 first = false;
4498 }
4499 f.write_str("VK_KHR_16bit_storage")?;
4500 }
4501 if self.khr_8bit_storage {
4502 if !first {
4503 write!(f, ", ")?
4504 } else {
4505 first = false;
4506 }
4507 f.write_str("VK_KHR_8bit_storage")?;
4508 }
4509 if self.khr_acceleration_structure {
4510 if !first {
4511 write!(f, ", ")?
4512 } else {
4513 first = false;
4514 }
4515 f.write_str("VK_KHR_acceleration_structure")?;
4516 }
4517 if self.khr_bind_memory2 {
4518 if !first {
4519 write!(f, ", ")?
4520 } else {
4521 first = false;
4522 }
4523 f.write_str("VK_KHR_bind_memory2")?;
4524 }
4525 if self.khr_buffer_device_address {
4526 if !first {
4527 write!(f, ", ")?
4528 } else {
4529 first = false;
4530 }
4531 f.write_str("VK_KHR_buffer_device_address")?;
4532 }
4533 if self.khr_calibrated_timestamps {
4534 if !first {
4535 write!(f, ", ")?
4536 } else {
4537 first = false;
4538 }
4539 f.write_str("VK_KHR_calibrated_timestamps")?;
4540 }
4541 if self.khr_cooperative_matrix {
4542 if !first {
4543 write!(f, ", ")?
4544 } else {
4545 first = false;
4546 }
4547 f.write_str("VK_KHR_cooperative_matrix")?;
4548 }
4549 if self.khr_copy_commands2 {
4550 if !first {
4551 write!(f, ", ")?
4552 } else {
4553 first = false;
4554 }
4555 f.write_str("VK_KHR_copy_commands2")?;
4556 }
4557 if self.khr_create_renderpass2 {
4558 if !first {
4559 write!(f, ", ")?
4560 } else {
4561 first = false;
4562 }
4563 f.write_str("VK_KHR_create_renderpass2")?;
4564 }
4565 if self.khr_dedicated_allocation {
4566 if !first {
4567 write!(f, ", ")?
4568 } else {
4569 first = false;
4570 }
4571 f.write_str("VK_KHR_dedicated_allocation")?;
4572 }
4573 if self.khr_deferred_host_operations {
4574 if !first {
4575 write!(f, ", ")?
4576 } else {
4577 first = false;
4578 }
4579 f.write_str("VK_KHR_deferred_host_operations")?;
4580 }
4581 if self.khr_depth_stencil_resolve {
4582 if !first {
4583 write!(f, ", ")?
4584 } else {
4585 first = false;
4586 }
4587 f.write_str("VK_KHR_depth_stencil_resolve")?;
4588 }
4589 if self.khr_descriptor_update_template {
4590 if !first {
4591 write!(f, ", ")?
4592 } else {
4593 first = false;
4594 }
4595 f.write_str("VK_KHR_descriptor_update_template")?;
4596 }
4597 if self.khr_device_group {
4598 if !first {
4599 write!(f, ", ")?
4600 } else {
4601 first = false;
4602 }
4603 f.write_str("VK_KHR_device_group")?;
4604 }
4605 if self.khr_display_swapchain {
4606 if !first {
4607 write!(f, ", ")?
4608 } else {
4609 first = false;
4610 }
4611 f.write_str("VK_KHR_display_swapchain")?;
4612 }
4613 if self.khr_draw_indirect_count {
4614 if !first {
4615 write!(f, ", ")?
4616 } else {
4617 first = false;
4618 }
4619 f.write_str("VK_KHR_draw_indirect_count")?;
4620 }
4621 if self.khr_driver_properties {
4622 if !first {
4623 write!(f, ", ")?
4624 } else {
4625 first = false;
4626 }
4627 f.write_str("VK_KHR_driver_properties")?;
4628 }
4629 if self.khr_dynamic_rendering {
4630 if !first {
4631 write!(f, ", ")?
4632 } else {
4633 first = false;
4634 }
4635 f.write_str("VK_KHR_dynamic_rendering")?;
4636 }
4637 if self.khr_dynamic_rendering_local_read {
4638 if !first {
4639 write!(f, ", ")?
4640 } else {
4641 first = false;
4642 }
4643 f.write_str("VK_KHR_dynamic_rendering_local_read")?;
4644 }
4645 if self.khr_external_fence {
4646 if !first {
4647 write!(f, ", ")?
4648 } else {
4649 first = false;
4650 }
4651 f.write_str("VK_KHR_external_fence")?;
4652 }
4653 if self.khr_external_fence_fd {
4654 if !first {
4655 write!(f, ", ")?
4656 } else {
4657 first = false;
4658 }
4659 f.write_str("VK_KHR_external_fence_fd")?;
4660 }
4661 if self.khr_external_fence_win32 {
4662 if !first {
4663 write!(f, ", ")?
4664 } else {
4665 first = false;
4666 }
4667 f.write_str("VK_KHR_external_fence_win32")?;
4668 }
4669 if self.khr_external_memory {
4670 if !first {
4671 write!(f, ", ")?
4672 } else {
4673 first = false;
4674 }
4675 f.write_str("VK_KHR_external_memory")?;
4676 }
4677 if self.khr_external_memory_fd {
4678 if !first {
4679 write!(f, ", ")?
4680 } else {
4681 first = false;
4682 }
4683 f.write_str("VK_KHR_external_memory_fd")?;
4684 }
4685 if self.khr_external_memory_win32 {
4686 if !first {
4687 write!(f, ", ")?
4688 } else {
4689 first = false;
4690 }
4691 f.write_str("VK_KHR_external_memory_win32")?;
4692 }
4693 if self.khr_external_semaphore {
4694 if !first {
4695 write!(f, ", ")?
4696 } else {
4697 first = false;
4698 }
4699 f.write_str("VK_KHR_external_semaphore")?;
4700 }
4701 if self.khr_external_semaphore_fd {
4702 if !first {
4703 write!(f, ", ")?
4704 } else {
4705 first = false;
4706 }
4707 f.write_str("VK_KHR_external_semaphore_fd")?;
4708 }
4709 if self.khr_external_semaphore_win32 {
4710 if !first {
4711 write!(f, ", ")?
4712 } else {
4713 first = false;
4714 }
4715 f.write_str("VK_KHR_external_semaphore_win32")?;
4716 }
4717 if self.khr_format_feature_flags2 {
4718 if !first {
4719 write!(f, ", ")?
4720 } else {
4721 first = false;
4722 }
4723 f.write_str("VK_KHR_format_feature_flags2")?;
4724 }
4725 if self.khr_fragment_shader_barycentric {
4726 if !first {
4727 write!(f, ", ")?
4728 } else {
4729 first = false;
4730 }
4731 f.write_str("VK_KHR_fragment_shader_barycentric")?;
4732 }
4733 if self.khr_fragment_shading_rate {
4734 if !first {
4735 write!(f, ", ")?
4736 } else {
4737 first = false;
4738 }
4739 f.write_str("VK_KHR_fragment_shading_rate")?;
4740 }
4741 if self.khr_get_memory_requirements2 {
4742 if !first {
4743 write!(f, ", ")?
4744 } else {
4745 first = false;
4746 }
4747 f.write_str("VK_KHR_get_memory_requirements2")?;
4748 }
4749 if self.khr_global_priority {
4750 if !first {
4751 write!(f, ", ")?
4752 } else {
4753 first = false;
4754 }
4755 f.write_str("VK_KHR_global_priority")?;
4756 }
4757 if self.khr_image_format_list {
4758 if !first {
4759 write!(f, ", ")?
4760 } else {
4761 first = false;
4762 }
4763 f.write_str("VK_KHR_image_format_list")?;
4764 }
4765 if self.khr_imageless_framebuffer {
4766 if !first {
4767 write!(f, ", ")?
4768 } else {
4769 first = false;
4770 }
4771 f.write_str("VK_KHR_imageless_framebuffer")?;
4772 }
4773 if self.khr_incremental_present {
4774 if !first {
4775 write!(f, ", ")?
4776 } else {
4777 first = false;
4778 }
4779 f.write_str("VK_KHR_incremental_present")?;
4780 }
4781 if self.khr_index_type_uint8 {
4782 if !first {
4783 write!(f, ", ")?
4784 } else {
4785 first = false;
4786 }
4787 f.write_str("VK_KHR_index_type_uint8")?;
4788 }
4789 if self.khr_line_rasterization {
4790 if !first {
4791 write!(f, ", ")?
4792 } else {
4793 first = false;
4794 }
4795 f.write_str("VK_KHR_line_rasterization")?;
4796 }
4797 if self.khr_load_store_op_none {
4798 if !first {
4799 write!(f, ", ")?
4800 } else {
4801 first = false;
4802 }
4803 f.write_str("VK_KHR_load_store_op_none")?;
4804 }
4805 if self.khr_maintenance1 {
4806 if !first {
4807 write!(f, ", ")?
4808 } else {
4809 first = false;
4810 }
4811 f.write_str("VK_KHR_maintenance1")?;
4812 }
4813 if self.khr_maintenance2 {
4814 if !first {
4815 write!(f, ", ")?
4816 } else {
4817 first = false;
4818 }
4819 f.write_str("VK_KHR_maintenance2")?;
4820 }
4821 if self.khr_maintenance3 {
4822 if !first {
4823 write!(f, ", ")?
4824 } else {
4825 first = false;
4826 }
4827 f.write_str("VK_KHR_maintenance3")?;
4828 }
4829 if self.khr_maintenance4 {
4830 if !first {
4831 write!(f, ", ")?
4832 } else {
4833 first = false;
4834 }
4835 f.write_str("VK_KHR_maintenance4")?;
4836 }
4837 if self.khr_maintenance5 {
4838 if !first {
4839 write!(f, ", ")?
4840 } else {
4841 first = false;
4842 }
4843 f.write_str("VK_KHR_maintenance5")?;
4844 }
4845 if self.khr_maintenance6 {
4846 if !first {
4847 write!(f, ", ")?
4848 } else {
4849 first = false;
4850 }
4851 f.write_str("VK_KHR_maintenance6")?;
4852 }
4853 if self.khr_map_memory2 {
4854 if !first {
4855 write!(f, ", ")?
4856 } else {
4857 first = false;
4858 }
4859 f.write_str("VK_KHR_map_memory2")?;
4860 }
4861 if self.khr_multiview {
4862 if !first {
4863 write!(f, ", ")?
4864 } else {
4865 first = false;
4866 }
4867 f.write_str("VK_KHR_multiview")?;
4868 }
4869 if self.khr_performance_query {
4870 if !first {
4871 write!(f, ", ")?
4872 } else {
4873 first = false;
4874 }
4875 f.write_str("VK_KHR_performance_query")?;
4876 }
4877 if self.khr_pipeline_executable_properties {
4878 if !first {
4879 write!(f, ", ")?
4880 } else {
4881 first = false;
4882 }
4883 f.write_str("VK_KHR_pipeline_executable_properties")?;
4884 }
4885 if self.khr_pipeline_library {
4886 if !first {
4887 write!(f, ", ")?
4888 } else {
4889 first = false;
4890 }
4891 f.write_str("VK_KHR_pipeline_library")?;
4892 }
4893 if self.khr_portability_subset {
4894 if !first {
4895 write!(f, ", ")?
4896 } else {
4897 first = false;
4898 }
4899 f.write_str("VK_KHR_portability_subset")?;
4900 }
4901 if self.khr_present_id {
4902 if !first {
4903 write!(f, ", ")?
4904 } else {
4905 first = false;
4906 }
4907 f.write_str("VK_KHR_present_id")?;
4908 }
4909 if self.khr_present_wait {
4910 if !first {
4911 write!(f, ", ")?
4912 } else {
4913 first = false;
4914 }
4915 f.write_str("VK_KHR_present_wait")?;
4916 }
4917 if self.khr_push_descriptor {
4918 if !first {
4919 write!(f, ", ")?
4920 } else {
4921 first = false;
4922 }
4923 f.write_str("VK_KHR_push_descriptor")?;
4924 }
4925 if self.khr_ray_query {
4926 if !first {
4927 write!(f, ", ")?
4928 } else {
4929 first = false;
4930 }
4931 f.write_str("VK_KHR_ray_query")?;
4932 }
4933 if self.khr_ray_tracing_maintenance1 {
4934 if !first {
4935 write!(f, ", ")?
4936 } else {
4937 first = false;
4938 }
4939 f.write_str("VK_KHR_ray_tracing_maintenance1")?;
4940 }
4941 if self.khr_ray_tracing_pipeline {
4942 if !first {
4943 write!(f, ", ")?
4944 } else {
4945 first = false;
4946 }
4947 f.write_str("VK_KHR_ray_tracing_pipeline")?;
4948 }
4949 if self.khr_ray_tracing_position_fetch {
4950 if !first {
4951 write!(f, ", ")?
4952 } else {
4953 first = false;
4954 }
4955 f.write_str("VK_KHR_ray_tracing_position_fetch")?;
4956 }
4957 if self.khr_relaxed_block_layout {
4958 if !first {
4959 write!(f, ", ")?
4960 } else {
4961 first = false;
4962 }
4963 f.write_str("VK_KHR_relaxed_block_layout")?;
4964 }
4965 if self.khr_sampler_mirror_clamp_to_edge {
4966 if !first {
4967 write!(f, ", ")?
4968 } else {
4969 first = false;
4970 }
4971 f.write_str("VK_KHR_sampler_mirror_clamp_to_edge")?;
4972 }
4973 if self.khr_sampler_ycbcr_conversion {
4974 if !first {
4975 write!(f, ", ")?
4976 } else {
4977 first = false;
4978 }
4979 f.write_str("VK_KHR_sampler_ycbcr_conversion")?;
4980 }
4981 if self.khr_separate_depth_stencil_layouts {
4982 if !first {
4983 write!(f, ", ")?
4984 } else {
4985 first = false;
4986 }
4987 f.write_str("VK_KHR_separate_depth_stencil_layouts")?;
4988 }
4989 if self.khr_shader_atomic_int64 {
4990 if !first {
4991 write!(f, ", ")?
4992 } else {
4993 first = false;
4994 }
4995 f.write_str("VK_KHR_shader_atomic_int64")?;
4996 }
4997 if self.khr_shader_clock {
4998 if !first {
4999 write!(f, ", ")?
5000 } else {
5001 first = false;
5002 }
5003 f.write_str("VK_KHR_shader_clock")?;
5004 }
5005 if self.khr_shader_draw_parameters {
5006 if !first {
5007 write!(f, ", ")?
5008 } else {
5009 first = false;
5010 }
5011 f.write_str("VK_KHR_shader_draw_parameters")?;
5012 }
5013 if self.khr_shader_expect_assume {
5014 if !first {
5015 write!(f, ", ")?
5016 } else {
5017 first = false;
5018 }
5019 f.write_str("VK_KHR_shader_expect_assume")?;
5020 }
5021 if self.khr_shader_float16_int8 {
5022 if !first {
5023 write!(f, ", ")?
5024 } else {
5025 first = false;
5026 }
5027 f.write_str("VK_KHR_shader_float16_int8")?;
5028 }
5029 if self.khr_shader_float_controls {
5030 if !first {
5031 write!(f, ", ")?
5032 } else {
5033 first = false;
5034 }
5035 f.write_str("VK_KHR_shader_float_controls")?;
5036 }
5037 if self.khr_shader_float_controls2 {
5038 if !first {
5039 write!(f, ", ")?
5040 } else {
5041 first = false;
5042 }
5043 f.write_str("VK_KHR_shader_float_controls2")?;
5044 }
5045 if self.khr_shader_integer_dot_product {
5046 if !first {
5047 write!(f, ", ")?
5048 } else {
5049 first = false;
5050 }
5051 f.write_str("VK_KHR_shader_integer_dot_product")?;
5052 }
5053 if self.khr_shader_maximal_reconvergence {
5054 if !first {
5055 write!(f, ", ")?
5056 } else {
5057 first = false;
5058 }
5059 f.write_str("VK_KHR_shader_maximal_reconvergence")?;
5060 }
5061 if self.khr_shader_non_semantic_info {
5062 if !first {
5063 write!(f, ", ")?
5064 } else {
5065 first = false;
5066 }
5067 f.write_str("VK_KHR_shader_non_semantic_info")?;
5068 }
5069 if self.khr_shader_quad_control {
5070 if !first {
5071 write!(f, ", ")?
5072 } else {
5073 first = false;
5074 }
5075 f.write_str("VK_KHR_shader_quad_control")?;
5076 }
5077 if self.khr_shader_subgroup_extended_types {
5078 if !first {
5079 write!(f, ", ")?
5080 } else {
5081 first = false;
5082 }
5083 f.write_str("VK_KHR_shader_subgroup_extended_types")?;
5084 }
5085 if self.khr_shader_subgroup_rotate {
5086 if !first {
5087 write!(f, ", ")?
5088 } else {
5089 first = false;
5090 }
5091 f.write_str("VK_KHR_shader_subgroup_rotate")?;
5092 }
5093 if self.khr_shader_subgroup_uniform_control_flow {
5094 if !first {
5095 write!(f, ", ")?
5096 } else {
5097 first = false;
5098 }
5099 f.write_str("VK_KHR_shader_subgroup_uniform_control_flow")?;
5100 }
5101 if self.khr_shader_terminate_invocation {
5102 if !first {
5103 write!(f, ", ")?
5104 } else {
5105 first = false;
5106 }
5107 f.write_str("VK_KHR_shader_terminate_invocation")?;
5108 }
5109 if self.khr_shared_presentable_image {
5110 if !first {
5111 write!(f, ", ")?
5112 } else {
5113 first = false;
5114 }
5115 f.write_str("VK_KHR_shared_presentable_image")?;
5116 }
5117 if self.khr_spirv_1_4 {
5118 if !first {
5119 write!(f, ", ")?
5120 } else {
5121 first = false;
5122 }
5123 f.write_str("VK_KHR_spirv_1_4")?;
5124 }
5125 if self.khr_storage_buffer_storage_class {
5126 if !first {
5127 write!(f, ", ")?
5128 } else {
5129 first = false;
5130 }
5131 f.write_str("VK_KHR_storage_buffer_storage_class")?;
5132 }
5133 if self.khr_swapchain {
5134 if !first {
5135 write!(f, ", ")?
5136 } else {
5137 first = false;
5138 }
5139 f.write_str("VK_KHR_swapchain")?;
5140 }
5141 if self.khr_swapchain_mutable_format {
5142 if !first {
5143 write!(f, ", ")?
5144 } else {
5145 first = false;
5146 }
5147 f.write_str("VK_KHR_swapchain_mutable_format")?;
5148 }
5149 if self.khr_synchronization2 {
5150 if !first {
5151 write!(f, ", ")?
5152 } else {
5153 first = false;
5154 }
5155 f.write_str("VK_KHR_synchronization2")?;
5156 }
5157 if self.khr_timeline_semaphore {
5158 if !first {
5159 write!(f, ", ")?
5160 } else {
5161 first = false;
5162 }
5163 f.write_str("VK_KHR_timeline_semaphore")?;
5164 }
5165 if self.khr_uniform_buffer_standard_layout {
5166 if !first {
5167 write!(f, ", ")?
5168 } else {
5169 first = false;
5170 }
5171 f.write_str("VK_KHR_uniform_buffer_standard_layout")?;
5172 }
5173 if self.khr_variable_pointers {
5174 if !first {
5175 write!(f, ", ")?
5176 } else {
5177 first = false;
5178 }
5179 f.write_str("VK_KHR_variable_pointers")?;
5180 }
5181 if self.khr_vertex_attribute_divisor {
5182 if !first {
5183 write!(f, ", ")?
5184 } else {
5185 first = false;
5186 }
5187 f.write_str("VK_KHR_vertex_attribute_divisor")?;
5188 }
5189 if self.khr_video_decode_av1 {
5190 if !first {
5191 write!(f, ", ")?
5192 } else {
5193 first = false;
5194 }
5195 f.write_str("VK_KHR_video_decode_av1")?;
5196 }
5197 if self.khr_video_decode_h264 {
5198 if !first {
5199 write!(f, ", ")?
5200 } else {
5201 first = false;
5202 }
5203 f.write_str("VK_KHR_video_decode_h264")?;
5204 }
5205 if self.khr_video_decode_h265 {
5206 if !first {
5207 write!(f, ", ")?
5208 } else {
5209 first = false;
5210 }
5211 f.write_str("VK_KHR_video_decode_h265")?;
5212 }
5213 if self.khr_video_decode_queue {
5214 if !first {
5215 write!(f, ", ")?
5216 } else {
5217 first = false;
5218 }
5219 f.write_str("VK_KHR_video_decode_queue")?;
5220 }
5221 if self.khr_video_encode_h264 {
5222 if !first {
5223 write!(f, ", ")?
5224 } else {
5225 first = false;
5226 }
5227 f.write_str("VK_KHR_video_encode_h264")?;
5228 }
5229 if self.khr_video_encode_h265 {
5230 if !first {
5231 write!(f, ", ")?
5232 } else {
5233 first = false;
5234 }
5235 f.write_str("VK_KHR_video_encode_h265")?;
5236 }
5237 if self.khr_video_encode_queue {
5238 if !first {
5239 write!(f, ", ")?
5240 } else {
5241 first = false;
5242 }
5243 f.write_str("VK_KHR_video_encode_queue")?;
5244 }
5245 if self.khr_video_maintenance1 {
5246 if !first {
5247 write!(f, ", ")?
5248 } else {
5249 first = false;
5250 }
5251 f.write_str("VK_KHR_video_maintenance1")?;
5252 }
5253 if self.khr_video_queue {
5254 if !first {
5255 write!(f, ", ")?
5256 } else {
5257 first = false;
5258 }
5259 f.write_str("VK_KHR_video_queue")?;
5260 }
5261 if self.khr_vulkan_memory_model {
5262 if !first {
5263 write!(f, ", ")?
5264 } else {
5265 first = false;
5266 }
5267 f.write_str("VK_KHR_vulkan_memory_model")?;
5268 }
5269 if self.khr_win32_keyed_mutex {
5270 if !first {
5271 write!(f, ", ")?
5272 } else {
5273 first = false;
5274 }
5275 f.write_str("VK_KHR_win32_keyed_mutex")?;
5276 }
5277 if self.khr_workgroup_memory_explicit_layout {
5278 if !first {
5279 write!(f, ", ")?
5280 } else {
5281 first = false;
5282 }
5283 f.write_str("VK_KHR_workgroup_memory_explicit_layout")?;
5284 }
5285 if self.khr_zero_initialize_workgroup_memory {
5286 if !first {
5287 write!(f, ", ")?
5288 } else {
5289 first = false;
5290 }
5291 f.write_str("VK_KHR_zero_initialize_workgroup_memory")?;
5292 }
5293 if self.ext_4444_formats {
5294 if !first {
5295 write!(f, ", ")?
5296 } else {
5297 first = false;
5298 }
5299 f.write_str("VK_EXT_4444_formats")?;
5300 }
5301 if self.ext_astc_decode_mode {
5302 if !first {
5303 write!(f, ", ")?
5304 } else {
5305 first = false;
5306 }
5307 f.write_str("VK_EXT_astc_decode_mode")?;
5308 }
5309 if self.ext_attachment_feedback_loop_dynamic_state {
5310 if !first {
5311 write!(f, ", ")?
5312 } else {
5313 first = false;
5314 }
5315 f.write_str("VK_EXT_attachment_feedback_loop_dynamic_state")?;
5316 }
5317 if self.ext_attachment_feedback_loop_layout {
5318 if !first {
5319 write!(f, ", ")?
5320 } else {
5321 first = false;
5322 }
5323 f.write_str("VK_EXT_attachment_feedback_loop_layout")?;
5324 }
5325 if self.ext_blend_operation_advanced {
5326 if !first {
5327 write!(f, ", ")?
5328 } else {
5329 first = false;
5330 }
5331 f.write_str("VK_EXT_blend_operation_advanced")?;
5332 }
5333 if self.ext_border_color_swizzle {
5334 if !first {
5335 write!(f, ", ")?
5336 } else {
5337 first = false;
5338 }
5339 f.write_str("VK_EXT_border_color_swizzle")?;
5340 }
5341 if self.ext_buffer_device_address {
5342 if !first {
5343 write!(f, ", ")?
5344 } else {
5345 first = false;
5346 }
5347 f.write_str("VK_EXT_buffer_device_address")?;
5348 }
5349 if self.ext_calibrated_timestamps {
5350 if !first {
5351 write!(f, ", ")?
5352 } else {
5353 first = false;
5354 }
5355 f.write_str("VK_EXT_calibrated_timestamps")?;
5356 }
5357 if self.ext_color_write_enable {
5358 if !first {
5359 write!(f, ", ")?
5360 } else {
5361 first = false;
5362 }
5363 f.write_str("VK_EXT_color_write_enable")?;
5364 }
5365 if self.ext_conditional_rendering {
5366 if !first {
5367 write!(f, ", ")?
5368 } else {
5369 first = false;
5370 }
5371 f.write_str("VK_EXT_conditional_rendering")?;
5372 }
5373 if self.ext_conservative_rasterization {
5374 if !first {
5375 write!(f, ", ")?
5376 } else {
5377 first = false;
5378 }
5379 f.write_str("VK_EXT_conservative_rasterization")?;
5380 }
5381 if self.ext_custom_border_color {
5382 if !first {
5383 write!(f, ", ")?
5384 } else {
5385 first = false;
5386 }
5387 f.write_str("VK_EXT_custom_border_color")?;
5388 }
5389 if self.ext_debug_marker {
5390 if !first {
5391 write!(f, ", ")?
5392 } else {
5393 first = false;
5394 }
5395 f.write_str("VK_EXT_debug_marker")?;
5396 }
5397 if self.ext_depth_bias_control {
5398 if !first {
5399 write!(f, ", ")?
5400 } else {
5401 first = false;
5402 }
5403 f.write_str("VK_EXT_depth_bias_control")?;
5404 }
5405 if self.ext_depth_clamp_zero_one {
5406 if !first {
5407 write!(f, ", ")?
5408 } else {
5409 first = false;
5410 }
5411 f.write_str("VK_EXT_depth_clamp_zero_one")?;
5412 }
5413 if self.ext_depth_clip_control {
5414 if !first {
5415 write!(f, ", ")?
5416 } else {
5417 first = false;
5418 }
5419 f.write_str("VK_EXT_depth_clip_control")?;
5420 }
5421 if self.ext_depth_clip_enable {
5422 if !first {
5423 write!(f, ", ")?
5424 } else {
5425 first = false;
5426 }
5427 f.write_str("VK_EXT_depth_clip_enable")?;
5428 }
5429 if self.ext_depth_range_unrestricted {
5430 if !first {
5431 write!(f, ", ")?
5432 } else {
5433 first = false;
5434 }
5435 f.write_str("VK_EXT_depth_range_unrestricted")?;
5436 }
5437 if self.ext_descriptor_buffer {
5438 if !first {
5439 write!(f, ", ")?
5440 } else {
5441 first = false;
5442 }
5443 f.write_str("VK_EXT_descriptor_buffer")?;
5444 }
5445 if self.ext_descriptor_indexing {
5446 if !first {
5447 write!(f, ", ")?
5448 } else {
5449 first = false;
5450 }
5451 f.write_str("VK_EXT_descriptor_indexing")?;
5452 }
5453 if self.ext_device_address_binding_report {
5454 if !first {
5455 write!(f, ", ")?
5456 } else {
5457 first = false;
5458 }
5459 f.write_str("VK_EXT_device_address_binding_report")?;
5460 }
5461 if self.ext_device_fault {
5462 if !first {
5463 write!(f, ", ")?
5464 } else {
5465 first = false;
5466 }
5467 f.write_str("VK_EXT_device_fault")?;
5468 }
5469 if self.ext_device_memory_report {
5470 if !first {
5471 write!(f, ", ")?
5472 } else {
5473 first = false;
5474 }
5475 f.write_str("VK_EXT_device_memory_report")?;
5476 }
5477 if self.ext_discard_rectangles {
5478 if !first {
5479 write!(f, ", ")?
5480 } else {
5481 first = false;
5482 }
5483 f.write_str("VK_EXT_discard_rectangles")?;
5484 }
5485 if self.ext_display_control {
5486 if !first {
5487 write!(f, ", ")?
5488 } else {
5489 first = false;
5490 }
5491 f.write_str("VK_EXT_display_control")?;
5492 }
5493 if self.ext_dynamic_rendering_unused_attachments {
5494 if !first {
5495 write!(f, ", ")?
5496 } else {
5497 first = false;
5498 }
5499 f.write_str("VK_EXT_dynamic_rendering_unused_attachments")?;
5500 }
5501 if self.ext_extended_dynamic_state {
5502 if !first {
5503 write!(f, ", ")?
5504 } else {
5505 first = false;
5506 }
5507 f.write_str("VK_EXT_extended_dynamic_state")?;
5508 }
5509 if self.ext_extended_dynamic_state2 {
5510 if !first {
5511 write!(f, ", ")?
5512 } else {
5513 first = false;
5514 }
5515 f.write_str("VK_EXT_extended_dynamic_state2")?;
5516 }
5517 if self.ext_extended_dynamic_state3 {
5518 if !first {
5519 write!(f, ", ")?
5520 } else {
5521 first = false;
5522 }
5523 f.write_str("VK_EXT_extended_dynamic_state3")?;
5524 }
5525 if self.ext_external_memory_acquire_unmodified {
5526 if !first {
5527 write!(f, ", ")?
5528 } else {
5529 first = false;
5530 }
5531 f.write_str("VK_EXT_external_memory_acquire_unmodified")?;
5532 }
5533 if self.ext_external_memory_dma_buf {
5534 if !first {
5535 write!(f, ", ")?
5536 } else {
5537 first = false;
5538 }
5539 f.write_str("VK_EXT_external_memory_dma_buf")?;
5540 }
5541 if self.ext_external_memory_host {
5542 if !first {
5543 write!(f, ", ")?
5544 } else {
5545 first = false;
5546 }
5547 f.write_str("VK_EXT_external_memory_host")?;
5548 }
5549 if self.ext_filter_cubic {
5550 if !first {
5551 write!(f, ", ")?
5552 } else {
5553 first = false;
5554 }
5555 f.write_str("VK_EXT_filter_cubic")?;
5556 }
5557 if self.ext_fragment_density_map {
5558 if !first {
5559 write!(f, ", ")?
5560 } else {
5561 first = false;
5562 }
5563 f.write_str("VK_EXT_fragment_density_map")?;
5564 }
5565 if self.ext_fragment_density_map2 {
5566 if !first {
5567 write!(f, ", ")?
5568 } else {
5569 first = false;
5570 }
5571 f.write_str("VK_EXT_fragment_density_map2")?;
5572 }
5573 if self.ext_fragment_shader_interlock {
5574 if !first {
5575 write!(f, ", ")?
5576 } else {
5577 first = false;
5578 }
5579 f.write_str("VK_EXT_fragment_shader_interlock")?;
5580 }
5581 if self.ext_frame_boundary {
5582 if !first {
5583 write!(f, ", ")?
5584 } else {
5585 first = false;
5586 }
5587 f.write_str("VK_EXT_frame_boundary")?;
5588 }
5589 if self.ext_full_screen_exclusive {
5590 if !first {
5591 write!(f, ", ")?
5592 } else {
5593 first = false;
5594 }
5595 f.write_str("VK_EXT_full_screen_exclusive")?;
5596 }
5597 if self.ext_global_priority {
5598 if !first {
5599 write!(f, ", ")?
5600 } else {
5601 first = false;
5602 }
5603 f.write_str("VK_EXT_global_priority")?;
5604 }
5605 if self.ext_global_priority_query {
5606 if !first {
5607 write!(f, ", ")?
5608 } else {
5609 first = false;
5610 }
5611 f.write_str("VK_EXT_global_priority_query")?;
5612 }
5613 if self.ext_graphics_pipeline_library {
5614 if !first {
5615 write!(f, ", ")?
5616 } else {
5617 first = false;
5618 }
5619 f.write_str("VK_EXT_graphics_pipeline_library")?;
5620 }
5621 if self.ext_hdr_metadata {
5622 if !first {
5623 write!(f, ", ")?
5624 } else {
5625 first = false;
5626 }
5627 f.write_str("VK_EXT_hdr_metadata")?;
5628 }
5629 if self.ext_host_image_copy {
5630 if !first {
5631 write!(f, ", ")?
5632 } else {
5633 first = false;
5634 }
5635 f.write_str("VK_EXT_host_image_copy")?;
5636 }
5637 if self.ext_host_query_reset {
5638 if !first {
5639 write!(f, ", ")?
5640 } else {
5641 first = false;
5642 }
5643 f.write_str("VK_EXT_host_query_reset")?;
5644 }
5645 if self.ext_image_2d_view_of_3d {
5646 if !first {
5647 write!(f, ", ")?
5648 } else {
5649 first = false;
5650 }
5651 f.write_str("VK_EXT_image_2d_view_of_3d")?;
5652 }
5653 if self.ext_image_compression_control {
5654 if !first {
5655 write!(f, ", ")?
5656 } else {
5657 first = false;
5658 }
5659 f.write_str("VK_EXT_image_compression_control")?;
5660 }
5661 if self.ext_image_compression_control_swapchain {
5662 if !first {
5663 write!(f, ", ")?
5664 } else {
5665 first = false;
5666 }
5667 f.write_str("VK_EXT_image_compression_control_swapchain")?;
5668 }
5669 if self.ext_image_drm_format_modifier {
5670 if !first {
5671 write!(f, ", ")?
5672 } else {
5673 first = false;
5674 }
5675 f.write_str("VK_EXT_image_drm_format_modifier")?;
5676 }
5677 if self.ext_image_robustness {
5678 if !first {
5679 write!(f, ", ")?
5680 } else {
5681 first = false;
5682 }
5683 f.write_str("VK_EXT_image_robustness")?;
5684 }
5685 if self.ext_image_sliced_view_of_3d {
5686 if !first {
5687 write!(f, ", ")?
5688 } else {
5689 first = false;
5690 }
5691 f.write_str("VK_EXT_image_sliced_view_of_3d")?;
5692 }
5693 if self.ext_image_view_min_lod {
5694 if !first {
5695 write!(f, ", ")?
5696 } else {
5697 first = false;
5698 }
5699 f.write_str("VK_EXT_image_view_min_lod")?;
5700 }
5701 if self.ext_index_type_uint8 {
5702 if !first {
5703 write!(f, ", ")?
5704 } else {
5705 first = false;
5706 }
5707 f.write_str("VK_EXT_index_type_uint8")?;
5708 }
5709 if self.ext_inline_uniform_block {
5710 if !first {
5711 write!(f, ", ")?
5712 } else {
5713 first = false;
5714 }
5715 f.write_str("VK_EXT_inline_uniform_block")?;
5716 }
5717 if self.ext_legacy_dithering {
5718 if !first {
5719 write!(f, ", ")?
5720 } else {
5721 first = false;
5722 }
5723 f.write_str("VK_EXT_legacy_dithering")?;
5724 }
5725 if self.ext_line_rasterization {
5726 if !first {
5727 write!(f, ", ")?
5728 } else {
5729 first = false;
5730 }
5731 f.write_str("VK_EXT_line_rasterization")?;
5732 }
5733 if self.ext_load_store_op_none {
5734 if !first {
5735 write!(f, ", ")?
5736 } else {
5737 first = false;
5738 }
5739 f.write_str("VK_EXT_load_store_op_none")?;
5740 }
5741 if self.ext_map_memory_placed {
5742 if !first {
5743 write!(f, ", ")?
5744 } else {
5745 first = false;
5746 }
5747 f.write_str("VK_EXT_map_memory_placed")?;
5748 }
5749 if self.ext_memory_budget {
5750 if !first {
5751 write!(f, ", ")?
5752 } else {
5753 first = false;
5754 }
5755 f.write_str("VK_EXT_memory_budget")?;
5756 }
5757 if self.ext_memory_priority {
5758 if !first {
5759 write!(f, ", ")?
5760 } else {
5761 first = false;
5762 }
5763 f.write_str("VK_EXT_memory_priority")?;
5764 }
5765 if self.ext_mesh_shader {
5766 if !first {
5767 write!(f, ", ")?
5768 } else {
5769 first = false;
5770 }
5771 f.write_str("VK_EXT_mesh_shader")?;
5772 }
5773 if self.ext_metal_objects {
5774 if !first {
5775 write!(f, ", ")?
5776 } else {
5777 first = false;
5778 }
5779 f.write_str("VK_EXT_metal_objects")?;
5780 }
5781 if self.ext_multi_draw {
5782 if !first {
5783 write!(f, ", ")?
5784 } else {
5785 first = false;
5786 }
5787 f.write_str("VK_EXT_multi_draw")?;
5788 }
5789 if self.ext_multisampled_render_to_single_sampled {
5790 if !first {
5791 write!(f, ", ")?
5792 } else {
5793 first = false;
5794 }
5795 f.write_str("VK_EXT_multisampled_render_to_single_sampled")?;
5796 }
5797 if self.ext_mutable_descriptor_type {
5798 if !first {
5799 write!(f, ", ")?
5800 } else {
5801 first = false;
5802 }
5803 f.write_str("VK_EXT_mutable_descriptor_type")?;
5804 }
5805 if self.ext_nested_command_buffer {
5806 if !first {
5807 write!(f, ", ")?
5808 } else {
5809 first = false;
5810 }
5811 f.write_str("VK_EXT_nested_command_buffer")?;
5812 }
5813 if self.ext_non_seamless_cube_map {
5814 if !first {
5815 write!(f, ", ")?
5816 } else {
5817 first = false;
5818 }
5819 f.write_str("VK_EXT_non_seamless_cube_map")?;
5820 }
5821 if self.ext_opacity_micromap {
5822 if !first {
5823 write!(f, ", ")?
5824 } else {
5825 first = false;
5826 }
5827 f.write_str("VK_EXT_opacity_micromap")?;
5828 }
5829 if self.ext_pageable_device_local_memory {
5830 if !first {
5831 write!(f, ", ")?
5832 } else {
5833 first = false;
5834 }
5835 f.write_str("VK_EXT_pageable_device_local_memory")?;
5836 }
5837 if self.ext_pci_bus_info {
5838 if !first {
5839 write!(f, ", ")?
5840 } else {
5841 first = false;
5842 }
5843 f.write_str("VK_EXT_pci_bus_info")?;
5844 }
5845 if self.ext_physical_device_drm {
5846 if !first {
5847 write!(f, ", ")?
5848 } else {
5849 first = false;
5850 }
5851 f.write_str("VK_EXT_physical_device_drm")?;
5852 }
5853 if self.ext_pipeline_creation_cache_control {
5854 if !first {
5855 write!(f, ", ")?
5856 } else {
5857 first = false;
5858 }
5859 f.write_str("VK_EXT_pipeline_creation_cache_control")?;
5860 }
5861 if self.ext_pipeline_creation_feedback {
5862 if !first {
5863 write!(f, ", ")?
5864 } else {
5865 first = false;
5866 }
5867 f.write_str("VK_EXT_pipeline_creation_feedback")?;
5868 }
5869 if self.ext_pipeline_library_group_handles {
5870 if !first {
5871 write!(f, ", ")?
5872 } else {
5873 first = false;
5874 }
5875 f.write_str("VK_EXT_pipeline_library_group_handles")?;
5876 }
5877 if self.ext_pipeline_properties {
5878 if !first {
5879 write!(f, ", ")?
5880 } else {
5881 first = false;
5882 }
5883 f.write_str("VK_EXT_pipeline_properties")?;
5884 }
5885 if self.ext_pipeline_protected_access {
5886 if !first {
5887 write!(f, ", ")?
5888 } else {
5889 first = false;
5890 }
5891 f.write_str("VK_EXT_pipeline_protected_access")?;
5892 }
5893 if self.ext_pipeline_robustness {
5894 if !first {
5895 write!(f, ", ")?
5896 } else {
5897 first = false;
5898 }
5899 f.write_str("VK_EXT_pipeline_robustness")?;
5900 }
5901 if self.ext_post_depth_coverage {
5902 if !first {
5903 write!(f, ", ")?
5904 } else {
5905 first = false;
5906 }
5907 f.write_str("VK_EXT_post_depth_coverage")?;
5908 }
5909 if self.ext_primitive_topology_list_restart {
5910 if !first {
5911 write!(f, ", ")?
5912 } else {
5913 first = false;
5914 }
5915 f.write_str("VK_EXT_primitive_topology_list_restart")?;
5916 }
5917 if self.ext_primitives_generated_query {
5918 if !first {
5919 write!(f, ", ")?
5920 } else {
5921 first = false;
5922 }
5923 f.write_str("VK_EXT_primitives_generated_query")?;
5924 }
5925 if self.ext_private_data {
5926 if !first {
5927 write!(f, ", ")?
5928 } else {
5929 first = false;
5930 }
5931 f.write_str("VK_EXT_private_data")?;
5932 }
5933 if self.ext_provoking_vertex {
5934 if !first {
5935 write!(f, ", ")?
5936 } else {
5937 first = false;
5938 }
5939 f.write_str("VK_EXT_provoking_vertex")?;
5940 }
5941 if self.ext_queue_family_foreign {
5942 if !first {
5943 write!(f, ", ")?
5944 } else {
5945 first = false;
5946 }
5947 f.write_str("VK_EXT_queue_family_foreign")?;
5948 }
5949 if self.ext_rasterization_order_attachment_access {
5950 if !first {
5951 write!(f, ", ")?
5952 } else {
5953 first = false;
5954 }
5955 f.write_str("VK_EXT_rasterization_order_attachment_access")?;
5956 }
5957 if self.ext_rgba10x6_formats {
5958 if !first {
5959 write!(f, ", ")?
5960 } else {
5961 first = false;
5962 }
5963 f.write_str("VK_EXT_rgba10x6_formats")?;
5964 }
5965 if self.ext_robustness2 {
5966 if !first {
5967 write!(f, ", ")?
5968 } else {
5969 first = false;
5970 }
5971 f.write_str("VK_EXT_robustness2")?;
5972 }
5973 if self.ext_sample_locations {
5974 if !first {
5975 write!(f, ", ")?
5976 } else {
5977 first = false;
5978 }
5979 f.write_str("VK_EXT_sample_locations")?;
5980 }
5981 if self.ext_sampler_filter_minmax {
5982 if !first {
5983 write!(f, ", ")?
5984 } else {
5985 first = false;
5986 }
5987 f.write_str("VK_EXT_sampler_filter_minmax")?;
5988 }
5989 if self.ext_scalar_block_layout {
5990 if !first {
5991 write!(f, ", ")?
5992 } else {
5993 first = false;
5994 }
5995 f.write_str("VK_EXT_scalar_block_layout")?;
5996 }
5997 if self.ext_separate_stencil_usage {
5998 if !first {
5999 write!(f, ", ")?
6000 } else {
6001 first = false;
6002 }
6003 f.write_str("VK_EXT_separate_stencil_usage")?;
6004 }
6005 if self.ext_shader_atomic_float {
6006 if !first {
6007 write!(f, ", ")?
6008 } else {
6009 first = false;
6010 }
6011 f.write_str("VK_EXT_shader_atomic_float")?;
6012 }
6013 if self.ext_shader_atomic_float2 {
6014 if !first {
6015 write!(f, ", ")?
6016 } else {
6017 first = false;
6018 }
6019 f.write_str("VK_EXT_shader_atomic_float2")?;
6020 }
6021 if self.ext_shader_demote_to_helper_invocation {
6022 if !first {
6023 write!(f, ", ")?
6024 } else {
6025 first = false;
6026 }
6027 f.write_str("VK_EXT_shader_demote_to_helper_invocation")?;
6028 }
6029 if self.ext_shader_image_atomic_int64 {
6030 if !first {
6031 write!(f, ", ")?
6032 } else {
6033 first = false;
6034 }
6035 f.write_str("VK_EXT_shader_image_atomic_int64")?;
6036 }
6037 if self.ext_shader_module_identifier {
6038 if !first {
6039 write!(f, ", ")?
6040 } else {
6041 first = false;
6042 }
6043 f.write_str("VK_EXT_shader_module_identifier")?;
6044 }
6045 if self.ext_shader_object {
6046 if !first {
6047 write!(f, ", ")?
6048 } else {
6049 first = false;
6050 }
6051 f.write_str("VK_EXT_shader_object")?;
6052 }
6053 if self.ext_shader_stencil_export {
6054 if !first {
6055 write!(f, ", ")?
6056 } else {
6057 first = false;
6058 }
6059 f.write_str("VK_EXT_shader_stencil_export")?;
6060 }
6061 if self.ext_shader_subgroup_ballot {
6062 if !first {
6063 write!(f, ", ")?
6064 } else {
6065 first = false;
6066 }
6067 f.write_str("VK_EXT_shader_subgroup_ballot")?;
6068 }
6069 if self.ext_shader_subgroup_vote {
6070 if !first {
6071 write!(f, ", ")?
6072 } else {
6073 first = false;
6074 }
6075 f.write_str("VK_EXT_shader_subgroup_vote")?;
6076 }
6077 if self.ext_shader_tile_image {
6078 if !first {
6079 write!(f, ", ")?
6080 } else {
6081 first = false;
6082 }
6083 f.write_str("VK_EXT_shader_tile_image")?;
6084 }
6085 if self.ext_shader_viewport_index_layer {
6086 if !first {
6087 write!(f, ", ")?
6088 } else {
6089 first = false;
6090 }
6091 f.write_str("VK_EXT_shader_viewport_index_layer")?;
6092 }
6093 if self.ext_subgroup_size_control {
6094 if !first {
6095 write!(f, ", ")?
6096 } else {
6097 first = false;
6098 }
6099 f.write_str("VK_EXT_subgroup_size_control")?;
6100 }
6101 if self.ext_subpass_merge_feedback {
6102 if !first {
6103 write!(f, ", ")?
6104 } else {
6105 first = false;
6106 }
6107 f.write_str("VK_EXT_subpass_merge_feedback")?;
6108 }
6109 if self.ext_swapchain_maintenance1 {
6110 if !first {
6111 write!(f, ", ")?
6112 } else {
6113 first = false;
6114 }
6115 f.write_str("VK_EXT_swapchain_maintenance1")?;
6116 }
6117 if self.ext_texel_buffer_alignment {
6118 if !first {
6119 write!(f, ", ")?
6120 } else {
6121 first = false;
6122 }
6123 f.write_str("VK_EXT_texel_buffer_alignment")?;
6124 }
6125 if self.ext_texture_compression_astc_hdr {
6126 if !first {
6127 write!(f, ", ")?
6128 } else {
6129 first = false;
6130 }
6131 f.write_str("VK_EXT_texture_compression_astc_hdr")?;
6132 }
6133 if self.ext_tooling_info {
6134 if !first {
6135 write!(f, ", ")?
6136 } else {
6137 first = false;
6138 }
6139 f.write_str("VK_EXT_tooling_info")?;
6140 }
6141 if self.ext_transform_feedback {
6142 if !first {
6143 write!(f, ", ")?
6144 } else {
6145 first = false;
6146 }
6147 f.write_str("VK_EXT_transform_feedback")?;
6148 }
6149 if self.ext_validation_cache {
6150 if !first {
6151 write!(f, ", ")?
6152 } else {
6153 first = false;
6154 }
6155 f.write_str("VK_EXT_validation_cache")?;
6156 }
6157 if self.ext_vertex_attribute_divisor {
6158 if !first {
6159 write!(f, ", ")?
6160 } else {
6161 first = false;
6162 }
6163 f.write_str("VK_EXT_vertex_attribute_divisor")?;
6164 }
6165 if self.ext_vertex_input_dynamic_state {
6166 if !first {
6167 write!(f, ", ")?
6168 } else {
6169 first = false;
6170 }
6171 f.write_str("VK_EXT_vertex_input_dynamic_state")?;
6172 }
6173 if self.ext_ycbcr_2plane_444_formats {
6174 if !first {
6175 write!(f, ", ")?
6176 } else {
6177 first = false;
6178 }
6179 f.write_str("VK_EXT_ycbcr_2plane_444_formats")?;
6180 }
6181 if self.ext_ycbcr_image_arrays {
6182 if !first {
6183 write!(f, ", ")?
6184 } else {
6185 first = false;
6186 }
6187 f.write_str("VK_EXT_ycbcr_image_arrays")?;
6188 }
6189 if self.amdx_shader_enqueue {
6190 if !first {
6191 write!(f, ", ")?
6192 } else {
6193 first = false;
6194 }
6195 f.write_str("VK_AMDX_shader_enqueue")?;
6196 }
6197 if self.amd_buffer_marker {
6198 if !first {
6199 write!(f, ", ")?
6200 } else {
6201 first = false;
6202 }
6203 f.write_str("VK_AMD_buffer_marker")?;
6204 }
6205 if self.amd_device_coherent_memory {
6206 if !first {
6207 write!(f, ", ")?
6208 } else {
6209 first = false;
6210 }
6211 f.write_str("VK_AMD_device_coherent_memory")?;
6212 }
6213 if self.amd_display_native_hdr {
6214 if !first {
6215 write!(f, ", ")?
6216 } else {
6217 first = false;
6218 }
6219 f.write_str("VK_AMD_display_native_hdr")?;
6220 }
6221 if self.amd_draw_indirect_count {
6222 if !first {
6223 write!(f, ", ")?
6224 } else {
6225 first = false;
6226 }
6227 f.write_str("VK_AMD_draw_indirect_count")?;
6228 }
6229 if self.amd_gcn_shader {
6230 if !first {
6231 write!(f, ", ")?
6232 } else {
6233 first = false;
6234 }
6235 f.write_str("VK_AMD_gcn_shader")?;
6236 }
6237 if self.amd_gpu_shader_half_float {
6238 if !first {
6239 write!(f, ", ")?
6240 } else {
6241 first = false;
6242 }
6243 f.write_str("VK_AMD_gpu_shader_half_float")?;
6244 }
6245 if self.amd_gpu_shader_int16 {
6246 if !first {
6247 write!(f, ", ")?
6248 } else {
6249 first = false;
6250 }
6251 f.write_str("VK_AMD_gpu_shader_int16")?;
6252 }
6253 if self.amd_memory_overallocation_behavior {
6254 if !first {
6255 write!(f, ", ")?
6256 } else {
6257 first = false;
6258 }
6259 f.write_str("VK_AMD_memory_overallocation_behavior")?;
6260 }
6261 if self.amd_mixed_attachment_samples {
6262 if !first {
6263 write!(f, ", ")?
6264 } else {
6265 first = false;
6266 }
6267 f.write_str("VK_AMD_mixed_attachment_samples")?;
6268 }
6269 if self.amd_pipeline_compiler_control {
6270 if !first {
6271 write!(f, ", ")?
6272 } else {
6273 first = false;
6274 }
6275 f.write_str("VK_AMD_pipeline_compiler_control")?;
6276 }
6277 if self.amd_rasterization_order {
6278 if !first {
6279 write!(f, ", ")?
6280 } else {
6281 first = false;
6282 }
6283 f.write_str("VK_AMD_rasterization_order")?;
6284 }
6285 if self.amd_shader_ballot {
6286 if !first {
6287 write!(f, ", ")?
6288 } else {
6289 first = false;
6290 }
6291 f.write_str("VK_AMD_shader_ballot")?;
6292 }
6293 if self.amd_shader_core_properties {
6294 if !first {
6295 write!(f, ", ")?
6296 } else {
6297 first = false;
6298 }
6299 f.write_str("VK_AMD_shader_core_properties")?;
6300 }
6301 if self.amd_shader_core_properties2 {
6302 if !first {
6303 write!(f, ", ")?
6304 } else {
6305 first = false;
6306 }
6307 f.write_str("VK_AMD_shader_core_properties2")?;
6308 }
6309 if self.amd_shader_early_and_late_fragment_tests {
6310 if !first {
6311 write!(f, ", ")?
6312 } else {
6313 first = false;
6314 }
6315 f.write_str("VK_AMD_shader_early_and_late_fragment_tests")?;
6316 }
6317 if self.amd_shader_explicit_vertex_parameter {
6318 if !first {
6319 write!(f, ", ")?
6320 } else {
6321 first = false;
6322 }
6323 f.write_str("VK_AMD_shader_explicit_vertex_parameter")?;
6324 }
6325 if self.amd_shader_fragment_mask {
6326 if !first {
6327 write!(f, ", ")?
6328 } else {
6329 first = false;
6330 }
6331 f.write_str("VK_AMD_shader_fragment_mask")?;
6332 }
6333 if self.amd_shader_image_load_store_lod {
6334 if !first {
6335 write!(f, ", ")?
6336 } else {
6337 first = false;
6338 }
6339 f.write_str("VK_AMD_shader_image_load_store_lod")?;
6340 }
6341 if self.amd_shader_info {
6342 if !first {
6343 write!(f, ", ")?
6344 } else {
6345 first = false;
6346 }
6347 f.write_str("VK_AMD_shader_info")?;
6348 }
6349 if self.amd_shader_trinary_minmax {
6350 if !first {
6351 write!(f, ", ")?
6352 } else {
6353 first = false;
6354 }
6355 f.write_str("VK_AMD_shader_trinary_minmax")?;
6356 }
6357 if self.amd_texture_gather_bias_lod {
6358 if !first {
6359 write!(f, ", ")?
6360 } else {
6361 first = false;
6362 }
6363 f.write_str("VK_AMD_texture_gather_bias_lod")?;
6364 }
6365 if self.android_external_format_resolve {
6366 if !first {
6367 write!(f, ", ")?
6368 } else {
6369 first = false;
6370 }
6371 f.write_str("VK_ANDROID_external_format_resolve")?;
6372 }
6373 if self.android_external_memory_android_hardware_buffer {
6374 if !first {
6375 write!(f, ", ")?
6376 } else {
6377 first = false;
6378 }
6379 f.write_str("VK_ANDROID_external_memory_android_hardware_buffer")?;
6380 }
6381 if self.arm_rasterization_order_attachment_access {
6382 if !first {
6383 write!(f, ", ")?
6384 } else {
6385 first = false;
6386 }
6387 f.write_str("VK_ARM_rasterization_order_attachment_access")?;
6388 }
6389 if self.arm_render_pass_striped {
6390 if !first {
6391 write!(f, ", ")?
6392 } else {
6393 first = false;
6394 }
6395 f.write_str("VK_ARM_render_pass_striped")?;
6396 }
6397 if self.arm_scheduling_controls {
6398 if !first {
6399 write!(f, ", ")?
6400 } else {
6401 first = false;
6402 }
6403 f.write_str("VK_ARM_scheduling_controls")?;
6404 }
6405 if self.arm_shader_core_builtins {
6406 if !first {
6407 write!(f, ", ")?
6408 } else {
6409 first = false;
6410 }
6411 f.write_str("VK_ARM_shader_core_builtins")?;
6412 }
6413 if self.arm_shader_core_properties {
6414 if !first {
6415 write!(f, ", ")?
6416 } else {
6417 first = false;
6418 }
6419 f.write_str("VK_ARM_shader_core_properties")?;
6420 }
6421 if self.fuchsia_buffer_collection {
6422 if !first {
6423 write!(f, ", ")?
6424 } else {
6425 first = false;
6426 }
6427 f.write_str("VK_FUCHSIA_buffer_collection")?;
6428 }
6429 if self.fuchsia_external_memory {
6430 if !first {
6431 write!(f, ", ")?
6432 } else {
6433 first = false;
6434 }
6435 f.write_str("VK_FUCHSIA_external_memory")?;
6436 }
6437 if self.fuchsia_external_semaphore {
6438 if !first {
6439 write!(f, ", ")?
6440 } else {
6441 first = false;
6442 }
6443 f.write_str("VK_FUCHSIA_external_semaphore")?;
6444 }
6445 if self.ggp_frame_token {
6446 if !first {
6447 write!(f, ", ")?
6448 } else {
6449 first = false;
6450 }
6451 f.write_str("VK_GGP_frame_token")?;
6452 }
6453 if self.google_decorate_string {
6454 if !first {
6455 write!(f, ", ")?
6456 } else {
6457 first = false;
6458 }
6459 f.write_str("VK_GOOGLE_decorate_string")?;
6460 }
6461 if self.google_display_timing {
6462 if !first {
6463 write!(f, ", ")?
6464 } else {
6465 first = false;
6466 }
6467 f.write_str("VK_GOOGLE_display_timing")?;
6468 }
6469 if self.google_hlsl_functionality1 {
6470 if !first {
6471 write!(f, ", ")?
6472 } else {
6473 first = false;
6474 }
6475 f.write_str("VK_GOOGLE_hlsl_functionality1")?;
6476 }
6477 if self.google_user_type {
6478 if !first {
6479 write!(f, ", ")?
6480 } else {
6481 first = false;
6482 }
6483 f.write_str("VK_GOOGLE_user_type")?;
6484 }
6485 if self.huawei_cluster_culling_shader {
6486 if !first {
6487 write!(f, ", ")?
6488 } else {
6489 first = false;
6490 }
6491 f.write_str("VK_HUAWEI_cluster_culling_shader")?;
6492 }
6493 if self.huawei_invocation_mask {
6494 if !first {
6495 write!(f, ", ")?
6496 } else {
6497 first = false;
6498 }
6499 f.write_str("VK_HUAWEI_invocation_mask")?;
6500 }
6501 if self.huawei_subpass_shading {
6502 if !first {
6503 write!(f, ", ")?
6504 } else {
6505 first = false;
6506 }
6507 f.write_str("VK_HUAWEI_subpass_shading")?;
6508 }
6509 if self.img_filter_cubic {
6510 if !first {
6511 write!(f, ", ")?
6512 } else {
6513 first = false;
6514 }
6515 f.write_str("VK_IMG_filter_cubic")?;
6516 }
6517 if self.img_format_pvrtc {
6518 if !first {
6519 write!(f, ", ")?
6520 } else {
6521 first = false;
6522 }
6523 f.write_str("VK_IMG_format_pvrtc")?;
6524 }
6525 if self.img_relaxed_line_rasterization {
6526 if !first {
6527 write!(f, ", ")?
6528 } else {
6529 first = false;
6530 }
6531 f.write_str("VK_IMG_relaxed_line_rasterization")?;
6532 }
6533 if self.intel_performance_query {
6534 if !first {
6535 write!(f, ", ")?
6536 } else {
6537 first = false;
6538 }
6539 f.write_str("VK_INTEL_performance_query")?;
6540 }
6541 if self.intel_shader_integer_functions2 {
6542 if !first {
6543 write!(f, ", ")?
6544 } else {
6545 first = false;
6546 }
6547 f.write_str("VK_INTEL_shader_integer_functions2")?;
6548 }
6549 if self.msft_layered_driver {
6550 if !first {
6551 write!(f, ", ")?
6552 } else {
6553 first = false;
6554 }
6555 f.write_str("VK_MSFT_layered_driver")?;
6556 }
6557 if self.nvx_binary_import {
6558 if !first {
6559 write!(f, ", ")?
6560 } else {
6561 first = false;
6562 }
6563 f.write_str("VK_NVX_binary_import")?;
6564 }
6565 if self.nvx_image_view_handle {
6566 if !first {
6567 write!(f, ", ")?
6568 } else {
6569 first = false;
6570 }
6571 f.write_str("VK_NVX_image_view_handle")?;
6572 }
6573 if self.nvx_multiview_per_view_attributes {
6574 if !first {
6575 write!(f, ", ")?
6576 } else {
6577 first = false;
6578 }
6579 f.write_str("VK_NVX_multiview_per_view_attributes")?;
6580 }
6581 if self.nv_acquire_winrt_display {
6582 if !first {
6583 write!(f, ", ")?
6584 } else {
6585 first = false;
6586 }
6587 f.write_str("VK_NV_acquire_winrt_display")?;
6588 }
6589 if self.nv_clip_space_w_scaling {
6590 if !first {
6591 write!(f, ", ")?
6592 } else {
6593 first = false;
6594 }
6595 f.write_str("VK_NV_clip_space_w_scaling")?;
6596 }
6597 if self.nv_compute_shader_derivatives {
6598 if !first {
6599 write!(f, ", ")?
6600 } else {
6601 first = false;
6602 }
6603 f.write_str("VK_NV_compute_shader_derivatives")?;
6604 }
6605 if self.nv_cooperative_matrix {
6606 if !first {
6607 write!(f, ", ")?
6608 } else {
6609 first = false;
6610 }
6611 f.write_str("VK_NV_cooperative_matrix")?;
6612 }
6613 if self.nv_copy_memory_indirect {
6614 if !first {
6615 write!(f, ", ")?
6616 } else {
6617 first = false;
6618 }
6619 f.write_str("VK_NV_copy_memory_indirect")?;
6620 }
6621 if self.nv_corner_sampled_image {
6622 if !first {
6623 write!(f, ", ")?
6624 } else {
6625 first = false;
6626 }
6627 f.write_str("VK_NV_corner_sampled_image")?;
6628 }
6629 if self.nv_coverage_reduction_mode {
6630 if !first {
6631 write!(f, ", ")?
6632 } else {
6633 first = false;
6634 }
6635 f.write_str("VK_NV_coverage_reduction_mode")?;
6636 }
6637 if self.nv_cuda_kernel_launch {
6638 if !first {
6639 write!(f, ", ")?
6640 } else {
6641 first = false;
6642 }
6643 f.write_str("VK_NV_cuda_kernel_launch")?;
6644 }
6645 if self.nv_dedicated_allocation {
6646 if !first {
6647 write!(f, ", ")?
6648 } else {
6649 first = false;
6650 }
6651 f.write_str("VK_NV_dedicated_allocation")?;
6652 }
6653 if self.nv_dedicated_allocation_image_aliasing {
6654 if !first {
6655 write!(f, ", ")?
6656 } else {
6657 first = false;
6658 }
6659 f.write_str("VK_NV_dedicated_allocation_image_aliasing")?;
6660 }
6661 if self.nv_descriptor_pool_overallocation {
6662 if !first {
6663 write!(f, ", ")?
6664 } else {
6665 first = false;
6666 }
6667 f.write_str("VK_NV_descriptor_pool_overallocation")?;
6668 }
6669 if self.nv_device_diagnostic_checkpoints {
6670 if !first {
6671 write!(f, ", ")?
6672 } else {
6673 first = false;
6674 }
6675 f.write_str("VK_NV_device_diagnostic_checkpoints")?;
6676 }
6677 if self.nv_device_diagnostics_config {
6678 if !first {
6679 write!(f, ", ")?
6680 } else {
6681 first = false;
6682 }
6683 f.write_str("VK_NV_device_diagnostics_config")?;
6684 }
6685 if self.nv_device_generated_commands {
6686 if !first {
6687 write!(f, ", ")?
6688 } else {
6689 first = false;
6690 }
6691 f.write_str("VK_NV_device_generated_commands")?;
6692 }
6693 if self.nv_device_generated_commands_compute {
6694 if !first {
6695 write!(f, ", ")?
6696 } else {
6697 first = false;
6698 }
6699 f.write_str("VK_NV_device_generated_commands_compute")?;
6700 }
6701 if self.nv_displacement_micromap {
6702 if !first {
6703 write!(f, ", ")?
6704 } else {
6705 first = false;
6706 }
6707 f.write_str("VK_NV_displacement_micromap")?;
6708 }
6709 if self.nv_extended_sparse_address_space {
6710 if !first {
6711 write!(f, ", ")?
6712 } else {
6713 first = false;
6714 }
6715 f.write_str("VK_NV_extended_sparse_address_space")?;
6716 }
6717 if self.nv_external_memory {
6718 if !first {
6719 write!(f, ", ")?
6720 } else {
6721 first = false;
6722 }
6723 f.write_str("VK_NV_external_memory")?;
6724 }
6725 if self.nv_external_memory_rdma {
6726 if !first {
6727 write!(f, ", ")?
6728 } else {
6729 first = false;
6730 }
6731 f.write_str("VK_NV_external_memory_rdma")?;
6732 }
6733 if self.nv_external_memory_win32 {
6734 if !first {
6735 write!(f, ", ")?
6736 } else {
6737 first = false;
6738 }
6739 f.write_str("VK_NV_external_memory_win32")?;
6740 }
6741 if self.nv_fill_rectangle {
6742 if !first {
6743 write!(f, ", ")?
6744 } else {
6745 first = false;
6746 }
6747 f.write_str("VK_NV_fill_rectangle")?;
6748 }
6749 if self.nv_fragment_coverage_to_color {
6750 if !first {
6751 write!(f, ", ")?
6752 } else {
6753 first = false;
6754 }
6755 f.write_str("VK_NV_fragment_coverage_to_color")?;
6756 }
6757 if self.nv_fragment_shader_barycentric {
6758 if !first {
6759 write!(f, ", ")?
6760 } else {
6761 first = false;
6762 }
6763 f.write_str("VK_NV_fragment_shader_barycentric")?;
6764 }
6765 if self.nv_fragment_shading_rate_enums {
6766 if !first {
6767 write!(f, ", ")?
6768 } else {
6769 first = false;
6770 }
6771 f.write_str("VK_NV_fragment_shading_rate_enums")?;
6772 }
6773 if self.nv_framebuffer_mixed_samples {
6774 if !first {
6775 write!(f, ", ")?
6776 } else {
6777 first = false;
6778 }
6779 f.write_str("VK_NV_framebuffer_mixed_samples")?;
6780 }
6781 if self.nv_geometry_shader_passthrough {
6782 if !first {
6783 write!(f, ", ")?
6784 } else {
6785 first = false;
6786 }
6787 f.write_str("VK_NV_geometry_shader_passthrough")?;
6788 }
6789 if self.nv_glsl_shader {
6790 if !first {
6791 write!(f, ", ")?
6792 } else {
6793 first = false;
6794 }
6795 f.write_str("VK_NV_glsl_shader")?;
6796 }
6797 if self.nv_inherited_viewport_scissor {
6798 if !first {
6799 write!(f, ", ")?
6800 } else {
6801 first = false;
6802 }
6803 f.write_str("VK_NV_inherited_viewport_scissor")?;
6804 }
6805 if self.nv_linear_color_attachment {
6806 if !first {
6807 write!(f, ", ")?
6808 } else {
6809 first = false;
6810 }
6811 f.write_str("VK_NV_linear_color_attachment")?;
6812 }
6813 if self.nv_low_latency {
6814 if !first {
6815 write!(f, ", ")?
6816 } else {
6817 first = false;
6818 }
6819 f.write_str("VK_NV_low_latency")?;
6820 }
6821 if self.nv_low_latency2 {
6822 if !first {
6823 write!(f, ", ")?
6824 } else {
6825 first = false;
6826 }
6827 f.write_str("VK_NV_low_latency2")?;
6828 }
6829 if self.nv_memory_decompression {
6830 if !first {
6831 write!(f, ", ")?
6832 } else {
6833 first = false;
6834 }
6835 f.write_str("VK_NV_memory_decompression")?;
6836 }
6837 if self.nv_mesh_shader {
6838 if !first {
6839 write!(f, ", ")?
6840 } else {
6841 first = false;
6842 }
6843 f.write_str("VK_NV_mesh_shader")?;
6844 }
6845 if self.nv_optical_flow {
6846 if !first {
6847 write!(f, ", ")?
6848 } else {
6849 first = false;
6850 }
6851 f.write_str("VK_NV_optical_flow")?;
6852 }
6853 if self.nv_per_stage_descriptor_set {
6854 if !first {
6855 write!(f, ", ")?
6856 } else {
6857 first = false;
6858 }
6859 f.write_str("VK_NV_per_stage_descriptor_set")?;
6860 }
6861 if self.nv_present_barrier {
6862 if !first {
6863 write!(f, ", ")?
6864 } else {
6865 first = false;
6866 }
6867 f.write_str("VK_NV_present_barrier")?;
6868 }
6869 if self.nv_raw_access_chains {
6870 if !first {
6871 write!(f, ", ")?
6872 } else {
6873 first = false;
6874 }
6875 f.write_str("VK_NV_raw_access_chains")?;
6876 }
6877 if self.nv_ray_tracing {
6878 if !first {
6879 write!(f, ", ")?
6880 } else {
6881 first = false;
6882 }
6883 f.write_str("VK_NV_ray_tracing")?;
6884 }
6885 if self.nv_ray_tracing_invocation_reorder {
6886 if !first {
6887 write!(f, ", ")?
6888 } else {
6889 first = false;
6890 }
6891 f.write_str("VK_NV_ray_tracing_invocation_reorder")?;
6892 }
6893 if self.nv_ray_tracing_motion_blur {
6894 if !first {
6895 write!(f, ", ")?
6896 } else {
6897 first = false;
6898 }
6899 f.write_str("VK_NV_ray_tracing_motion_blur")?;
6900 }
6901 if self.nv_ray_tracing_validation {
6902 if !first {
6903 write!(f, ", ")?
6904 } else {
6905 first = false;
6906 }
6907 f.write_str("VK_NV_ray_tracing_validation")?;
6908 }
6909 if self.nv_representative_fragment_test {
6910 if !first {
6911 write!(f, ", ")?
6912 } else {
6913 first = false;
6914 }
6915 f.write_str("VK_NV_representative_fragment_test")?;
6916 }
6917 if self.nv_sample_mask_override_coverage {
6918 if !first {
6919 write!(f, ", ")?
6920 } else {
6921 first = false;
6922 }
6923 f.write_str("VK_NV_sample_mask_override_coverage")?;
6924 }
6925 if self.nv_scissor_exclusive {
6926 if !first {
6927 write!(f, ", ")?
6928 } else {
6929 first = false;
6930 }
6931 f.write_str("VK_NV_scissor_exclusive")?;
6932 }
6933 if self.nv_shader_atomic_float16_vector {
6934 if !first {
6935 write!(f, ", ")?
6936 } else {
6937 first = false;
6938 }
6939 f.write_str("VK_NV_shader_atomic_float16_vector")?;
6940 }
6941 if self.nv_shader_image_footprint {
6942 if !first {
6943 write!(f, ", ")?
6944 } else {
6945 first = false;
6946 }
6947 f.write_str("VK_NV_shader_image_footprint")?;
6948 }
6949 if self.nv_shader_sm_builtins {
6950 if !first {
6951 write!(f, ", ")?
6952 } else {
6953 first = false;
6954 }
6955 f.write_str("VK_NV_shader_sm_builtins")?;
6956 }
6957 if self.nv_shader_subgroup_partitioned {
6958 if !first {
6959 write!(f, ", ")?
6960 } else {
6961 first = false;
6962 }
6963 f.write_str("VK_NV_shader_subgroup_partitioned")?;
6964 }
6965 if self.nv_shading_rate_image {
6966 if !first {
6967 write!(f, ", ")?
6968 } else {
6969 first = false;
6970 }
6971 f.write_str("VK_NV_shading_rate_image")?;
6972 }
6973 if self.nv_viewport_array2 {
6974 if !first {
6975 write!(f, ", ")?
6976 } else {
6977 first = false;
6978 }
6979 f.write_str("VK_NV_viewport_array2")?;
6980 }
6981 if self.nv_viewport_swizzle {
6982 if !first {
6983 write!(f, ", ")?
6984 } else {
6985 first = false;
6986 }
6987 f.write_str("VK_NV_viewport_swizzle")?;
6988 }
6989 if self.nv_win32_keyed_mutex {
6990 if !first {
6991 write!(f, ", ")?
6992 } else {
6993 first = false;
6994 }
6995 f.write_str("VK_NV_win32_keyed_mutex")?;
6996 }
6997 if self.qcom_filter_cubic_clamp {
6998 if !first {
6999 write!(f, ", ")?
7000 } else {
7001 first = false;
7002 }
7003 f.write_str("VK_QCOM_filter_cubic_clamp")?;
7004 }
7005 if self.qcom_filter_cubic_weights {
7006 if !first {
7007 write!(f, ", ")?
7008 } else {
7009 first = false;
7010 }
7011 f.write_str("VK_QCOM_filter_cubic_weights")?;
7012 }
7013 if self.qcom_fragment_density_map_offset {
7014 if !first {
7015 write!(f, ", ")?
7016 } else {
7017 first = false;
7018 }
7019 f.write_str("VK_QCOM_fragment_density_map_offset")?;
7020 }
7021 if self.qcom_image_processing {
7022 if !first {
7023 write!(f, ", ")?
7024 } else {
7025 first = false;
7026 }
7027 f.write_str("VK_QCOM_image_processing")?;
7028 }
7029 if self.qcom_image_processing2 {
7030 if !first {
7031 write!(f, ", ")?
7032 } else {
7033 first = false;
7034 }
7035 f.write_str("VK_QCOM_image_processing2")?;
7036 }
7037 if self.qcom_multiview_per_view_render_areas {
7038 if !first {
7039 write!(f, ", ")?
7040 } else {
7041 first = false;
7042 }
7043 f.write_str("VK_QCOM_multiview_per_view_render_areas")?;
7044 }
7045 if self.qcom_multiview_per_view_viewports {
7046 if !first {
7047 write!(f, ", ")?
7048 } else {
7049 first = false;
7050 }
7051 f.write_str("VK_QCOM_multiview_per_view_viewports")?;
7052 }
7053 if self.qcom_render_pass_shader_resolve {
7054 if !first {
7055 write!(f, ", ")?
7056 } else {
7057 first = false;
7058 }
7059 f.write_str("VK_QCOM_render_pass_shader_resolve")?;
7060 }
7061 if self.qcom_render_pass_store_ops {
7062 if !first {
7063 write!(f, ", ")?
7064 } else {
7065 first = false;
7066 }
7067 f.write_str("VK_QCOM_render_pass_store_ops")?;
7068 }
7069 if self.qcom_render_pass_transform {
7070 if !first {
7071 write!(f, ", ")?
7072 } else {
7073 first = false;
7074 }
7075 f.write_str("VK_QCOM_render_pass_transform")?;
7076 }
7077 if self.qcom_rotated_copy_commands {
7078 if !first {
7079 write!(f, ", ")?
7080 } else {
7081 first = false;
7082 }
7083 f.write_str("VK_QCOM_rotated_copy_commands")?;
7084 }
7085 if self.qcom_tile_properties {
7086 if !first {
7087 write!(f, ", ")?
7088 } else {
7089 first = false;
7090 }
7091 f.write_str("VK_QCOM_tile_properties")?;
7092 }
7093 if self.qcom_ycbcr_degamma {
7094 if !first {
7095 write!(f, ", ")?
7096 } else {
7097 first = false;
7098 }
7099 f.write_str("VK_QCOM_ycbcr_degamma")?;
7100 }
7101 if self.qnx_external_memory_screen_buffer {
7102 if !first {
7103 write!(f, ", ")?
7104 } else {
7105 first = false;
7106 }
7107 f.write_str("VK_QNX_external_memory_screen_buffer")?;
7108 }
7109 if self.sec_amigo_profiling {
7110 if !first {
7111 write!(f, ", ")?
7112 } else {
7113 first = false;
7114 }
7115 f.write_str("VK_SEC_amigo_profiling")?;
7116 }
7117 if self.valve_descriptor_set_host_mapping {
7118 if !first {
7119 write!(f, ", ")?
7120 } else {
7121 first = false;
7122 }
7123 f.write_str("VK_VALVE_descriptor_set_host_mapping")?;
7124 }
7125 if self.valve_mutable_descriptor_type {
7126 if !first {
7127 write!(f, ", ")?
7128 } else {
7129 first = false;
7130 }
7131 f.write_str("VK_VALVE_mutable_descriptor_type")?;
7132 }
7133 write!(f, "]")
7134 }
7135}
7136impl<'a> FromIterator<&'a str> for DeviceExtensions {
7137 fn from_iter<I>(iter: I) -> Self
7138 where
7139 I: IntoIterator<Item = &'a str>,
7140 {
7141 let mut extensions = Self::empty();
7142 for name in iter {
7143 match name {
7144 "VK_KHR_16bit_storage" => {
7145 extensions.khr_16bit_storage = true;
7146 }
7147 "VK_KHR_8bit_storage" => {
7148 extensions.khr_8bit_storage = true;
7149 }
7150 "VK_KHR_acceleration_structure" => {
7151 extensions.khr_acceleration_structure = true;
7152 }
7153 "VK_KHR_bind_memory2" => {
7154 extensions.khr_bind_memory2 = true;
7155 }
7156 "VK_KHR_buffer_device_address" => {
7157 extensions.khr_buffer_device_address = true;
7158 }
7159 "VK_KHR_calibrated_timestamps" => {
7160 extensions.khr_calibrated_timestamps = true;
7161 }
7162 "VK_KHR_cooperative_matrix" => {
7163 extensions.khr_cooperative_matrix = true;
7164 }
7165 "VK_KHR_copy_commands2" => {
7166 extensions.khr_copy_commands2 = true;
7167 }
7168 "VK_KHR_create_renderpass2" => {
7169 extensions.khr_create_renderpass2 = true;
7170 }
7171 "VK_KHR_dedicated_allocation" => {
7172 extensions.khr_dedicated_allocation = true;
7173 }
7174 "VK_KHR_deferred_host_operations" => {
7175 extensions.khr_deferred_host_operations = true;
7176 }
7177 "VK_KHR_depth_stencil_resolve" => {
7178 extensions.khr_depth_stencil_resolve = true;
7179 }
7180 "VK_KHR_descriptor_update_template" => {
7181 extensions.khr_descriptor_update_template = true;
7182 }
7183 "VK_KHR_device_group" => {
7184 extensions.khr_device_group = true;
7185 }
7186 "VK_KHR_display_swapchain" => {
7187 extensions.khr_display_swapchain = true;
7188 }
7189 "VK_KHR_draw_indirect_count" => {
7190 extensions.khr_draw_indirect_count = true;
7191 }
7192 "VK_KHR_driver_properties" => {
7193 extensions.khr_driver_properties = true;
7194 }
7195 "VK_KHR_dynamic_rendering" => {
7196 extensions.khr_dynamic_rendering = true;
7197 }
7198 "VK_KHR_dynamic_rendering_local_read" => {
7199 extensions.khr_dynamic_rendering_local_read = true;
7200 }
7201 "VK_KHR_external_fence" => {
7202 extensions.khr_external_fence = true;
7203 }
7204 "VK_KHR_external_fence_fd" => {
7205 extensions.khr_external_fence_fd = true;
7206 }
7207 "VK_KHR_external_fence_win32" => {
7208 extensions.khr_external_fence_win32 = true;
7209 }
7210 "VK_KHR_external_memory" => {
7211 extensions.khr_external_memory = true;
7212 }
7213 "VK_KHR_external_memory_fd" => {
7214 extensions.khr_external_memory_fd = true;
7215 }
7216 "VK_KHR_external_memory_win32" => {
7217 extensions.khr_external_memory_win32 = true;
7218 }
7219 "VK_KHR_external_semaphore" => {
7220 extensions.khr_external_semaphore = true;
7221 }
7222 "VK_KHR_external_semaphore_fd" => {
7223 extensions.khr_external_semaphore_fd = true;
7224 }
7225 "VK_KHR_external_semaphore_win32" => {
7226 extensions.khr_external_semaphore_win32 = true;
7227 }
7228 "VK_KHR_format_feature_flags2" => {
7229 extensions.khr_format_feature_flags2 = true;
7230 }
7231 "VK_KHR_fragment_shader_barycentric" => {
7232 extensions.khr_fragment_shader_barycentric = true;
7233 }
7234 "VK_KHR_fragment_shading_rate" => {
7235 extensions.khr_fragment_shading_rate = true;
7236 }
7237 "VK_KHR_get_memory_requirements2" => {
7238 extensions.khr_get_memory_requirements2 = true;
7239 }
7240 "VK_KHR_global_priority" => {
7241 extensions.khr_global_priority = true;
7242 }
7243 "VK_KHR_image_format_list" => {
7244 extensions.khr_image_format_list = true;
7245 }
7246 "VK_KHR_imageless_framebuffer" => {
7247 extensions.khr_imageless_framebuffer = true;
7248 }
7249 "VK_KHR_incremental_present" => {
7250 extensions.khr_incremental_present = true;
7251 }
7252 "VK_KHR_index_type_uint8" => {
7253 extensions.khr_index_type_uint8 = true;
7254 }
7255 "VK_KHR_line_rasterization" => {
7256 extensions.khr_line_rasterization = true;
7257 }
7258 "VK_KHR_load_store_op_none" => {
7259 extensions.khr_load_store_op_none = true;
7260 }
7261 "VK_KHR_maintenance1" => {
7262 extensions.khr_maintenance1 = true;
7263 }
7264 "VK_KHR_maintenance2" => {
7265 extensions.khr_maintenance2 = true;
7266 }
7267 "VK_KHR_maintenance3" => {
7268 extensions.khr_maintenance3 = true;
7269 }
7270 "VK_KHR_maintenance4" => {
7271 extensions.khr_maintenance4 = true;
7272 }
7273 "VK_KHR_maintenance5" => {
7274 extensions.khr_maintenance5 = true;
7275 }
7276 "VK_KHR_maintenance6" => {
7277 extensions.khr_maintenance6 = true;
7278 }
7279 "VK_KHR_map_memory2" => {
7280 extensions.khr_map_memory2 = true;
7281 }
7282 "VK_KHR_multiview" => {
7283 extensions.khr_multiview = true;
7284 }
7285 "VK_KHR_performance_query" => {
7286 extensions.khr_performance_query = true;
7287 }
7288 "VK_KHR_pipeline_executable_properties" => {
7289 extensions.khr_pipeline_executable_properties = true;
7290 }
7291 "VK_KHR_pipeline_library" => {
7292 extensions.khr_pipeline_library = true;
7293 }
7294 "VK_KHR_portability_subset" => {
7295 extensions.khr_portability_subset = true;
7296 }
7297 "VK_KHR_present_id" => {
7298 extensions.khr_present_id = true;
7299 }
7300 "VK_KHR_present_wait" => {
7301 extensions.khr_present_wait = true;
7302 }
7303 "VK_KHR_push_descriptor" => {
7304 extensions.khr_push_descriptor = true;
7305 }
7306 "VK_KHR_ray_query" => {
7307 extensions.khr_ray_query = true;
7308 }
7309 "VK_KHR_ray_tracing_maintenance1" => {
7310 extensions.khr_ray_tracing_maintenance1 = true;
7311 }
7312 "VK_KHR_ray_tracing_pipeline" => {
7313 extensions.khr_ray_tracing_pipeline = true;
7314 }
7315 "VK_KHR_ray_tracing_position_fetch" => {
7316 extensions.khr_ray_tracing_position_fetch = true;
7317 }
7318 "VK_KHR_relaxed_block_layout" => {
7319 extensions.khr_relaxed_block_layout = true;
7320 }
7321 "VK_KHR_sampler_mirror_clamp_to_edge" => {
7322 extensions.khr_sampler_mirror_clamp_to_edge = true;
7323 }
7324 "VK_KHR_sampler_ycbcr_conversion" => {
7325 extensions.khr_sampler_ycbcr_conversion = true;
7326 }
7327 "VK_KHR_separate_depth_stencil_layouts" => {
7328 extensions.khr_separate_depth_stencil_layouts = true;
7329 }
7330 "VK_KHR_shader_atomic_int64" => {
7331 extensions.khr_shader_atomic_int64 = true;
7332 }
7333 "VK_KHR_shader_clock" => {
7334 extensions.khr_shader_clock = true;
7335 }
7336 "VK_KHR_shader_draw_parameters" => {
7337 extensions.khr_shader_draw_parameters = true;
7338 }
7339 "VK_KHR_shader_expect_assume" => {
7340 extensions.khr_shader_expect_assume = true;
7341 }
7342 "VK_KHR_shader_float16_int8" => {
7343 extensions.khr_shader_float16_int8 = true;
7344 }
7345 "VK_KHR_shader_float_controls" => {
7346 extensions.khr_shader_float_controls = true;
7347 }
7348 "VK_KHR_shader_float_controls2" => {
7349 extensions.khr_shader_float_controls2 = true;
7350 }
7351 "VK_KHR_shader_integer_dot_product" => {
7352 extensions.khr_shader_integer_dot_product = true;
7353 }
7354 "VK_KHR_shader_maximal_reconvergence" => {
7355 extensions.khr_shader_maximal_reconvergence = true;
7356 }
7357 "VK_KHR_shader_non_semantic_info" => {
7358 extensions.khr_shader_non_semantic_info = true;
7359 }
7360 "VK_KHR_shader_quad_control" => {
7361 extensions.khr_shader_quad_control = true;
7362 }
7363 "VK_KHR_shader_subgroup_extended_types" => {
7364 extensions.khr_shader_subgroup_extended_types = true;
7365 }
7366 "VK_KHR_shader_subgroup_rotate" => {
7367 extensions.khr_shader_subgroup_rotate = true;
7368 }
7369 "VK_KHR_shader_subgroup_uniform_control_flow" => {
7370 extensions.khr_shader_subgroup_uniform_control_flow = true;
7371 }
7372 "VK_KHR_shader_terminate_invocation" => {
7373 extensions.khr_shader_terminate_invocation = true;
7374 }
7375 "VK_KHR_shared_presentable_image" => {
7376 extensions.khr_shared_presentable_image = true;
7377 }
7378 "VK_KHR_spirv_1_4" => {
7379 extensions.khr_spirv_1_4 = true;
7380 }
7381 "VK_KHR_storage_buffer_storage_class" => {
7382 extensions.khr_storage_buffer_storage_class = true;
7383 }
7384 "VK_KHR_swapchain" => {
7385 extensions.khr_swapchain = true;
7386 }
7387 "VK_KHR_swapchain_mutable_format" => {
7388 extensions.khr_swapchain_mutable_format = true;
7389 }
7390 "VK_KHR_synchronization2" => {
7391 extensions.khr_synchronization2 = true;
7392 }
7393 "VK_KHR_timeline_semaphore" => {
7394 extensions.khr_timeline_semaphore = true;
7395 }
7396 "VK_KHR_uniform_buffer_standard_layout" => {
7397 extensions.khr_uniform_buffer_standard_layout = true;
7398 }
7399 "VK_KHR_variable_pointers" => {
7400 extensions.khr_variable_pointers = true;
7401 }
7402 "VK_KHR_vertex_attribute_divisor" => {
7403 extensions.khr_vertex_attribute_divisor = true;
7404 }
7405 "VK_KHR_video_decode_av1" => {
7406 extensions.khr_video_decode_av1 = true;
7407 }
7408 "VK_KHR_video_decode_h264" => {
7409 extensions.khr_video_decode_h264 = true;
7410 }
7411 "VK_KHR_video_decode_h265" => {
7412 extensions.khr_video_decode_h265 = true;
7413 }
7414 "VK_KHR_video_decode_queue" => {
7415 extensions.khr_video_decode_queue = true;
7416 }
7417 "VK_KHR_video_encode_h264" => {
7418 extensions.khr_video_encode_h264 = true;
7419 }
7420 "VK_KHR_video_encode_h265" => {
7421 extensions.khr_video_encode_h265 = true;
7422 }
7423 "VK_KHR_video_encode_queue" => {
7424 extensions.khr_video_encode_queue = true;
7425 }
7426 "VK_KHR_video_maintenance1" => {
7427 extensions.khr_video_maintenance1 = true;
7428 }
7429 "VK_KHR_video_queue" => {
7430 extensions.khr_video_queue = true;
7431 }
7432 "VK_KHR_vulkan_memory_model" => {
7433 extensions.khr_vulkan_memory_model = true;
7434 }
7435 "VK_KHR_win32_keyed_mutex" => {
7436 extensions.khr_win32_keyed_mutex = true;
7437 }
7438 "VK_KHR_workgroup_memory_explicit_layout" => {
7439 extensions.khr_workgroup_memory_explicit_layout = true;
7440 }
7441 "VK_KHR_zero_initialize_workgroup_memory" => {
7442 extensions.khr_zero_initialize_workgroup_memory = true;
7443 }
7444 "VK_EXT_4444_formats" => {
7445 extensions.ext_4444_formats = true;
7446 }
7447 "VK_EXT_astc_decode_mode" => {
7448 extensions.ext_astc_decode_mode = true;
7449 }
7450 "VK_EXT_attachment_feedback_loop_dynamic_state" => {
7451 extensions.ext_attachment_feedback_loop_dynamic_state = true;
7452 }
7453 "VK_EXT_attachment_feedback_loop_layout" => {
7454 extensions.ext_attachment_feedback_loop_layout = true;
7455 }
7456 "VK_EXT_blend_operation_advanced" => {
7457 extensions.ext_blend_operation_advanced = true;
7458 }
7459 "VK_EXT_border_color_swizzle" => {
7460 extensions.ext_border_color_swizzle = true;
7461 }
7462 "VK_EXT_buffer_device_address" => {
7463 extensions.ext_buffer_device_address = true;
7464 }
7465 "VK_EXT_calibrated_timestamps" => {
7466 extensions.ext_calibrated_timestamps = true;
7467 }
7468 "VK_EXT_color_write_enable" => {
7469 extensions.ext_color_write_enable = true;
7470 }
7471 "VK_EXT_conditional_rendering" => {
7472 extensions.ext_conditional_rendering = true;
7473 }
7474 "VK_EXT_conservative_rasterization" => {
7475 extensions.ext_conservative_rasterization = true;
7476 }
7477 "VK_EXT_custom_border_color" => {
7478 extensions.ext_custom_border_color = true;
7479 }
7480 "VK_EXT_debug_marker" => {
7481 extensions.ext_debug_marker = true;
7482 }
7483 "VK_EXT_depth_bias_control" => {
7484 extensions.ext_depth_bias_control = true;
7485 }
7486 "VK_EXT_depth_clamp_zero_one" => {
7487 extensions.ext_depth_clamp_zero_one = true;
7488 }
7489 "VK_EXT_depth_clip_control" => {
7490 extensions.ext_depth_clip_control = true;
7491 }
7492 "VK_EXT_depth_clip_enable" => {
7493 extensions.ext_depth_clip_enable = true;
7494 }
7495 "VK_EXT_depth_range_unrestricted" => {
7496 extensions.ext_depth_range_unrestricted = true;
7497 }
7498 "VK_EXT_descriptor_buffer" => {
7499 extensions.ext_descriptor_buffer = true;
7500 }
7501 "VK_EXT_descriptor_indexing" => {
7502 extensions.ext_descriptor_indexing = true;
7503 }
7504 "VK_EXT_device_address_binding_report" => {
7505 extensions.ext_device_address_binding_report = true;
7506 }
7507 "VK_EXT_device_fault" => {
7508 extensions.ext_device_fault = true;
7509 }
7510 "VK_EXT_device_memory_report" => {
7511 extensions.ext_device_memory_report = true;
7512 }
7513 "VK_EXT_discard_rectangles" => {
7514 extensions.ext_discard_rectangles = true;
7515 }
7516 "VK_EXT_display_control" => {
7517 extensions.ext_display_control = true;
7518 }
7519 "VK_EXT_dynamic_rendering_unused_attachments" => {
7520 extensions.ext_dynamic_rendering_unused_attachments = true;
7521 }
7522 "VK_EXT_extended_dynamic_state" => {
7523 extensions.ext_extended_dynamic_state = true;
7524 }
7525 "VK_EXT_extended_dynamic_state2" => {
7526 extensions.ext_extended_dynamic_state2 = true;
7527 }
7528 "VK_EXT_extended_dynamic_state3" => {
7529 extensions.ext_extended_dynamic_state3 = true;
7530 }
7531 "VK_EXT_external_memory_acquire_unmodified" => {
7532 extensions.ext_external_memory_acquire_unmodified = true;
7533 }
7534 "VK_EXT_external_memory_dma_buf" => {
7535 extensions.ext_external_memory_dma_buf = true;
7536 }
7537 "VK_EXT_external_memory_host" => {
7538 extensions.ext_external_memory_host = true;
7539 }
7540 "VK_EXT_filter_cubic" => {
7541 extensions.ext_filter_cubic = true;
7542 }
7543 "VK_EXT_fragment_density_map" => {
7544 extensions.ext_fragment_density_map = true;
7545 }
7546 "VK_EXT_fragment_density_map2" => {
7547 extensions.ext_fragment_density_map2 = true;
7548 }
7549 "VK_EXT_fragment_shader_interlock" => {
7550 extensions.ext_fragment_shader_interlock = true;
7551 }
7552 "VK_EXT_frame_boundary" => {
7553 extensions.ext_frame_boundary = true;
7554 }
7555 "VK_EXT_full_screen_exclusive" => {
7556 extensions.ext_full_screen_exclusive = true;
7557 }
7558 "VK_EXT_global_priority" => {
7559 extensions.ext_global_priority = true;
7560 }
7561 "VK_EXT_global_priority_query" => {
7562 extensions.ext_global_priority_query = true;
7563 }
7564 "VK_EXT_graphics_pipeline_library" => {
7565 extensions.ext_graphics_pipeline_library = true;
7566 }
7567 "VK_EXT_hdr_metadata" => {
7568 extensions.ext_hdr_metadata = true;
7569 }
7570 "VK_EXT_host_image_copy" => {
7571 extensions.ext_host_image_copy = true;
7572 }
7573 "VK_EXT_host_query_reset" => {
7574 extensions.ext_host_query_reset = true;
7575 }
7576 "VK_EXT_image_2d_view_of_3d" => {
7577 extensions.ext_image_2d_view_of_3d = true;
7578 }
7579 "VK_EXT_image_compression_control" => {
7580 extensions.ext_image_compression_control = true;
7581 }
7582 "VK_EXT_image_compression_control_swapchain" => {
7583 extensions.ext_image_compression_control_swapchain = true;
7584 }
7585 "VK_EXT_image_drm_format_modifier" => {
7586 extensions.ext_image_drm_format_modifier = true;
7587 }
7588 "VK_EXT_image_robustness" => {
7589 extensions.ext_image_robustness = true;
7590 }
7591 "VK_EXT_image_sliced_view_of_3d" => {
7592 extensions.ext_image_sliced_view_of_3d = true;
7593 }
7594 "VK_EXT_image_view_min_lod" => {
7595 extensions.ext_image_view_min_lod = true;
7596 }
7597 "VK_EXT_index_type_uint8" => {
7598 extensions.ext_index_type_uint8 = true;
7599 }
7600 "VK_EXT_inline_uniform_block" => {
7601 extensions.ext_inline_uniform_block = true;
7602 }
7603 "VK_EXT_legacy_dithering" => {
7604 extensions.ext_legacy_dithering = true;
7605 }
7606 "VK_EXT_line_rasterization" => {
7607 extensions.ext_line_rasterization = true;
7608 }
7609 "VK_EXT_load_store_op_none" => {
7610 extensions.ext_load_store_op_none = true;
7611 }
7612 "VK_EXT_map_memory_placed" => {
7613 extensions.ext_map_memory_placed = true;
7614 }
7615 "VK_EXT_memory_budget" => {
7616 extensions.ext_memory_budget = true;
7617 }
7618 "VK_EXT_memory_priority" => {
7619 extensions.ext_memory_priority = true;
7620 }
7621 "VK_EXT_mesh_shader" => {
7622 extensions.ext_mesh_shader = true;
7623 }
7624 "VK_EXT_metal_objects" => {
7625 extensions.ext_metal_objects = true;
7626 }
7627 "VK_EXT_multi_draw" => {
7628 extensions.ext_multi_draw = true;
7629 }
7630 "VK_EXT_multisampled_render_to_single_sampled" => {
7631 extensions.ext_multisampled_render_to_single_sampled = true;
7632 }
7633 "VK_EXT_mutable_descriptor_type" => {
7634 extensions.ext_mutable_descriptor_type = true;
7635 }
7636 "VK_EXT_nested_command_buffer" => {
7637 extensions.ext_nested_command_buffer = true;
7638 }
7639 "VK_EXT_non_seamless_cube_map" => {
7640 extensions.ext_non_seamless_cube_map = true;
7641 }
7642 "VK_EXT_opacity_micromap" => {
7643 extensions.ext_opacity_micromap = true;
7644 }
7645 "VK_EXT_pageable_device_local_memory" => {
7646 extensions.ext_pageable_device_local_memory = true;
7647 }
7648 "VK_EXT_pci_bus_info" => {
7649 extensions.ext_pci_bus_info = true;
7650 }
7651 "VK_EXT_physical_device_drm" => {
7652 extensions.ext_physical_device_drm = true;
7653 }
7654 "VK_EXT_pipeline_creation_cache_control" => {
7655 extensions.ext_pipeline_creation_cache_control = true;
7656 }
7657 "VK_EXT_pipeline_creation_feedback" => {
7658 extensions.ext_pipeline_creation_feedback = true;
7659 }
7660 "VK_EXT_pipeline_library_group_handles" => {
7661 extensions.ext_pipeline_library_group_handles = true;
7662 }
7663 "VK_EXT_pipeline_properties" => {
7664 extensions.ext_pipeline_properties = true;
7665 }
7666 "VK_EXT_pipeline_protected_access" => {
7667 extensions.ext_pipeline_protected_access = true;
7668 }
7669 "VK_EXT_pipeline_robustness" => {
7670 extensions.ext_pipeline_robustness = true;
7671 }
7672 "VK_EXT_post_depth_coverage" => {
7673 extensions.ext_post_depth_coverage = true;
7674 }
7675 "VK_EXT_primitive_topology_list_restart" => {
7676 extensions.ext_primitive_topology_list_restart = true;
7677 }
7678 "VK_EXT_primitives_generated_query" => {
7679 extensions.ext_primitives_generated_query = true;
7680 }
7681 "VK_EXT_private_data" => {
7682 extensions.ext_private_data = true;
7683 }
7684 "VK_EXT_provoking_vertex" => {
7685 extensions.ext_provoking_vertex = true;
7686 }
7687 "VK_EXT_queue_family_foreign" => {
7688 extensions.ext_queue_family_foreign = true;
7689 }
7690 "VK_EXT_rasterization_order_attachment_access" => {
7691 extensions.ext_rasterization_order_attachment_access = true;
7692 }
7693 "VK_EXT_rgba10x6_formats" => {
7694 extensions.ext_rgba10x6_formats = true;
7695 }
7696 "VK_EXT_robustness2" => {
7697 extensions.ext_robustness2 = true;
7698 }
7699 "VK_EXT_sample_locations" => {
7700 extensions.ext_sample_locations = true;
7701 }
7702 "VK_EXT_sampler_filter_minmax" => {
7703 extensions.ext_sampler_filter_minmax = true;
7704 }
7705 "VK_EXT_scalar_block_layout" => {
7706 extensions.ext_scalar_block_layout = true;
7707 }
7708 "VK_EXT_separate_stencil_usage" => {
7709 extensions.ext_separate_stencil_usage = true;
7710 }
7711 "VK_EXT_shader_atomic_float" => {
7712 extensions.ext_shader_atomic_float = true;
7713 }
7714 "VK_EXT_shader_atomic_float2" => {
7715 extensions.ext_shader_atomic_float2 = true;
7716 }
7717 "VK_EXT_shader_demote_to_helper_invocation" => {
7718 extensions.ext_shader_demote_to_helper_invocation = true;
7719 }
7720 "VK_EXT_shader_image_atomic_int64" => {
7721 extensions.ext_shader_image_atomic_int64 = true;
7722 }
7723 "VK_EXT_shader_module_identifier" => {
7724 extensions.ext_shader_module_identifier = true;
7725 }
7726 "VK_EXT_shader_object" => {
7727 extensions.ext_shader_object = true;
7728 }
7729 "VK_EXT_shader_stencil_export" => {
7730 extensions.ext_shader_stencil_export = true;
7731 }
7732 "VK_EXT_shader_subgroup_ballot" => {
7733 extensions.ext_shader_subgroup_ballot = true;
7734 }
7735 "VK_EXT_shader_subgroup_vote" => {
7736 extensions.ext_shader_subgroup_vote = true;
7737 }
7738 "VK_EXT_shader_tile_image" => {
7739 extensions.ext_shader_tile_image = true;
7740 }
7741 "VK_EXT_shader_viewport_index_layer" => {
7742 extensions.ext_shader_viewport_index_layer = true;
7743 }
7744 "VK_EXT_subgroup_size_control" => {
7745 extensions.ext_subgroup_size_control = true;
7746 }
7747 "VK_EXT_subpass_merge_feedback" => {
7748 extensions.ext_subpass_merge_feedback = true;
7749 }
7750 "VK_EXT_swapchain_maintenance1" => {
7751 extensions.ext_swapchain_maintenance1 = true;
7752 }
7753 "VK_EXT_texel_buffer_alignment" => {
7754 extensions.ext_texel_buffer_alignment = true;
7755 }
7756 "VK_EXT_texture_compression_astc_hdr" => {
7757 extensions.ext_texture_compression_astc_hdr = true;
7758 }
7759 "VK_EXT_tooling_info" => {
7760 extensions.ext_tooling_info = true;
7761 }
7762 "VK_EXT_transform_feedback" => {
7763 extensions.ext_transform_feedback = true;
7764 }
7765 "VK_EXT_validation_cache" => {
7766 extensions.ext_validation_cache = true;
7767 }
7768 "VK_EXT_vertex_attribute_divisor" => {
7769 extensions.ext_vertex_attribute_divisor = true;
7770 }
7771 "VK_EXT_vertex_input_dynamic_state" => {
7772 extensions.ext_vertex_input_dynamic_state = true;
7773 }
7774 "VK_EXT_ycbcr_2plane_444_formats" => {
7775 extensions.ext_ycbcr_2plane_444_formats = true;
7776 }
7777 "VK_EXT_ycbcr_image_arrays" => {
7778 extensions.ext_ycbcr_image_arrays = true;
7779 }
7780 "VK_AMDX_shader_enqueue" => {
7781 extensions.amdx_shader_enqueue = true;
7782 }
7783 "VK_AMD_buffer_marker" => {
7784 extensions.amd_buffer_marker = true;
7785 }
7786 "VK_AMD_device_coherent_memory" => {
7787 extensions.amd_device_coherent_memory = true;
7788 }
7789 "VK_AMD_display_native_hdr" => {
7790 extensions.amd_display_native_hdr = true;
7791 }
7792 "VK_AMD_draw_indirect_count" => {
7793 extensions.amd_draw_indirect_count = true;
7794 }
7795 "VK_AMD_gcn_shader" => {
7796 extensions.amd_gcn_shader = true;
7797 }
7798 "VK_AMD_gpu_shader_half_float" => {
7799 extensions.amd_gpu_shader_half_float = true;
7800 }
7801 "VK_AMD_gpu_shader_int16" => {
7802 extensions.amd_gpu_shader_int16 = true;
7803 }
7804 "VK_AMD_memory_overallocation_behavior" => {
7805 extensions.amd_memory_overallocation_behavior = true;
7806 }
7807 "VK_AMD_mixed_attachment_samples" => {
7808 extensions.amd_mixed_attachment_samples = true;
7809 }
7810 "VK_AMD_pipeline_compiler_control" => {
7811 extensions.amd_pipeline_compiler_control = true;
7812 }
7813 "VK_AMD_rasterization_order" => {
7814 extensions.amd_rasterization_order = true;
7815 }
7816 "VK_AMD_shader_ballot" => {
7817 extensions.amd_shader_ballot = true;
7818 }
7819 "VK_AMD_shader_core_properties" => {
7820 extensions.amd_shader_core_properties = true;
7821 }
7822 "VK_AMD_shader_core_properties2" => {
7823 extensions.amd_shader_core_properties2 = true;
7824 }
7825 "VK_AMD_shader_early_and_late_fragment_tests" => {
7826 extensions.amd_shader_early_and_late_fragment_tests = true;
7827 }
7828 "VK_AMD_shader_explicit_vertex_parameter" => {
7829 extensions.amd_shader_explicit_vertex_parameter = true;
7830 }
7831 "VK_AMD_shader_fragment_mask" => {
7832 extensions.amd_shader_fragment_mask = true;
7833 }
7834 "VK_AMD_shader_image_load_store_lod" => {
7835 extensions.amd_shader_image_load_store_lod = true;
7836 }
7837 "VK_AMD_shader_info" => {
7838 extensions.amd_shader_info = true;
7839 }
7840 "VK_AMD_shader_trinary_minmax" => {
7841 extensions.amd_shader_trinary_minmax = true;
7842 }
7843 "VK_AMD_texture_gather_bias_lod" => {
7844 extensions.amd_texture_gather_bias_lod = true;
7845 }
7846 "VK_ANDROID_external_format_resolve" => {
7847 extensions.android_external_format_resolve = true;
7848 }
7849 "VK_ANDROID_external_memory_android_hardware_buffer" => {
7850 extensions.android_external_memory_android_hardware_buffer = true;
7851 }
7852 "VK_ARM_rasterization_order_attachment_access" => {
7853 extensions.arm_rasterization_order_attachment_access = true;
7854 }
7855 "VK_ARM_render_pass_striped" => {
7856 extensions.arm_render_pass_striped = true;
7857 }
7858 "VK_ARM_scheduling_controls" => {
7859 extensions.arm_scheduling_controls = true;
7860 }
7861 "VK_ARM_shader_core_builtins" => {
7862 extensions.arm_shader_core_builtins = true;
7863 }
7864 "VK_ARM_shader_core_properties" => {
7865 extensions.arm_shader_core_properties = true;
7866 }
7867 "VK_FUCHSIA_buffer_collection" => {
7868 extensions.fuchsia_buffer_collection = true;
7869 }
7870 "VK_FUCHSIA_external_memory" => {
7871 extensions.fuchsia_external_memory = true;
7872 }
7873 "VK_FUCHSIA_external_semaphore" => {
7874 extensions.fuchsia_external_semaphore = true;
7875 }
7876 "VK_GGP_frame_token" => {
7877 extensions.ggp_frame_token = true;
7878 }
7879 "VK_GOOGLE_decorate_string" => {
7880 extensions.google_decorate_string = true;
7881 }
7882 "VK_GOOGLE_display_timing" => {
7883 extensions.google_display_timing = true;
7884 }
7885 "VK_GOOGLE_hlsl_functionality1" => {
7886 extensions.google_hlsl_functionality1 = true;
7887 }
7888 "VK_GOOGLE_user_type" => {
7889 extensions.google_user_type = true;
7890 }
7891 "VK_HUAWEI_cluster_culling_shader" => {
7892 extensions.huawei_cluster_culling_shader = true;
7893 }
7894 "VK_HUAWEI_invocation_mask" => {
7895 extensions.huawei_invocation_mask = true;
7896 }
7897 "VK_HUAWEI_subpass_shading" => {
7898 extensions.huawei_subpass_shading = true;
7899 }
7900 "VK_IMG_filter_cubic" => {
7901 extensions.img_filter_cubic = true;
7902 }
7903 "VK_IMG_format_pvrtc" => {
7904 extensions.img_format_pvrtc = true;
7905 }
7906 "VK_IMG_relaxed_line_rasterization" => {
7907 extensions.img_relaxed_line_rasterization = true;
7908 }
7909 "VK_INTEL_performance_query" => {
7910 extensions.intel_performance_query = true;
7911 }
7912 "VK_INTEL_shader_integer_functions2" => {
7913 extensions.intel_shader_integer_functions2 = true;
7914 }
7915 "VK_MSFT_layered_driver" => {
7916 extensions.msft_layered_driver = true;
7917 }
7918 "VK_NVX_binary_import" => {
7919 extensions.nvx_binary_import = true;
7920 }
7921 "VK_NVX_image_view_handle" => {
7922 extensions.nvx_image_view_handle = true;
7923 }
7924 "VK_NVX_multiview_per_view_attributes" => {
7925 extensions.nvx_multiview_per_view_attributes = true;
7926 }
7927 "VK_NV_acquire_winrt_display" => {
7928 extensions.nv_acquire_winrt_display = true;
7929 }
7930 "VK_NV_clip_space_w_scaling" => {
7931 extensions.nv_clip_space_w_scaling = true;
7932 }
7933 "VK_NV_compute_shader_derivatives" => {
7934 extensions.nv_compute_shader_derivatives = true;
7935 }
7936 "VK_NV_cooperative_matrix" => {
7937 extensions.nv_cooperative_matrix = true;
7938 }
7939 "VK_NV_copy_memory_indirect" => {
7940 extensions.nv_copy_memory_indirect = true;
7941 }
7942 "VK_NV_corner_sampled_image" => {
7943 extensions.nv_corner_sampled_image = true;
7944 }
7945 "VK_NV_coverage_reduction_mode" => {
7946 extensions.nv_coverage_reduction_mode = true;
7947 }
7948 "VK_NV_cuda_kernel_launch" => {
7949 extensions.nv_cuda_kernel_launch = true;
7950 }
7951 "VK_NV_dedicated_allocation" => {
7952 extensions.nv_dedicated_allocation = true;
7953 }
7954 "VK_NV_dedicated_allocation_image_aliasing" => {
7955 extensions.nv_dedicated_allocation_image_aliasing = true;
7956 }
7957 "VK_NV_descriptor_pool_overallocation" => {
7958 extensions.nv_descriptor_pool_overallocation = true;
7959 }
7960 "VK_NV_device_diagnostic_checkpoints" => {
7961 extensions.nv_device_diagnostic_checkpoints = true;
7962 }
7963 "VK_NV_device_diagnostics_config" => {
7964 extensions.nv_device_diagnostics_config = true;
7965 }
7966 "VK_NV_device_generated_commands" => {
7967 extensions.nv_device_generated_commands = true;
7968 }
7969 "VK_NV_device_generated_commands_compute" => {
7970 extensions.nv_device_generated_commands_compute = true;
7971 }
7972 "VK_NV_displacement_micromap" => {
7973 extensions.nv_displacement_micromap = true;
7974 }
7975 "VK_NV_extended_sparse_address_space" => {
7976 extensions.nv_extended_sparse_address_space = true;
7977 }
7978 "VK_NV_external_memory" => {
7979 extensions.nv_external_memory = true;
7980 }
7981 "VK_NV_external_memory_rdma" => {
7982 extensions.nv_external_memory_rdma = true;
7983 }
7984 "VK_NV_external_memory_win32" => {
7985 extensions.nv_external_memory_win32 = true;
7986 }
7987 "VK_NV_fill_rectangle" => {
7988 extensions.nv_fill_rectangle = true;
7989 }
7990 "VK_NV_fragment_coverage_to_color" => {
7991 extensions.nv_fragment_coverage_to_color = true;
7992 }
7993 "VK_NV_fragment_shader_barycentric" => {
7994 extensions.nv_fragment_shader_barycentric = true;
7995 }
7996 "VK_NV_fragment_shading_rate_enums" => {
7997 extensions.nv_fragment_shading_rate_enums = true;
7998 }
7999 "VK_NV_framebuffer_mixed_samples" => {
8000 extensions.nv_framebuffer_mixed_samples = true;
8001 }
8002 "VK_NV_geometry_shader_passthrough" => {
8003 extensions.nv_geometry_shader_passthrough = true;
8004 }
8005 "VK_NV_glsl_shader" => {
8006 extensions.nv_glsl_shader = true;
8007 }
8008 "VK_NV_inherited_viewport_scissor" => {
8009 extensions.nv_inherited_viewport_scissor = true;
8010 }
8011 "VK_NV_linear_color_attachment" => {
8012 extensions.nv_linear_color_attachment = true;
8013 }
8014 "VK_NV_low_latency" => {
8015 extensions.nv_low_latency = true;
8016 }
8017 "VK_NV_low_latency2" => {
8018 extensions.nv_low_latency2 = true;
8019 }
8020 "VK_NV_memory_decompression" => {
8021 extensions.nv_memory_decompression = true;
8022 }
8023 "VK_NV_mesh_shader" => {
8024 extensions.nv_mesh_shader = true;
8025 }
8026 "VK_NV_optical_flow" => {
8027 extensions.nv_optical_flow = true;
8028 }
8029 "VK_NV_per_stage_descriptor_set" => {
8030 extensions.nv_per_stage_descriptor_set = true;
8031 }
8032 "VK_NV_present_barrier" => {
8033 extensions.nv_present_barrier = true;
8034 }
8035 "VK_NV_raw_access_chains" => {
8036 extensions.nv_raw_access_chains = true;
8037 }
8038 "VK_NV_ray_tracing" => {
8039 extensions.nv_ray_tracing = true;
8040 }
8041 "VK_NV_ray_tracing_invocation_reorder" => {
8042 extensions.nv_ray_tracing_invocation_reorder = true;
8043 }
8044 "VK_NV_ray_tracing_motion_blur" => {
8045 extensions.nv_ray_tracing_motion_blur = true;
8046 }
8047 "VK_NV_ray_tracing_validation" => {
8048 extensions.nv_ray_tracing_validation = true;
8049 }
8050 "VK_NV_representative_fragment_test" => {
8051 extensions.nv_representative_fragment_test = true;
8052 }
8053 "VK_NV_sample_mask_override_coverage" => {
8054 extensions.nv_sample_mask_override_coverage = true;
8055 }
8056 "VK_NV_scissor_exclusive" => {
8057 extensions.nv_scissor_exclusive = true;
8058 }
8059 "VK_NV_shader_atomic_float16_vector" => {
8060 extensions.nv_shader_atomic_float16_vector = true;
8061 }
8062 "VK_NV_shader_image_footprint" => {
8063 extensions.nv_shader_image_footprint = true;
8064 }
8065 "VK_NV_shader_sm_builtins" => {
8066 extensions.nv_shader_sm_builtins = true;
8067 }
8068 "VK_NV_shader_subgroup_partitioned" => {
8069 extensions.nv_shader_subgroup_partitioned = true;
8070 }
8071 "VK_NV_shading_rate_image" => {
8072 extensions.nv_shading_rate_image = true;
8073 }
8074 "VK_NV_viewport_array2" => {
8075 extensions.nv_viewport_array2 = true;
8076 }
8077 "VK_NV_viewport_swizzle" => {
8078 extensions.nv_viewport_swizzle = true;
8079 }
8080 "VK_NV_win32_keyed_mutex" => {
8081 extensions.nv_win32_keyed_mutex = true;
8082 }
8083 "VK_QCOM_filter_cubic_clamp" => {
8084 extensions.qcom_filter_cubic_clamp = true;
8085 }
8086 "VK_QCOM_filter_cubic_weights" => {
8087 extensions.qcom_filter_cubic_weights = true;
8088 }
8089 "VK_QCOM_fragment_density_map_offset" => {
8090 extensions.qcom_fragment_density_map_offset = true;
8091 }
8092 "VK_QCOM_image_processing" => {
8093 extensions.qcom_image_processing = true;
8094 }
8095 "VK_QCOM_image_processing2" => {
8096 extensions.qcom_image_processing2 = true;
8097 }
8098 "VK_QCOM_multiview_per_view_render_areas" => {
8099 extensions.qcom_multiview_per_view_render_areas = true;
8100 }
8101 "VK_QCOM_multiview_per_view_viewports" => {
8102 extensions.qcom_multiview_per_view_viewports = true;
8103 }
8104 "VK_QCOM_render_pass_shader_resolve" => {
8105 extensions.qcom_render_pass_shader_resolve = true;
8106 }
8107 "VK_QCOM_render_pass_store_ops" => {
8108 extensions.qcom_render_pass_store_ops = true;
8109 }
8110 "VK_QCOM_render_pass_transform" => {
8111 extensions.qcom_render_pass_transform = true;
8112 }
8113 "VK_QCOM_rotated_copy_commands" => {
8114 extensions.qcom_rotated_copy_commands = true;
8115 }
8116 "VK_QCOM_tile_properties" => {
8117 extensions.qcom_tile_properties = true;
8118 }
8119 "VK_QCOM_ycbcr_degamma" => {
8120 extensions.qcom_ycbcr_degamma = true;
8121 }
8122 "VK_QNX_external_memory_screen_buffer" => {
8123 extensions.qnx_external_memory_screen_buffer = true;
8124 }
8125 "VK_SEC_amigo_profiling" => {
8126 extensions.sec_amigo_profiling = true;
8127 }
8128 "VK_VALVE_descriptor_set_host_mapping" => {
8129 extensions.valve_descriptor_set_host_mapping = true;
8130 }
8131 "VK_VALVE_mutable_descriptor_type" => {
8132 extensions.valve_mutable_descriptor_type = true;
8133 }
8134 _ => (),
8135 }
8136 }
8137 extensions
8138 }
8139}
8140impl<'a> From<&'a DeviceExtensions> for Vec<std::ffi::CString> {
8141 fn from(x: &'a DeviceExtensions) -> Self {
8142 let mut data = Self::new();
8143 if x.khr_16bit_storage {
8144 data.push(std::ffi::CString::new("VK_KHR_16bit_storage").unwrap());
8145 }
8146 if x.khr_8bit_storage {
8147 data.push(std::ffi::CString::new("VK_KHR_8bit_storage").unwrap());
8148 }
8149 if x.khr_acceleration_structure {
8150 data.push(std::ffi::CString::new("VK_KHR_acceleration_structure").unwrap());
8151 }
8152 if x.khr_bind_memory2 {
8153 data.push(std::ffi::CString::new("VK_KHR_bind_memory2").unwrap());
8154 }
8155 if x.khr_buffer_device_address {
8156 data.push(std::ffi::CString::new("VK_KHR_buffer_device_address").unwrap());
8157 }
8158 if x.khr_calibrated_timestamps {
8159 data.push(std::ffi::CString::new("VK_KHR_calibrated_timestamps").unwrap());
8160 }
8161 if x.khr_cooperative_matrix {
8162 data.push(std::ffi::CString::new("VK_KHR_cooperative_matrix").unwrap());
8163 }
8164 if x.khr_copy_commands2 {
8165 data.push(std::ffi::CString::new("VK_KHR_copy_commands2").unwrap());
8166 }
8167 if x.khr_create_renderpass2 {
8168 data.push(std::ffi::CString::new("VK_KHR_create_renderpass2").unwrap());
8169 }
8170 if x.khr_dedicated_allocation {
8171 data.push(std::ffi::CString::new("VK_KHR_dedicated_allocation").unwrap());
8172 }
8173 if x.khr_deferred_host_operations {
8174 data.push(std::ffi::CString::new("VK_KHR_deferred_host_operations").unwrap());
8175 }
8176 if x.khr_depth_stencil_resolve {
8177 data.push(std::ffi::CString::new("VK_KHR_depth_stencil_resolve").unwrap());
8178 }
8179 if x.khr_descriptor_update_template {
8180 data.push(std::ffi::CString::new("VK_KHR_descriptor_update_template").unwrap());
8181 }
8182 if x.khr_device_group {
8183 data.push(std::ffi::CString::new("VK_KHR_device_group").unwrap());
8184 }
8185 if x.khr_display_swapchain {
8186 data.push(std::ffi::CString::new("VK_KHR_display_swapchain").unwrap());
8187 }
8188 if x.khr_draw_indirect_count {
8189 data.push(std::ffi::CString::new("VK_KHR_draw_indirect_count").unwrap());
8190 }
8191 if x.khr_driver_properties {
8192 data.push(std::ffi::CString::new("VK_KHR_driver_properties").unwrap());
8193 }
8194 if x.khr_dynamic_rendering {
8195 data.push(std::ffi::CString::new("VK_KHR_dynamic_rendering").unwrap());
8196 }
8197 if x.khr_dynamic_rendering_local_read {
8198 data.push(std::ffi::CString::new("VK_KHR_dynamic_rendering_local_read").unwrap());
8199 }
8200 if x.khr_external_fence {
8201 data.push(std::ffi::CString::new("VK_KHR_external_fence").unwrap());
8202 }
8203 if x.khr_external_fence_fd {
8204 data.push(std::ffi::CString::new("VK_KHR_external_fence_fd").unwrap());
8205 }
8206 if x.khr_external_fence_win32 {
8207 data.push(std::ffi::CString::new("VK_KHR_external_fence_win32").unwrap());
8208 }
8209 if x.khr_external_memory {
8210 data.push(std::ffi::CString::new("VK_KHR_external_memory").unwrap());
8211 }
8212 if x.khr_external_memory_fd {
8213 data.push(std::ffi::CString::new("VK_KHR_external_memory_fd").unwrap());
8214 }
8215 if x.khr_external_memory_win32 {
8216 data.push(std::ffi::CString::new("VK_KHR_external_memory_win32").unwrap());
8217 }
8218 if x.khr_external_semaphore {
8219 data.push(std::ffi::CString::new("VK_KHR_external_semaphore").unwrap());
8220 }
8221 if x.khr_external_semaphore_fd {
8222 data.push(std::ffi::CString::new("VK_KHR_external_semaphore_fd").unwrap());
8223 }
8224 if x.khr_external_semaphore_win32 {
8225 data.push(std::ffi::CString::new("VK_KHR_external_semaphore_win32").unwrap());
8226 }
8227 if x.khr_format_feature_flags2 {
8228 data.push(std::ffi::CString::new("VK_KHR_format_feature_flags2").unwrap());
8229 }
8230 if x.khr_fragment_shader_barycentric {
8231 data.push(std::ffi::CString::new("VK_KHR_fragment_shader_barycentric").unwrap());
8232 }
8233 if x.khr_fragment_shading_rate {
8234 data.push(std::ffi::CString::new("VK_KHR_fragment_shading_rate").unwrap());
8235 }
8236 if x.khr_get_memory_requirements2 {
8237 data.push(std::ffi::CString::new("VK_KHR_get_memory_requirements2").unwrap());
8238 }
8239 if x.khr_global_priority {
8240 data.push(std::ffi::CString::new("VK_KHR_global_priority").unwrap());
8241 }
8242 if x.khr_image_format_list {
8243 data.push(std::ffi::CString::new("VK_KHR_image_format_list").unwrap());
8244 }
8245 if x.khr_imageless_framebuffer {
8246 data.push(std::ffi::CString::new("VK_KHR_imageless_framebuffer").unwrap());
8247 }
8248 if x.khr_incremental_present {
8249 data.push(std::ffi::CString::new("VK_KHR_incremental_present").unwrap());
8250 }
8251 if x.khr_index_type_uint8 {
8252 data.push(std::ffi::CString::new("VK_KHR_index_type_uint8").unwrap());
8253 }
8254 if x.khr_line_rasterization {
8255 data.push(std::ffi::CString::new("VK_KHR_line_rasterization").unwrap());
8256 }
8257 if x.khr_load_store_op_none {
8258 data.push(std::ffi::CString::new("VK_KHR_load_store_op_none").unwrap());
8259 }
8260 if x.khr_maintenance1 {
8261 data.push(std::ffi::CString::new("VK_KHR_maintenance1").unwrap());
8262 }
8263 if x.khr_maintenance2 {
8264 data.push(std::ffi::CString::new("VK_KHR_maintenance2").unwrap());
8265 }
8266 if x.khr_maintenance3 {
8267 data.push(std::ffi::CString::new("VK_KHR_maintenance3").unwrap());
8268 }
8269 if x.khr_maintenance4 {
8270 data.push(std::ffi::CString::new("VK_KHR_maintenance4").unwrap());
8271 }
8272 if x.khr_maintenance5 {
8273 data.push(std::ffi::CString::new("VK_KHR_maintenance5").unwrap());
8274 }
8275 if x.khr_maintenance6 {
8276 data.push(std::ffi::CString::new("VK_KHR_maintenance6").unwrap());
8277 }
8278 if x.khr_map_memory2 {
8279 data.push(std::ffi::CString::new("VK_KHR_map_memory2").unwrap());
8280 }
8281 if x.khr_multiview {
8282 data.push(std::ffi::CString::new("VK_KHR_multiview").unwrap());
8283 }
8284 if x.khr_performance_query {
8285 data.push(std::ffi::CString::new("VK_KHR_performance_query").unwrap());
8286 }
8287 if x.khr_pipeline_executable_properties {
8288 data.push(std::ffi::CString::new("VK_KHR_pipeline_executable_properties").unwrap());
8289 }
8290 if x.khr_pipeline_library {
8291 data.push(std::ffi::CString::new("VK_KHR_pipeline_library").unwrap());
8292 }
8293 if x.khr_portability_subset {
8294 data.push(std::ffi::CString::new("VK_KHR_portability_subset").unwrap());
8295 }
8296 if x.khr_present_id {
8297 data.push(std::ffi::CString::new("VK_KHR_present_id").unwrap());
8298 }
8299 if x.khr_present_wait {
8300 data.push(std::ffi::CString::new("VK_KHR_present_wait").unwrap());
8301 }
8302 if x.khr_push_descriptor {
8303 data.push(std::ffi::CString::new("VK_KHR_push_descriptor").unwrap());
8304 }
8305 if x.khr_ray_query {
8306 data.push(std::ffi::CString::new("VK_KHR_ray_query").unwrap());
8307 }
8308 if x.khr_ray_tracing_maintenance1 {
8309 data.push(std::ffi::CString::new("VK_KHR_ray_tracing_maintenance1").unwrap());
8310 }
8311 if x.khr_ray_tracing_pipeline {
8312 data.push(std::ffi::CString::new("VK_KHR_ray_tracing_pipeline").unwrap());
8313 }
8314 if x.khr_ray_tracing_position_fetch {
8315 data.push(std::ffi::CString::new("VK_KHR_ray_tracing_position_fetch").unwrap());
8316 }
8317 if x.khr_relaxed_block_layout {
8318 data.push(std::ffi::CString::new("VK_KHR_relaxed_block_layout").unwrap());
8319 }
8320 if x.khr_sampler_mirror_clamp_to_edge {
8321 data.push(std::ffi::CString::new("VK_KHR_sampler_mirror_clamp_to_edge").unwrap());
8322 }
8323 if x.khr_sampler_ycbcr_conversion {
8324 data.push(std::ffi::CString::new("VK_KHR_sampler_ycbcr_conversion").unwrap());
8325 }
8326 if x.khr_separate_depth_stencil_layouts {
8327 data.push(std::ffi::CString::new("VK_KHR_separate_depth_stencil_layouts").unwrap());
8328 }
8329 if x.khr_shader_atomic_int64 {
8330 data.push(std::ffi::CString::new("VK_KHR_shader_atomic_int64").unwrap());
8331 }
8332 if x.khr_shader_clock {
8333 data.push(std::ffi::CString::new("VK_KHR_shader_clock").unwrap());
8334 }
8335 if x.khr_shader_draw_parameters {
8336 data.push(std::ffi::CString::new("VK_KHR_shader_draw_parameters").unwrap());
8337 }
8338 if x.khr_shader_expect_assume {
8339 data.push(std::ffi::CString::new("VK_KHR_shader_expect_assume").unwrap());
8340 }
8341 if x.khr_shader_float16_int8 {
8342 data.push(std::ffi::CString::new("VK_KHR_shader_float16_int8").unwrap());
8343 }
8344 if x.khr_shader_float_controls {
8345 data.push(std::ffi::CString::new("VK_KHR_shader_float_controls").unwrap());
8346 }
8347 if x.khr_shader_float_controls2 {
8348 data.push(std::ffi::CString::new("VK_KHR_shader_float_controls2").unwrap());
8349 }
8350 if x.khr_shader_integer_dot_product {
8351 data.push(std::ffi::CString::new("VK_KHR_shader_integer_dot_product").unwrap());
8352 }
8353 if x.khr_shader_maximal_reconvergence {
8354 data.push(std::ffi::CString::new("VK_KHR_shader_maximal_reconvergence").unwrap());
8355 }
8356 if x.khr_shader_non_semantic_info {
8357 data.push(std::ffi::CString::new("VK_KHR_shader_non_semantic_info").unwrap());
8358 }
8359 if x.khr_shader_quad_control {
8360 data.push(std::ffi::CString::new("VK_KHR_shader_quad_control").unwrap());
8361 }
8362 if x.khr_shader_subgroup_extended_types {
8363 data.push(std::ffi::CString::new("VK_KHR_shader_subgroup_extended_types").unwrap());
8364 }
8365 if x.khr_shader_subgroup_rotate {
8366 data.push(std::ffi::CString::new("VK_KHR_shader_subgroup_rotate").unwrap());
8367 }
8368 if x.khr_shader_subgroup_uniform_control_flow {
8369 data.push(
8370 std::ffi::CString::new("VK_KHR_shader_subgroup_uniform_control_flow").unwrap(),
8371 );
8372 }
8373 if x.khr_shader_terminate_invocation {
8374 data.push(std::ffi::CString::new("VK_KHR_shader_terminate_invocation").unwrap());
8375 }
8376 if x.khr_shared_presentable_image {
8377 data.push(std::ffi::CString::new("VK_KHR_shared_presentable_image").unwrap());
8378 }
8379 if x.khr_spirv_1_4 {
8380 data.push(std::ffi::CString::new("VK_KHR_spirv_1_4").unwrap());
8381 }
8382 if x.khr_storage_buffer_storage_class {
8383 data.push(std::ffi::CString::new("VK_KHR_storage_buffer_storage_class").unwrap());
8384 }
8385 if x.khr_swapchain {
8386 data.push(std::ffi::CString::new("VK_KHR_swapchain").unwrap());
8387 }
8388 if x.khr_swapchain_mutable_format {
8389 data.push(std::ffi::CString::new("VK_KHR_swapchain_mutable_format").unwrap());
8390 }
8391 if x.khr_synchronization2 {
8392 data.push(std::ffi::CString::new("VK_KHR_synchronization2").unwrap());
8393 }
8394 if x.khr_timeline_semaphore {
8395 data.push(std::ffi::CString::new("VK_KHR_timeline_semaphore").unwrap());
8396 }
8397 if x.khr_uniform_buffer_standard_layout {
8398 data.push(std::ffi::CString::new("VK_KHR_uniform_buffer_standard_layout").unwrap());
8399 }
8400 if x.khr_variable_pointers {
8401 data.push(std::ffi::CString::new("VK_KHR_variable_pointers").unwrap());
8402 }
8403 if x.khr_vertex_attribute_divisor {
8404 data.push(std::ffi::CString::new("VK_KHR_vertex_attribute_divisor").unwrap());
8405 }
8406 if x.khr_video_decode_av1 {
8407 data.push(std::ffi::CString::new("VK_KHR_video_decode_av1").unwrap());
8408 }
8409 if x.khr_video_decode_h264 {
8410 data.push(std::ffi::CString::new("VK_KHR_video_decode_h264").unwrap());
8411 }
8412 if x.khr_video_decode_h265 {
8413 data.push(std::ffi::CString::new("VK_KHR_video_decode_h265").unwrap());
8414 }
8415 if x.khr_video_decode_queue {
8416 data.push(std::ffi::CString::new("VK_KHR_video_decode_queue").unwrap());
8417 }
8418 if x.khr_video_encode_h264 {
8419 data.push(std::ffi::CString::new("VK_KHR_video_encode_h264").unwrap());
8420 }
8421 if x.khr_video_encode_h265 {
8422 data.push(std::ffi::CString::new("VK_KHR_video_encode_h265").unwrap());
8423 }
8424 if x.khr_video_encode_queue {
8425 data.push(std::ffi::CString::new("VK_KHR_video_encode_queue").unwrap());
8426 }
8427 if x.khr_video_maintenance1 {
8428 data.push(std::ffi::CString::new("VK_KHR_video_maintenance1").unwrap());
8429 }
8430 if x.khr_video_queue {
8431 data.push(std::ffi::CString::new("VK_KHR_video_queue").unwrap());
8432 }
8433 if x.khr_vulkan_memory_model {
8434 data.push(std::ffi::CString::new("VK_KHR_vulkan_memory_model").unwrap());
8435 }
8436 if x.khr_win32_keyed_mutex {
8437 data.push(std::ffi::CString::new("VK_KHR_win32_keyed_mutex").unwrap());
8438 }
8439 if x.khr_workgroup_memory_explicit_layout {
8440 data.push(std::ffi::CString::new("VK_KHR_workgroup_memory_explicit_layout").unwrap());
8441 }
8442 if x.khr_zero_initialize_workgroup_memory {
8443 data.push(std::ffi::CString::new("VK_KHR_zero_initialize_workgroup_memory").unwrap());
8444 }
8445 if x.ext_4444_formats {
8446 data.push(std::ffi::CString::new("VK_EXT_4444_formats").unwrap());
8447 }
8448 if x.ext_astc_decode_mode {
8449 data.push(std::ffi::CString::new("VK_EXT_astc_decode_mode").unwrap());
8450 }
8451 if x.ext_attachment_feedback_loop_dynamic_state {
8452 data.push(
8453 std::ffi::CString::new("VK_EXT_attachment_feedback_loop_dynamic_state").unwrap(),
8454 );
8455 }
8456 if x.ext_attachment_feedback_loop_layout {
8457 data.push(std::ffi::CString::new("VK_EXT_attachment_feedback_loop_layout").unwrap());
8458 }
8459 if x.ext_blend_operation_advanced {
8460 data.push(std::ffi::CString::new("VK_EXT_blend_operation_advanced").unwrap());
8461 }
8462 if x.ext_border_color_swizzle {
8463 data.push(std::ffi::CString::new("VK_EXT_border_color_swizzle").unwrap());
8464 }
8465 if x.ext_buffer_device_address {
8466 data.push(std::ffi::CString::new("VK_EXT_buffer_device_address").unwrap());
8467 }
8468 if x.ext_calibrated_timestamps {
8469 data.push(std::ffi::CString::new("VK_EXT_calibrated_timestamps").unwrap());
8470 }
8471 if x.ext_color_write_enable {
8472 data.push(std::ffi::CString::new("VK_EXT_color_write_enable").unwrap());
8473 }
8474 if x.ext_conditional_rendering {
8475 data.push(std::ffi::CString::new("VK_EXT_conditional_rendering").unwrap());
8476 }
8477 if x.ext_conservative_rasterization {
8478 data.push(std::ffi::CString::new("VK_EXT_conservative_rasterization").unwrap());
8479 }
8480 if x.ext_custom_border_color {
8481 data.push(std::ffi::CString::new("VK_EXT_custom_border_color").unwrap());
8482 }
8483 if x.ext_debug_marker {
8484 data.push(std::ffi::CString::new("VK_EXT_debug_marker").unwrap());
8485 }
8486 if x.ext_depth_bias_control {
8487 data.push(std::ffi::CString::new("VK_EXT_depth_bias_control").unwrap());
8488 }
8489 if x.ext_depth_clamp_zero_one {
8490 data.push(std::ffi::CString::new("VK_EXT_depth_clamp_zero_one").unwrap());
8491 }
8492 if x.ext_depth_clip_control {
8493 data.push(std::ffi::CString::new("VK_EXT_depth_clip_control").unwrap());
8494 }
8495 if x.ext_depth_clip_enable {
8496 data.push(std::ffi::CString::new("VK_EXT_depth_clip_enable").unwrap());
8497 }
8498 if x.ext_depth_range_unrestricted {
8499 data.push(std::ffi::CString::new("VK_EXT_depth_range_unrestricted").unwrap());
8500 }
8501 if x.ext_descriptor_buffer {
8502 data.push(std::ffi::CString::new("VK_EXT_descriptor_buffer").unwrap());
8503 }
8504 if x.ext_descriptor_indexing {
8505 data.push(std::ffi::CString::new("VK_EXT_descriptor_indexing").unwrap());
8506 }
8507 if x.ext_device_address_binding_report {
8508 data.push(std::ffi::CString::new("VK_EXT_device_address_binding_report").unwrap());
8509 }
8510 if x.ext_device_fault {
8511 data.push(std::ffi::CString::new("VK_EXT_device_fault").unwrap());
8512 }
8513 if x.ext_device_memory_report {
8514 data.push(std::ffi::CString::new("VK_EXT_device_memory_report").unwrap());
8515 }
8516 if x.ext_discard_rectangles {
8517 data.push(std::ffi::CString::new("VK_EXT_discard_rectangles").unwrap());
8518 }
8519 if x.ext_display_control {
8520 data.push(std::ffi::CString::new("VK_EXT_display_control").unwrap());
8521 }
8522 if x.ext_dynamic_rendering_unused_attachments {
8523 data.push(
8524 std::ffi::CString::new("VK_EXT_dynamic_rendering_unused_attachments").unwrap(),
8525 );
8526 }
8527 if x.ext_extended_dynamic_state {
8528 data.push(std::ffi::CString::new("VK_EXT_extended_dynamic_state").unwrap());
8529 }
8530 if x.ext_extended_dynamic_state2 {
8531 data.push(std::ffi::CString::new("VK_EXT_extended_dynamic_state2").unwrap());
8532 }
8533 if x.ext_extended_dynamic_state3 {
8534 data.push(std::ffi::CString::new("VK_EXT_extended_dynamic_state3").unwrap());
8535 }
8536 if x.ext_external_memory_acquire_unmodified {
8537 data.push(std::ffi::CString::new("VK_EXT_external_memory_acquire_unmodified").unwrap());
8538 }
8539 if x.ext_external_memory_dma_buf {
8540 data.push(std::ffi::CString::new("VK_EXT_external_memory_dma_buf").unwrap());
8541 }
8542 if x.ext_external_memory_host {
8543 data.push(std::ffi::CString::new("VK_EXT_external_memory_host").unwrap());
8544 }
8545 if x.ext_filter_cubic {
8546 data.push(std::ffi::CString::new("VK_EXT_filter_cubic").unwrap());
8547 }
8548 if x.ext_fragment_density_map {
8549 data.push(std::ffi::CString::new("VK_EXT_fragment_density_map").unwrap());
8550 }
8551 if x.ext_fragment_density_map2 {
8552 data.push(std::ffi::CString::new("VK_EXT_fragment_density_map2").unwrap());
8553 }
8554 if x.ext_fragment_shader_interlock {
8555 data.push(std::ffi::CString::new("VK_EXT_fragment_shader_interlock").unwrap());
8556 }
8557 if x.ext_frame_boundary {
8558 data.push(std::ffi::CString::new("VK_EXT_frame_boundary").unwrap());
8559 }
8560 if x.ext_full_screen_exclusive {
8561 data.push(std::ffi::CString::new("VK_EXT_full_screen_exclusive").unwrap());
8562 }
8563 if x.ext_global_priority {
8564 data.push(std::ffi::CString::new("VK_EXT_global_priority").unwrap());
8565 }
8566 if x.ext_global_priority_query {
8567 data.push(std::ffi::CString::new("VK_EXT_global_priority_query").unwrap());
8568 }
8569 if x.ext_graphics_pipeline_library {
8570 data.push(std::ffi::CString::new("VK_EXT_graphics_pipeline_library").unwrap());
8571 }
8572 if x.ext_hdr_metadata {
8573 data.push(std::ffi::CString::new("VK_EXT_hdr_metadata").unwrap());
8574 }
8575 if x.ext_host_image_copy {
8576 data.push(std::ffi::CString::new("VK_EXT_host_image_copy").unwrap());
8577 }
8578 if x.ext_host_query_reset {
8579 data.push(std::ffi::CString::new("VK_EXT_host_query_reset").unwrap());
8580 }
8581 if x.ext_image_2d_view_of_3d {
8582 data.push(std::ffi::CString::new("VK_EXT_image_2d_view_of_3d").unwrap());
8583 }
8584 if x.ext_image_compression_control {
8585 data.push(std::ffi::CString::new("VK_EXT_image_compression_control").unwrap());
8586 }
8587 if x.ext_image_compression_control_swapchain {
8588 data.push(
8589 std::ffi::CString::new("VK_EXT_image_compression_control_swapchain").unwrap(),
8590 );
8591 }
8592 if x.ext_image_drm_format_modifier {
8593 data.push(std::ffi::CString::new("VK_EXT_image_drm_format_modifier").unwrap());
8594 }
8595 if x.ext_image_robustness {
8596 data.push(std::ffi::CString::new("VK_EXT_image_robustness").unwrap());
8597 }
8598 if x.ext_image_sliced_view_of_3d {
8599 data.push(std::ffi::CString::new("VK_EXT_image_sliced_view_of_3d").unwrap());
8600 }
8601 if x.ext_image_view_min_lod {
8602 data.push(std::ffi::CString::new("VK_EXT_image_view_min_lod").unwrap());
8603 }
8604 if x.ext_index_type_uint8 {
8605 data.push(std::ffi::CString::new("VK_EXT_index_type_uint8").unwrap());
8606 }
8607 if x.ext_inline_uniform_block {
8608 data.push(std::ffi::CString::new("VK_EXT_inline_uniform_block").unwrap());
8609 }
8610 if x.ext_legacy_dithering {
8611 data.push(std::ffi::CString::new("VK_EXT_legacy_dithering").unwrap());
8612 }
8613 if x.ext_line_rasterization {
8614 data.push(std::ffi::CString::new("VK_EXT_line_rasterization").unwrap());
8615 }
8616 if x.ext_load_store_op_none {
8617 data.push(std::ffi::CString::new("VK_EXT_load_store_op_none").unwrap());
8618 }
8619 if x.ext_map_memory_placed {
8620 data.push(std::ffi::CString::new("VK_EXT_map_memory_placed").unwrap());
8621 }
8622 if x.ext_memory_budget {
8623 data.push(std::ffi::CString::new("VK_EXT_memory_budget").unwrap());
8624 }
8625 if x.ext_memory_priority {
8626 data.push(std::ffi::CString::new("VK_EXT_memory_priority").unwrap());
8627 }
8628 if x.ext_mesh_shader {
8629 data.push(std::ffi::CString::new("VK_EXT_mesh_shader").unwrap());
8630 }
8631 if x.ext_metal_objects {
8632 data.push(std::ffi::CString::new("VK_EXT_metal_objects").unwrap());
8633 }
8634 if x.ext_multi_draw {
8635 data.push(std::ffi::CString::new("VK_EXT_multi_draw").unwrap());
8636 }
8637 if x.ext_multisampled_render_to_single_sampled {
8638 data.push(
8639 std::ffi::CString::new("VK_EXT_multisampled_render_to_single_sampled").unwrap(),
8640 );
8641 }
8642 if x.ext_mutable_descriptor_type {
8643 data.push(std::ffi::CString::new("VK_EXT_mutable_descriptor_type").unwrap());
8644 }
8645 if x.ext_nested_command_buffer {
8646 data.push(std::ffi::CString::new("VK_EXT_nested_command_buffer").unwrap());
8647 }
8648 if x.ext_non_seamless_cube_map {
8649 data.push(std::ffi::CString::new("VK_EXT_non_seamless_cube_map").unwrap());
8650 }
8651 if x.ext_opacity_micromap {
8652 data.push(std::ffi::CString::new("VK_EXT_opacity_micromap").unwrap());
8653 }
8654 if x.ext_pageable_device_local_memory {
8655 data.push(std::ffi::CString::new("VK_EXT_pageable_device_local_memory").unwrap());
8656 }
8657 if x.ext_pci_bus_info {
8658 data.push(std::ffi::CString::new("VK_EXT_pci_bus_info").unwrap());
8659 }
8660 if x.ext_physical_device_drm {
8661 data.push(std::ffi::CString::new("VK_EXT_physical_device_drm").unwrap());
8662 }
8663 if x.ext_pipeline_creation_cache_control {
8664 data.push(std::ffi::CString::new("VK_EXT_pipeline_creation_cache_control").unwrap());
8665 }
8666 if x.ext_pipeline_creation_feedback {
8667 data.push(std::ffi::CString::new("VK_EXT_pipeline_creation_feedback").unwrap());
8668 }
8669 if x.ext_pipeline_library_group_handles {
8670 data.push(std::ffi::CString::new("VK_EXT_pipeline_library_group_handles").unwrap());
8671 }
8672 if x.ext_pipeline_properties {
8673 data.push(std::ffi::CString::new("VK_EXT_pipeline_properties").unwrap());
8674 }
8675 if x.ext_pipeline_protected_access {
8676 data.push(std::ffi::CString::new("VK_EXT_pipeline_protected_access").unwrap());
8677 }
8678 if x.ext_pipeline_robustness {
8679 data.push(std::ffi::CString::new("VK_EXT_pipeline_robustness").unwrap());
8680 }
8681 if x.ext_post_depth_coverage {
8682 data.push(std::ffi::CString::new("VK_EXT_post_depth_coverage").unwrap());
8683 }
8684 if x.ext_primitive_topology_list_restart {
8685 data.push(std::ffi::CString::new("VK_EXT_primitive_topology_list_restart").unwrap());
8686 }
8687 if x.ext_primitives_generated_query {
8688 data.push(std::ffi::CString::new("VK_EXT_primitives_generated_query").unwrap());
8689 }
8690 if x.ext_private_data {
8691 data.push(std::ffi::CString::new("VK_EXT_private_data").unwrap());
8692 }
8693 if x.ext_provoking_vertex {
8694 data.push(std::ffi::CString::new("VK_EXT_provoking_vertex").unwrap());
8695 }
8696 if x.ext_queue_family_foreign {
8697 data.push(std::ffi::CString::new("VK_EXT_queue_family_foreign").unwrap());
8698 }
8699 if x.ext_rasterization_order_attachment_access {
8700 data.push(
8701 std::ffi::CString::new("VK_EXT_rasterization_order_attachment_access").unwrap(),
8702 );
8703 }
8704 if x.ext_rgba10x6_formats {
8705 data.push(std::ffi::CString::new("VK_EXT_rgba10x6_formats").unwrap());
8706 }
8707 if x.ext_robustness2 {
8708 data.push(std::ffi::CString::new("VK_EXT_robustness2").unwrap());
8709 }
8710 if x.ext_sample_locations {
8711 data.push(std::ffi::CString::new("VK_EXT_sample_locations").unwrap());
8712 }
8713 if x.ext_sampler_filter_minmax {
8714 data.push(std::ffi::CString::new("VK_EXT_sampler_filter_minmax").unwrap());
8715 }
8716 if x.ext_scalar_block_layout {
8717 data.push(std::ffi::CString::new("VK_EXT_scalar_block_layout").unwrap());
8718 }
8719 if x.ext_separate_stencil_usage {
8720 data.push(std::ffi::CString::new("VK_EXT_separate_stencil_usage").unwrap());
8721 }
8722 if x.ext_shader_atomic_float {
8723 data.push(std::ffi::CString::new("VK_EXT_shader_atomic_float").unwrap());
8724 }
8725 if x.ext_shader_atomic_float2 {
8726 data.push(std::ffi::CString::new("VK_EXT_shader_atomic_float2").unwrap());
8727 }
8728 if x.ext_shader_demote_to_helper_invocation {
8729 data.push(std::ffi::CString::new("VK_EXT_shader_demote_to_helper_invocation").unwrap());
8730 }
8731 if x.ext_shader_image_atomic_int64 {
8732 data.push(std::ffi::CString::new("VK_EXT_shader_image_atomic_int64").unwrap());
8733 }
8734 if x.ext_shader_module_identifier {
8735 data.push(std::ffi::CString::new("VK_EXT_shader_module_identifier").unwrap());
8736 }
8737 if x.ext_shader_object {
8738 data.push(std::ffi::CString::new("VK_EXT_shader_object").unwrap());
8739 }
8740 if x.ext_shader_stencil_export {
8741 data.push(std::ffi::CString::new("VK_EXT_shader_stencil_export").unwrap());
8742 }
8743 if x.ext_shader_subgroup_ballot {
8744 data.push(std::ffi::CString::new("VK_EXT_shader_subgroup_ballot").unwrap());
8745 }
8746 if x.ext_shader_subgroup_vote {
8747 data.push(std::ffi::CString::new("VK_EXT_shader_subgroup_vote").unwrap());
8748 }
8749 if x.ext_shader_tile_image {
8750 data.push(std::ffi::CString::new("VK_EXT_shader_tile_image").unwrap());
8751 }
8752 if x.ext_shader_viewport_index_layer {
8753 data.push(std::ffi::CString::new("VK_EXT_shader_viewport_index_layer").unwrap());
8754 }
8755 if x.ext_subgroup_size_control {
8756 data.push(std::ffi::CString::new("VK_EXT_subgroup_size_control").unwrap());
8757 }
8758 if x.ext_subpass_merge_feedback {
8759 data.push(std::ffi::CString::new("VK_EXT_subpass_merge_feedback").unwrap());
8760 }
8761 if x.ext_swapchain_maintenance1 {
8762 data.push(std::ffi::CString::new("VK_EXT_swapchain_maintenance1").unwrap());
8763 }
8764 if x.ext_texel_buffer_alignment {
8765 data.push(std::ffi::CString::new("VK_EXT_texel_buffer_alignment").unwrap());
8766 }
8767 if x.ext_texture_compression_astc_hdr {
8768 data.push(std::ffi::CString::new("VK_EXT_texture_compression_astc_hdr").unwrap());
8769 }
8770 if x.ext_tooling_info {
8771 data.push(std::ffi::CString::new("VK_EXT_tooling_info").unwrap());
8772 }
8773 if x.ext_transform_feedback {
8774 data.push(std::ffi::CString::new("VK_EXT_transform_feedback").unwrap());
8775 }
8776 if x.ext_validation_cache {
8777 data.push(std::ffi::CString::new("VK_EXT_validation_cache").unwrap());
8778 }
8779 if x.ext_vertex_attribute_divisor {
8780 data.push(std::ffi::CString::new("VK_EXT_vertex_attribute_divisor").unwrap());
8781 }
8782 if x.ext_vertex_input_dynamic_state {
8783 data.push(std::ffi::CString::new("VK_EXT_vertex_input_dynamic_state").unwrap());
8784 }
8785 if x.ext_ycbcr_2plane_444_formats {
8786 data.push(std::ffi::CString::new("VK_EXT_ycbcr_2plane_444_formats").unwrap());
8787 }
8788 if x.ext_ycbcr_image_arrays {
8789 data.push(std::ffi::CString::new("VK_EXT_ycbcr_image_arrays").unwrap());
8790 }
8791 if x.amdx_shader_enqueue {
8792 data.push(std::ffi::CString::new("VK_AMDX_shader_enqueue").unwrap());
8793 }
8794 if x.amd_buffer_marker {
8795 data.push(std::ffi::CString::new("VK_AMD_buffer_marker").unwrap());
8796 }
8797 if x.amd_device_coherent_memory {
8798 data.push(std::ffi::CString::new("VK_AMD_device_coherent_memory").unwrap());
8799 }
8800 if x.amd_display_native_hdr {
8801 data.push(std::ffi::CString::new("VK_AMD_display_native_hdr").unwrap());
8802 }
8803 if x.amd_draw_indirect_count {
8804 data.push(std::ffi::CString::new("VK_AMD_draw_indirect_count").unwrap());
8805 }
8806 if x.amd_gcn_shader {
8807 data.push(std::ffi::CString::new("VK_AMD_gcn_shader").unwrap());
8808 }
8809 if x.amd_gpu_shader_half_float {
8810 data.push(std::ffi::CString::new("VK_AMD_gpu_shader_half_float").unwrap());
8811 }
8812 if x.amd_gpu_shader_int16 {
8813 data.push(std::ffi::CString::new("VK_AMD_gpu_shader_int16").unwrap());
8814 }
8815 if x.amd_memory_overallocation_behavior {
8816 data.push(std::ffi::CString::new("VK_AMD_memory_overallocation_behavior").unwrap());
8817 }
8818 if x.amd_mixed_attachment_samples {
8819 data.push(std::ffi::CString::new("VK_AMD_mixed_attachment_samples").unwrap());
8820 }
8821 if x.amd_pipeline_compiler_control {
8822 data.push(std::ffi::CString::new("VK_AMD_pipeline_compiler_control").unwrap());
8823 }
8824 if x.amd_rasterization_order {
8825 data.push(std::ffi::CString::new("VK_AMD_rasterization_order").unwrap());
8826 }
8827 if x.amd_shader_ballot {
8828 data.push(std::ffi::CString::new("VK_AMD_shader_ballot").unwrap());
8829 }
8830 if x.amd_shader_core_properties {
8831 data.push(std::ffi::CString::new("VK_AMD_shader_core_properties").unwrap());
8832 }
8833 if x.amd_shader_core_properties2 {
8834 data.push(std::ffi::CString::new("VK_AMD_shader_core_properties2").unwrap());
8835 }
8836 if x.amd_shader_early_and_late_fragment_tests {
8837 data.push(
8838 std::ffi::CString::new("VK_AMD_shader_early_and_late_fragment_tests").unwrap(),
8839 );
8840 }
8841 if x.amd_shader_explicit_vertex_parameter {
8842 data.push(std::ffi::CString::new("VK_AMD_shader_explicit_vertex_parameter").unwrap());
8843 }
8844 if x.amd_shader_fragment_mask {
8845 data.push(std::ffi::CString::new("VK_AMD_shader_fragment_mask").unwrap());
8846 }
8847 if x.amd_shader_image_load_store_lod {
8848 data.push(std::ffi::CString::new("VK_AMD_shader_image_load_store_lod").unwrap());
8849 }
8850 if x.amd_shader_info {
8851 data.push(std::ffi::CString::new("VK_AMD_shader_info").unwrap());
8852 }
8853 if x.amd_shader_trinary_minmax {
8854 data.push(std::ffi::CString::new("VK_AMD_shader_trinary_minmax").unwrap());
8855 }
8856 if x.amd_texture_gather_bias_lod {
8857 data.push(std::ffi::CString::new("VK_AMD_texture_gather_bias_lod").unwrap());
8858 }
8859 if x.android_external_format_resolve {
8860 data.push(std::ffi::CString::new("VK_ANDROID_external_format_resolve").unwrap());
8861 }
8862 if x.android_external_memory_android_hardware_buffer {
8863 data.push(
8864 std::ffi::CString::new("VK_ANDROID_external_memory_android_hardware_buffer")
8865 .unwrap(),
8866 );
8867 }
8868 if x.arm_rasterization_order_attachment_access {
8869 data.push(
8870 std::ffi::CString::new("VK_ARM_rasterization_order_attachment_access").unwrap(),
8871 );
8872 }
8873 if x.arm_render_pass_striped {
8874 data.push(std::ffi::CString::new("VK_ARM_render_pass_striped").unwrap());
8875 }
8876 if x.arm_scheduling_controls {
8877 data.push(std::ffi::CString::new("VK_ARM_scheduling_controls").unwrap());
8878 }
8879 if x.arm_shader_core_builtins {
8880 data.push(std::ffi::CString::new("VK_ARM_shader_core_builtins").unwrap());
8881 }
8882 if x.arm_shader_core_properties {
8883 data.push(std::ffi::CString::new("VK_ARM_shader_core_properties").unwrap());
8884 }
8885 if x.fuchsia_buffer_collection {
8886 data.push(std::ffi::CString::new("VK_FUCHSIA_buffer_collection").unwrap());
8887 }
8888 if x.fuchsia_external_memory {
8889 data.push(std::ffi::CString::new("VK_FUCHSIA_external_memory").unwrap());
8890 }
8891 if x.fuchsia_external_semaphore {
8892 data.push(std::ffi::CString::new("VK_FUCHSIA_external_semaphore").unwrap());
8893 }
8894 if x.ggp_frame_token {
8895 data.push(std::ffi::CString::new("VK_GGP_frame_token").unwrap());
8896 }
8897 if x.google_decorate_string {
8898 data.push(std::ffi::CString::new("VK_GOOGLE_decorate_string").unwrap());
8899 }
8900 if x.google_display_timing {
8901 data.push(std::ffi::CString::new("VK_GOOGLE_display_timing").unwrap());
8902 }
8903 if x.google_hlsl_functionality1 {
8904 data.push(std::ffi::CString::new("VK_GOOGLE_hlsl_functionality1").unwrap());
8905 }
8906 if x.google_user_type {
8907 data.push(std::ffi::CString::new("VK_GOOGLE_user_type").unwrap());
8908 }
8909 if x.huawei_cluster_culling_shader {
8910 data.push(std::ffi::CString::new("VK_HUAWEI_cluster_culling_shader").unwrap());
8911 }
8912 if x.huawei_invocation_mask {
8913 data.push(std::ffi::CString::new("VK_HUAWEI_invocation_mask").unwrap());
8914 }
8915 if x.huawei_subpass_shading {
8916 data.push(std::ffi::CString::new("VK_HUAWEI_subpass_shading").unwrap());
8917 }
8918 if x.img_filter_cubic {
8919 data.push(std::ffi::CString::new("VK_IMG_filter_cubic").unwrap());
8920 }
8921 if x.img_format_pvrtc {
8922 data.push(std::ffi::CString::new("VK_IMG_format_pvrtc").unwrap());
8923 }
8924 if x.img_relaxed_line_rasterization {
8925 data.push(std::ffi::CString::new("VK_IMG_relaxed_line_rasterization").unwrap());
8926 }
8927 if x.intel_performance_query {
8928 data.push(std::ffi::CString::new("VK_INTEL_performance_query").unwrap());
8929 }
8930 if x.intel_shader_integer_functions2 {
8931 data.push(std::ffi::CString::new("VK_INTEL_shader_integer_functions2").unwrap());
8932 }
8933 if x.msft_layered_driver {
8934 data.push(std::ffi::CString::new("VK_MSFT_layered_driver").unwrap());
8935 }
8936 if x.nvx_binary_import {
8937 data.push(std::ffi::CString::new("VK_NVX_binary_import").unwrap());
8938 }
8939 if x.nvx_image_view_handle {
8940 data.push(std::ffi::CString::new("VK_NVX_image_view_handle").unwrap());
8941 }
8942 if x.nvx_multiview_per_view_attributes {
8943 data.push(std::ffi::CString::new("VK_NVX_multiview_per_view_attributes").unwrap());
8944 }
8945 if x.nv_acquire_winrt_display {
8946 data.push(std::ffi::CString::new("VK_NV_acquire_winrt_display").unwrap());
8947 }
8948 if x.nv_clip_space_w_scaling {
8949 data.push(std::ffi::CString::new("VK_NV_clip_space_w_scaling").unwrap());
8950 }
8951 if x.nv_compute_shader_derivatives {
8952 data.push(std::ffi::CString::new("VK_NV_compute_shader_derivatives").unwrap());
8953 }
8954 if x.nv_cooperative_matrix {
8955 data.push(std::ffi::CString::new("VK_NV_cooperative_matrix").unwrap());
8956 }
8957 if x.nv_copy_memory_indirect {
8958 data.push(std::ffi::CString::new("VK_NV_copy_memory_indirect").unwrap());
8959 }
8960 if x.nv_corner_sampled_image {
8961 data.push(std::ffi::CString::new("VK_NV_corner_sampled_image").unwrap());
8962 }
8963 if x.nv_coverage_reduction_mode {
8964 data.push(std::ffi::CString::new("VK_NV_coverage_reduction_mode").unwrap());
8965 }
8966 if x.nv_cuda_kernel_launch {
8967 data.push(std::ffi::CString::new("VK_NV_cuda_kernel_launch").unwrap());
8968 }
8969 if x.nv_dedicated_allocation {
8970 data.push(std::ffi::CString::new("VK_NV_dedicated_allocation").unwrap());
8971 }
8972 if x.nv_dedicated_allocation_image_aliasing {
8973 data.push(std::ffi::CString::new("VK_NV_dedicated_allocation_image_aliasing").unwrap());
8974 }
8975 if x.nv_descriptor_pool_overallocation {
8976 data.push(std::ffi::CString::new("VK_NV_descriptor_pool_overallocation").unwrap());
8977 }
8978 if x.nv_device_diagnostic_checkpoints {
8979 data.push(std::ffi::CString::new("VK_NV_device_diagnostic_checkpoints").unwrap());
8980 }
8981 if x.nv_device_diagnostics_config {
8982 data.push(std::ffi::CString::new("VK_NV_device_diagnostics_config").unwrap());
8983 }
8984 if x.nv_device_generated_commands {
8985 data.push(std::ffi::CString::new("VK_NV_device_generated_commands").unwrap());
8986 }
8987 if x.nv_device_generated_commands_compute {
8988 data.push(std::ffi::CString::new("VK_NV_device_generated_commands_compute").unwrap());
8989 }
8990 if x.nv_displacement_micromap {
8991 data.push(std::ffi::CString::new("VK_NV_displacement_micromap").unwrap());
8992 }
8993 if x.nv_extended_sparse_address_space {
8994 data.push(std::ffi::CString::new("VK_NV_extended_sparse_address_space").unwrap());
8995 }
8996 if x.nv_external_memory {
8997 data.push(std::ffi::CString::new("VK_NV_external_memory").unwrap());
8998 }
8999 if x.nv_external_memory_rdma {
9000 data.push(std::ffi::CString::new("VK_NV_external_memory_rdma").unwrap());
9001 }
9002 if x.nv_external_memory_win32 {
9003 data.push(std::ffi::CString::new("VK_NV_external_memory_win32").unwrap());
9004 }
9005 if x.nv_fill_rectangle {
9006 data.push(std::ffi::CString::new("VK_NV_fill_rectangle").unwrap());
9007 }
9008 if x.nv_fragment_coverage_to_color {
9009 data.push(std::ffi::CString::new("VK_NV_fragment_coverage_to_color").unwrap());
9010 }
9011 if x.nv_fragment_shader_barycentric {
9012 data.push(std::ffi::CString::new("VK_NV_fragment_shader_barycentric").unwrap());
9013 }
9014 if x.nv_fragment_shading_rate_enums {
9015 data.push(std::ffi::CString::new("VK_NV_fragment_shading_rate_enums").unwrap());
9016 }
9017 if x.nv_framebuffer_mixed_samples {
9018 data.push(std::ffi::CString::new("VK_NV_framebuffer_mixed_samples").unwrap());
9019 }
9020 if x.nv_geometry_shader_passthrough {
9021 data.push(std::ffi::CString::new("VK_NV_geometry_shader_passthrough").unwrap());
9022 }
9023 if x.nv_glsl_shader {
9024 data.push(std::ffi::CString::new("VK_NV_glsl_shader").unwrap());
9025 }
9026 if x.nv_inherited_viewport_scissor {
9027 data.push(std::ffi::CString::new("VK_NV_inherited_viewport_scissor").unwrap());
9028 }
9029 if x.nv_linear_color_attachment {
9030 data.push(std::ffi::CString::new("VK_NV_linear_color_attachment").unwrap());
9031 }
9032 if x.nv_low_latency {
9033 data.push(std::ffi::CString::new("VK_NV_low_latency").unwrap());
9034 }
9035 if x.nv_low_latency2 {
9036 data.push(std::ffi::CString::new("VK_NV_low_latency2").unwrap());
9037 }
9038 if x.nv_memory_decompression {
9039 data.push(std::ffi::CString::new("VK_NV_memory_decompression").unwrap());
9040 }
9041 if x.nv_mesh_shader {
9042 data.push(std::ffi::CString::new("VK_NV_mesh_shader").unwrap());
9043 }
9044 if x.nv_optical_flow {
9045 data.push(std::ffi::CString::new("VK_NV_optical_flow").unwrap());
9046 }
9047 if x.nv_per_stage_descriptor_set {
9048 data.push(std::ffi::CString::new("VK_NV_per_stage_descriptor_set").unwrap());
9049 }
9050 if x.nv_present_barrier {
9051 data.push(std::ffi::CString::new("VK_NV_present_barrier").unwrap());
9052 }
9053 if x.nv_raw_access_chains {
9054 data.push(std::ffi::CString::new("VK_NV_raw_access_chains").unwrap());
9055 }
9056 if x.nv_ray_tracing {
9057 data.push(std::ffi::CString::new("VK_NV_ray_tracing").unwrap());
9058 }
9059 if x.nv_ray_tracing_invocation_reorder {
9060 data.push(std::ffi::CString::new("VK_NV_ray_tracing_invocation_reorder").unwrap());
9061 }
9062 if x.nv_ray_tracing_motion_blur {
9063 data.push(std::ffi::CString::new("VK_NV_ray_tracing_motion_blur").unwrap());
9064 }
9065 if x.nv_ray_tracing_validation {
9066 data.push(std::ffi::CString::new("VK_NV_ray_tracing_validation").unwrap());
9067 }
9068 if x.nv_representative_fragment_test {
9069 data.push(std::ffi::CString::new("VK_NV_representative_fragment_test").unwrap());
9070 }
9071 if x.nv_sample_mask_override_coverage {
9072 data.push(std::ffi::CString::new("VK_NV_sample_mask_override_coverage").unwrap());
9073 }
9074 if x.nv_scissor_exclusive {
9075 data.push(std::ffi::CString::new("VK_NV_scissor_exclusive").unwrap());
9076 }
9077 if x.nv_shader_atomic_float16_vector {
9078 data.push(std::ffi::CString::new("VK_NV_shader_atomic_float16_vector").unwrap());
9079 }
9080 if x.nv_shader_image_footprint {
9081 data.push(std::ffi::CString::new("VK_NV_shader_image_footprint").unwrap());
9082 }
9083 if x.nv_shader_sm_builtins {
9084 data.push(std::ffi::CString::new("VK_NV_shader_sm_builtins").unwrap());
9085 }
9086 if x.nv_shader_subgroup_partitioned {
9087 data.push(std::ffi::CString::new("VK_NV_shader_subgroup_partitioned").unwrap());
9088 }
9089 if x.nv_shading_rate_image {
9090 data.push(std::ffi::CString::new("VK_NV_shading_rate_image").unwrap());
9091 }
9092 if x.nv_viewport_array2 {
9093 data.push(std::ffi::CString::new("VK_NV_viewport_array2").unwrap());
9094 }
9095 if x.nv_viewport_swizzle {
9096 data.push(std::ffi::CString::new("VK_NV_viewport_swizzle").unwrap());
9097 }
9098 if x.nv_win32_keyed_mutex {
9099 data.push(std::ffi::CString::new("VK_NV_win32_keyed_mutex").unwrap());
9100 }
9101 if x.qcom_filter_cubic_clamp {
9102 data.push(std::ffi::CString::new("VK_QCOM_filter_cubic_clamp").unwrap());
9103 }
9104 if x.qcom_filter_cubic_weights {
9105 data.push(std::ffi::CString::new("VK_QCOM_filter_cubic_weights").unwrap());
9106 }
9107 if x.qcom_fragment_density_map_offset {
9108 data.push(std::ffi::CString::new("VK_QCOM_fragment_density_map_offset").unwrap());
9109 }
9110 if x.qcom_image_processing {
9111 data.push(std::ffi::CString::new("VK_QCOM_image_processing").unwrap());
9112 }
9113 if x.qcom_image_processing2 {
9114 data.push(std::ffi::CString::new("VK_QCOM_image_processing2").unwrap());
9115 }
9116 if x.qcom_multiview_per_view_render_areas {
9117 data.push(std::ffi::CString::new("VK_QCOM_multiview_per_view_render_areas").unwrap());
9118 }
9119 if x.qcom_multiview_per_view_viewports {
9120 data.push(std::ffi::CString::new("VK_QCOM_multiview_per_view_viewports").unwrap());
9121 }
9122 if x.qcom_render_pass_shader_resolve {
9123 data.push(std::ffi::CString::new("VK_QCOM_render_pass_shader_resolve").unwrap());
9124 }
9125 if x.qcom_render_pass_store_ops {
9126 data.push(std::ffi::CString::new("VK_QCOM_render_pass_store_ops").unwrap());
9127 }
9128 if x.qcom_render_pass_transform {
9129 data.push(std::ffi::CString::new("VK_QCOM_render_pass_transform").unwrap());
9130 }
9131 if x.qcom_rotated_copy_commands {
9132 data.push(std::ffi::CString::new("VK_QCOM_rotated_copy_commands").unwrap());
9133 }
9134 if x.qcom_tile_properties {
9135 data.push(std::ffi::CString::new("VK_QCOM_tile_properties").unwrap());
9136 }
9137 if x.qcom_ycbcr_degamma {
9138 data.push(std::ffi::CString::new("VK_QCOM_ycbcr_degamma").unwrap());
9139 }
9140 if x.qnx_external_memory_screen_buffer {
9141 data.push(std::ffi::CString::new("VK_QNX_external_memory_screen_buffer").unwrap());
9142 }
9143 if x.sec_amigo_profiling {
9144 data.push(std::ffi::CString::new("VK_SEC_amigo_profiling").unwrap());
9145 }
9146 if x.valve_descriptor_set_host_mapping {
9147 data.push(std::ffi::CString::new("VK_VALVE_descriptor_set_host_mapping").unwrap());
9148 }
9149 if x.valve_mutable_descriptor_type {
9150 data.push(std::ffi::CString::new("VK_VALVE_mutable_descriptor_type").unwrap());
9151 }
9152 data
9153 }
9154}
9155impl IntoIterator for DeviceExtensions {
9156 type Item = (&'static str, bool);
9157 type IntoIter = std::array::IntoIter<Self::Item, 330usize>;
9158 #[inline]
9159 fn into_iter(self) -> Self::IntoIter {
9160 [
9161 ("VK_KHR_16bit_storage", self.khr_16bit_storage),
9162 ("VK_KHR_8bit_storage", self.khr_8bit_storage),
9163 (
9164 "VK_KHR_acceleration_structure",
9165 self.khr_acceleration_structure,
9166 ),
9167 ("VK_KHR_bind_memory2", self.khr_bind_memory2),
9168 (
9169 "VK_KHR_buffer_device_address",
9170 self.khr_buffer_device_address,
9171 ),
9172 (
9173 "VK_KHR_calibrated_timestamps",
9174 self.khr_calibrated_timestamps,
9175 ),
9176 ("VK_KHR_cooperative_matrix", self.khr_cooperative_matrix),
9177 ("VK_KHR_copy_commands2", self.khr_copy_commands2),
9178 ("VK_KHR_create_renderpass2", self.khr_create_renderpass2),
9179 ("VK_KHR_dedicated_allocation", self.khr_dedicated_allocation),
9180 (
9181 "VK_KHR_deferred_host_operations",
9182 self.khr_deferred_host_operations,
9183 ),
9184 (
9185 "VK_KHR_depth_stencil_resolve",
9186 self.khr_depth_stencil_resolve,
9187 ),
9188 (
9189 "VK_KHR_descriptor_update_template",
9190 self.khr_descriptor_update_template,
9191 ),
9192 ("VK_KHR_device_group", self.khr_device_group),
9193 ("VK_KHR_display_swapchain", self.khr_display_swapchain),
9194 ("VK_KHR_draw_indirect_count", self.khr_draw_indirect_count),
9195 ("VK_KHR_driver_properties", self.khr_driver_properties),
9196 ("VK_KHR_dynamic_rendering", self.khr_dynamic_rendering),
9197 (
9198 "VK_KHR_dynamic_rendering_local_read",
9199 self.khr_dynamic_rendering_local_read,
9200 ),
9201 ("VK_KHR_external_fence", self.khr_external_fence),
9202 ("VK_KHR_external_fence_fd", self.khr_external_fence_fd),
9203 ("VK_KHR_external_fence_win32", self.khr_external_fence_win32),
9204 ("VK_KHR_external_memory", self.khr_external_memory),
9205 ("VK_KHR_external_memory_fd", self.khr_external_memory_fd),
9206 (
9207 "VK_KHR_external_memory_win32",
9208 self.khr_external_memory_win32,
9209 ),
9210 ("VK_KHR_external_semaphore", self.khr_external_semaphore),
9211 (
9212 "VK_KHR_external_semaphore_fd",
9213 self.khr_external_semaphore_fd,
9214 ),
9215 (
9216 "VK_KHR_external_semaphore_win32",
9217 self.khr_external_semaphore_win32,
9218 ),
9219 (
9220 "VK_KHR_format_feature_flags2",
9221 self.khr_format_feature_flags2,
9222 ),
9223 (
9224 "VK_KHR_fragment_shader_barycentric",
9225 self.khr_fragment_shader_barycentric,
9226 ),
9227 (
9228 "VK_KHR_fragment_shading_rate",
9229 self.khr_fragment_shading_rate,
9230 ),
9231 (
9232 "VK_KHR_get_memory_requirements2",
9233 self.khr_get_memory_requirements2,
9234 ),
9235 ("VK_KHR_global_priority", self.khr_global_priority),
9236 ("VK_KHR_image_format_list", self.khr_image_format_list),
9237 (
9238 "VK_KHR_imageless_framebuffer",
9239 self.khr_imageless_framebuffer,
9240 ),
9241 ("VK_KHR_incremental_present", self.khr_incremental_present),
9242 ("VK_KHR_index_type_uint8", self.khr_index_type_uint8),
9243 ("VK_KHR_line_rasterization", self.khr_line_rasterization),
9244 ("VK_KHR_load_store_op_none", self.khr_load_store_op_none),
9245 ("VK_KHR_maintenance1", self.khr_maintenance1),
9246 ("VK_KHR_maintenance2", self.khr_maintenance2),
9247 ("VK_KHR_maintenance3", self.khr_maintenance3),
9248 ("VK_KHR_maintenance4", self.khr_maintenance4),
9249 ("VK_KHR_maintenance5", self.khr_maintenance5),
9250 ("VK_KHR_maintenance6", self.khr_maintenance6),
9251 ("VK_KHR_map_memory2", self.khr_map_memory2),
9252 ("VK_KHR_multiview", self.khr_multiview),
9253 ("VK_KHR_performance_query", self.khr_performance_query),
9254 (
9255 "VK_KHR_pipeline_executable_properties",
9256 self.khr_pipeline_executable_properties,
9257 ),
9258 ("VK_KHR_pipeline_library", self.khr_pipeline_library),
9259 ("VK_KHR_portability_subset", self.khr_portability_subset),
9260 ("VK_KHR_present_id", self.khr_present_id),
9261 ("VK_KHR_present_wait", self.khr_present_wait),
9262 ("VK_KHR_push_descriptor", self.khr_push_descriptor),
9263 ("VK_KHR_ray_query", self.khr_ray_query),
9264 (
9265 "VK_KHR_ray_tracing_maintenance1",
9266 self.khr_ray_tracing_maintenance1,
9267 ),
9268 ("VK_KHR_ray_tracing_pipeline", self.khr_ray_tracing_pipeline),
9269 (
9270 "VK_KHR_ray_tracing_position_fetch",
9271 self.khr_ray_tracing_position_fetch,
9272 ),
9273 ("VK_KHR_relaxed_block_layout", self.khr_relaxed_block_layout),
9274 (
9275 "VK_KHR_sampler_mirror_clamp_to_edge",
9276 self.khr_sampler_mirror_clamp_to_edge,
9277 ),
9278 (
9279 "VK_KHR_sampler_ycbcr_conversion",
9280 self.khr_sampler_ycbcr_conversion,
9281 ),
9282 (
9283 "VK_KHR_separate_depth_stencil_layouts",
9284 self.khr_separate_depth_stencil_layouts,
9285 ),
9286 ("VK_KHR_shader_atomic_int64", self.khr_shader_atomic_int64),
9287 ("VK_KHR_shader_clock", self.khr_shader_clock),
9288 (
9289 "VK_KHR_shader_draw_parameters",
9290 self.khr_shader_draw_parameters,
9291 ),
9292 ("VK_KHR_shader_expect_assume", self.khr_shader_expect_assume),
9293 ("VK_KHR_shader_float16_int8", self.khr_shader_float16_int8),
9294 (
9295 "VK_KHR_shader_float_controls",
9296 self.khr_shader_float_controls,
9297 ),
9298 (
9299 "VK_KHR_shader_float_controls2",
9300 self.khr_shader_float_controls2,
9301 ),
9302 (
9303 "VK_KHR_shader_integer_dot_product",
9304 self.khr_shader_integer_dot_product,
9305 ),
9306 (
9307 "VK_KHR_shader_maximal_reconvergence",
9308 self.khr_shader_maximal_reconvergence,
9309 ),
9310 (
9311 "VK_KHR_shader_non_semantic_info",
9312 self.khr_shader_non_semantic_info,
9313 ),
9314 ("VK_KHR_shader_quad_control", self.khr_shader_quad_control),
9315 (
9316 "VK_KHR_shader_subgroup_extended_types",
9317 self.khr_shader_subgroup_extended_types,
9318 ),
9319 (
9320 "VK_KHR_shader_subgroup_rotate",
9321 self.khr_shader_subgroup_rotate,
9322 ),
9323 (
9324 "VK_KHR_shader_subgroup_uniform_control_flow",
9325 self.khr_shader_subgroup_uniform_control_flow,
9326 ),
9327 (
9328 "VK_KHR_shader_terminate_invocation",
9329 self.khr_shader_terminate_invocation,
9330 ),
9331 (
9332 "VK_KHR_shared_presentable_image",
9333 self.khr_shared_presentable_image,
9334 ),
9335 ("VK_KHR_spirv_1_4", self.khr_spirv_1_4),
9336 (
9337 "VK_KHR_storage_buffer_storage_class",
9338 self.khr_storage_buffer_storage_class,
9339 ),
9340 ("VK_KHR_swapchain", self.khr_swapchain),
9341 (
9342 "VK_KHR_swapchain_mutable_format",
9343 self.khr_swapchain_mutable_format,
9344 ),
9345 ("VK_KHR_synchronization2", self.khr_synchronization2),
9346 ("VK_KHR_timeline_semaphore", self.khr_timeline_semaphore),
9347 (
9348 "VK_KHR_uniform_buffer_standard_layout",
9349 self.khr_uniform_buffer_standard_layout,
9350 ),
9351 ("VK_KHR_variable_pointers", self.khr_variable_pointers),
9352 (
9353 "VK_KHR_vertex_attribute_divisor",
9354 self.khr_vertex_attribute_divisor,
9355 ),
9356 ("VK_KHR_video_decode_av1", self.khr_video_decode_av1),
9357 ("VK_KHR_video_decode_h264", self.khr_video_decode_h264),
9358 ("VK_KHR_video_decode_h265", self.khr_video_decode_h265),
9359 ("VK_KHR_video_decode_queue", self.khr_video_decode_queue),
9360 ("VK_KHR_video_encode_h264", self.khr_video_encode_h264),
9361 ("VK_KHR_video_encode_h265", self.khr_video_encode_h265),
9362 ("VK_KHR_video_encode_queue", self.khr_video_encode_queue),
9363 ("VK_KHR_video_maintenance1", self.khr_video_maintenance1),
9364 ("VK_KHR_video_queue", self.khr_video_queue),
9365 ("VK_KHR_vulkan_memory_model", self.khr_vulkan_memory_model),
9366 ("VK_KHR_win32_keyed_mutex", self.khr_win32_keyed_mutex),
9367 (
9368 "VK_KHR_workgroup_memory_explicit_layout",
9369 self.khr_workgroup_memory_explicit_layout,
9370 ),
9371 (
9372 "VK_KHR_zero_initialize_workgroup_memory",
9373 self.khr_zero_initialize_workgroup_memory,
9374 ),
9375 ("VK_EXT_4444_formats", self.ext_4444_formats),
9376 ("VK_EXT_astc_decode_mode", self.ext_astc_decode_mode),
9377 (
9378 "VK_EXT_attachment_feedback_loop_dynamic_state",
9379 self.ext_attachment_feedback_loop_dynamic_state,
9380 ),
9381 (
9382 "VK_EXT_attachment_feedback_loop_layout",
9383 self.ext_attachment_feedback_loop_layout,
9384 ),
9385 (
9386 "VK_EXT_blend_operation_advanced",
9387 self.ext_blend_operation_advanced,
9388 ),
9389 ("VK_EXT_border_color_swizzle", self.ext_border_color_swizzle),
9390 (
9391 "VK_EXT_buffer_device_address",
9392 self.ext_buffer_device_address,
9393 ),
9394 (
9395 "VK_EXT_calibrated_timestamps",
9396 self.ext_calibrated_timestamps,
9397 ),
9398 ("VK_EXT_color_write_enable", self.ext_color_write_enable),
9399 (
9400 "VK_EXT_conditional_rendering",
9401 self.ext_conditional_rendering,
9402 ),
9403 (
9404 "VK_EXT_conservative_rasterization",
9405 self.ext_conservative_rasterization,
9406 ),
9407 ("VK_EXT_custom_border_color", self.ext_custom_border_color),
9408 ("VK_EXT_debug_marker", self.ext_debug_marker),
9409 ("VK_EXT_depth_bias_control", self.ext_depth_bias_control),
9410 ("VK_EXT_depth_clamp_zero_one", self.ext_depth_clamp_zero_one),
9411 ("VK_EXT_depth_clip_control", self.ext_depth_clip_control),
9412 ("VK_EXT_depth_clip_enable", self.ext_depth_clip_enable),
9413 (
9414 "VK_EXT_depth_range_unrestricted",
9415 self.ext_depth_range_unrestricted,
9416 ),
9417 ("VK_EXT_descriptor_buffer", self.ext_descriptor_buffer),
9418 ("VK_EXT_descriptor_indexing", self.ext_descriptor_indexing),
9419 (
9420 "VK_EXT_device_address_binding_report",
9421 self.ext_device_address_binding_report,
9422 ),
9423 ("VK_EXT_device_fault", self.ext_device_fault),
9424 ("VK_EXT_device_memory_report", self.ext_device_memory_report),
9425 ("VK_EXT_discard_rectangles", self.ext_discard_rectangles),
9426 ("VK_EXT_display_control", self.ext_display_control),
9427 (
9428 "VK_EXT_dynamic_rendering_unused_attachments",
9429 self.ext_dynamic_rendering_unused_attachments,
9430 ),
9431 (
9432 "VK_EXT_extended_dynamic_state",
9433 self.ext_extended_dynamic_state,
9434 ),
9435 (
9436 "VK_EXT_extended_dynamic_state2",
9437 self.ext_extended_dynamic_state2,
9438 ),
9439 (
9440 "VK_EXT_extended_dynamic_state3",
9441 self.ext_extended_dynamic_state3,
9442 ),
9443 (
9444 "VK_EXT_external_memory_acquire_unmodified",
9445 self.ext_external_memory_acquire_unmodified,
9446 ),
9447 (
9448 "VK_EXT_external_memory_dma_buf",
9449 self.ext_external_memory_dma_buf,
9450 ),
9451 ("VK_EXT_external_memory_host", self.ext_external_memory_host),
9452 ("VK_EXT_filter_cubic", self.ext_filter_cubic),
9453 ("VK_EXT_fragment_density_map", self.ext_fragment_density_map),
9454 (
9455 "VK_EXT_fragment_density_map2",
9456 self.ext_fragment_density_map2,
9457 ),
9458 (
9459 "VK_EXT_fragment_shader_interlock",
9460 self.ext_fragment_shader_interlock,
9461 ),
9462 ("VK_EXT_frame_boundary", self.ext_frame_boundary),
9463 (
9464 "VK_EXT_full_screen_exclusive",
9465 self.ext_full_screen_exclusive,
9466 ),
9467 ("VK_EXT_global_priority", self.ext_global_priority),
9468 (
9469 "VK_EXT_global_priority_query",
9470 self.ext_global_priority_query,
9471 ),
9472 (
9473 "VK_EXT_graphics_pipeline_library",
9474 self.ext_graphics_pipeline_library,
9475 ),
9476 ("VK_EXT_hdr_metadata", self.ext_hdr_metadata),
9477 ("VK_EXT_host_image_copy", self.ext_host_image_copy),
9478 ("VK_EXT_host_query_reset", self.ext_host_query_reset),
9479 ("VK_EXT_image_2d_view_of_3d", self.ext_image_2d_view_of_3d),
9480 (
9481 "VK_EXT_image_compression_control",
9482 self.ext_image_compression_control,
9483 ),
9484 (
9485 "VK_EXT_image_compression_control_swapchain",
9486 self.ext_image_compression_control_swapchain,
9487 ),
9488 (
9489 "VK_EXT_image_drm_format_modifier",
9490 self.ext_image_drm_format_modifier,
9491 ),
9492 ("VK_EXT_image_robustness", self.ext_image_robustness),
9493 (
9494 "VK_EXT_image_sliced_view_of_3d",
9495 self.ext_image_sliced_view_of_3d,
9496 ),
9497 ("VK_EXT_image_view_min_lod", self.ext_image_view_min_lod),
9498 ("VK_EXT_index_type_uint8", self.ext_index_type_uint8),
9499 ("VK_EXT_inline_uniform_block", self.ext_inline_uniform_block),
9500 ("VK_EXT_legacy_dithering", self.ext_legacy_dithering),
9501 ("VK_EXT_line_rasterization", self.ext_line_rasterization),
9502 ("VK_EXT_load_store_op_none", self.ext_load_store_op_none),
9503 ("VK_EXT_map_memory_placed", self.ext_map_memory_placed),
9504 ("VK_EXT_memory_budget", self.ext_memory_budget),
9505 ("VK_EXT_memory_priority", self.ext_memory_priority),
9506 ("VK_EXT_mesh_shader", self.ext_mesh_shader),
9507 ("VK_EXT_metal_objects", self.ext_metal_objects),
9508 ("VK_EXT_multi_draw", self.ext_multi_draw),
9509 (
9510 "VK_EXT_multisampled_render_to_single_sampled",
9511 self.ext_multisampled_render_to_single_sampled,
9512 ),
9513 (
9514 "VK_EXT_mutable_descriptor_type",
9515 self.ext_mutable_descriptor_type,
9516 ),
9517 (
9518 "VK_EXT_nested_command_buffer",
9519 self.ext_nested_command_buffer,
9520 ),
9521 (
9522 "VK_EXT_non_seamless_cube_map",
9523 self.ext_non_seamless_cube_map,
9524 ),
9525 ("VK_EXT_opacity_micromap", self.ext_opacity_micromap),
9526 (
9527 "VK_EXT_pageable_device_local_memory",
9528 self.ext_pageable_device_local_memory,
9529 ),
9530 ("VK_EXT_pci_bus_info", self.ext_pci_bus_info),
9531 ("VK_EXT_physical_device_drm", self.ext_physical_device_drm),
9532 (
9533 "VK_EXT_pipeline_creation_cache_control",
9534 self.ext_pipeline_creation_cache_control,
9535 ),
9536 (
9537 "VK_EXT_pipeline_creation_feedback",
9538 self.ext_pipeline_creation_feedback,
9539 ),
9540 (
9541 "VK_EXT_pipeline_library_group_handles",
9542 self.ext_pipeline_library_group_handles,
9543 ),
9544 ("VK_EXT_pipeline_properties", self.ext_pipeline_properties),
9545 (
9546 "VK_EXT_pipeline_protected_access",
9547 self.ext_pipeline_protected_access,
9548 ),
9549 ("VK_EXT_pipeline_robustness", self.ext_pipeline_robustness),
9550 ("VK_EXT_post_depth_coverage", self.ext_post_depth_coverage),
9551 (
9552 "VK_EXT_primitive_topology_list_restart",
9553 self.ext_primitive_topology_list_restart,
9554 ),
9555 (
9556 "VK_EXT_primitives_generated_query",
9557 self.ext_primitives_generated_query,
9558 ),
9559 ("VK_EXT_private_data", self.ext_private_data),
9560 ("VK_EXT_provoking_vertex", self.ext_provoking_vertex),
9561 ("VK_EXT_queue_family_foreign", self.ext_queue_family_foreign),
9562 (
9563 "VK_EXT_rasterization_order_attachment_access",
9564 self.ext_rasterization_order_attachment_access,
9565 ),
9566 ("VK_EXT_rgba10x6_formats", self.ext_rgba10x6_formats),
9567 ("VK_EXT_robustness2", self.ext_robustness2),
9568 ("VK_EXT_sample_locations", self.ext_sample_locations),
9569 (
9570 "VK_EXT_sampler_filter_minmax",
9571 self.ext_sampler_filter_minmax,
9572 ),
9573 ("VK_EXT_scalar_block_layout", self.ext_scalar_block_layout),
9574 (
9575 "VK_EXT_separate_stencil_usage",
9576 self.ext_separate_stencil_usage,
9577 ),
9578 ("VK_EXT_shader_atomic_float", self.ext_shader_atomic_float),
9579 ("VK_EXT_shader_atomic_float2", self.ext_shader_atomic_float2),
9580 (
9581 "VK_EXT_shader_demote_to_helper_invocation",
9582 self.ext_shader_demote_to_helper_invocation,
9583 ),
9584 (
9585 "VK_EXT_shader_image_atomic_int64",
9586 self.ext_shader_image_atomic_int64,
9587 ),
9588 (
9589 "VK_EXT_shader_module_identifier",
9590 self.ext_shader_module_identifier,
9591 ),
9592 ("VK_EXT_shader_object", self.ext_shader_object),
9593 (
9594 "VK_EXT_shader_stencil_export",
9595 self.ext_shader_stencil_export,
9596 ),
9597 (
9598 "VK_EXT_shader_subgroup_ballot",
9599 self.ext_shader_subgroup_ballot,
9600 ),
9601 ("VK_EXT_shader_subgroup_vote", self.ext_shader_subgroup_vote),
9602 ("VK_EXT_shader_tile_image", self.ext_shader_tile_image),
9603 (
9604 "VK_EXT_shader_viewport_index_layer",
9605 self.ext_shader_viewport_index_layer,
9606 ),
9607 (
9608 "VK_EXT_subgroup_size_control",
9609 self.ext_subgroup_size_control,
9610 ),
9611 (
9612 "VK_EXT_subpass_merge_feedback",
9613 self.ext_subpass_merge_feedback,
9614 ),
9615 (
9616 "VK_EXT_swapchain_maintenance1",
9617 self.ext_swapchain_maintenance1,
9618 ),
9619 (
9620 "VK_EXT_texel_buffer_alignment",
9621 self.ext_texel_buffer_alignment,
9622 ),
9623 (
9624 "VK_EXT_texture_compression_astc_hdr",
9625 self.ext_texture_compression_astc_hdr,
9626 ),
9627 ("VK_EXT_tooling_info", self.ext_tooling_info),
9628 ("VK_EXT_transform_feedback", self.ext_transform_feedback),
9629 ("VK_EXT_validation_cache", self.ext_validation_cache),
9630 (
9631 "VK_EXT_vertex_attribute_divisor",
9632 self.ext_vertex_attribute_divisor,
9633 ),
9634 (
9635 "VK_EXT_vertex_input_dynamic_state",
9636 self.ext_vertex_input_dynamic_state,
9637 ),
9638 (
9639 "VK_EXT_ycbcr_2plane_444_formats",
9640 self.ext_ycbcr_2plane_444_formats,
9641 ),
9642 ("VK_EXT_ycbcr_image_arrays", self.ext_ycbcr_image_arrays),
9643 ("VK_AMDX_shader_enqueue", self.amdx_shader_enqueue),
9644 ("VK_AMD_buffer_marker", self.amd_buffer_marker),
9645 (
9646 "VK_AMD_device_coherent_memory",
9647 self.amd_device_coherent_memory,
9648 ),
9649 ("VK_AMD_display_native_hdr", self.amd_display_native_hdr),
9650 ("VK_AMD_draw_indirect_count", self.amd_draw_indirect_count),
9651 ("VK_AMD_gcn_shader", self.amd_gcn_shader),
9652 (
9653 "VK_AMD_gpu_shader_half_float",
9654 self.amd_gpu_shader_half_float,
9655 ),
9656 ("VK_AMD_gpu_shader_int16", self.amd_gpu_shader_int16),
9657 (
9658 "VK_AMD_memory_overallocation_behavior",
9659 self.amd_memory_overallocation_behavior,
9660 ),
9661 (
9662 "VK_AMD_mixed_attachment_samples",
9663 self.amd_mixed_attachment_samples,
9664 ),
9665 (
9666 "VK_AMD_pipeline_compiler_control",
9667 self.amd_pipeline_compiler_control,
9668 ),
9669 ("VK_AMD_rasterization_order", self.amd_rasterization_order),
9670 ("VK_AMD_shader_ballot", self.amd_shader_ballot),
9671 (
9672 "VK_AMD_shader_core_properties",
9673 self.amd_shader_core_properties,
9674 ),
9675 (
9676 "VK_AMD_shader_core_properties2",
9677 self.amd_shader_core_properties2,
9678 ),
9679 (
9680 "VK_AMD_shader_early_and_late_fragment_tests",
9681 self.amd_shader_early_and_late_fragment_tests,
9682 ),
9683 (
9684 "VK_AMD_shader_explicit_vertex_parameter",
9685 self.amd_shader_explicit_vertex_parameter,
9686 ),
9687 ("VK_AMD_shader_fragment_mask", self.amd_shader_fragment_mask),
9688 (
9689 "VK_AMD_shader_image_load_store_lod",
9690 self.amd_shader_image_load_store_lod,
9691 ),
9692 ("VK_AMD_shader_info", self.amd_shader_info),
9693 (
9694 "VK_AMD_shader_trinary_minmax",
9695 self.amd_shader_trinary_minmax,
9696 ),
9697 (
9698 "VK_AMD_texture_gather_bias_lod",
9699 self.amd_texture_gather_bias_lod,
9700 ),
9701 (
9702 "VK_ANDROID_external_format_resolve",
9703 self.android_external_format_resolve,
9704 ),
9705 (
9706 "VK_ANDROID_external_memory_android_hardware_buffer",
9707 self.android_external_memory_android_hardware_buffer,
9708 ),
9709 (
9710 "VK_ARM_rasterization_order_attachment_access",
9711 self.arm_rasterization_order_attachment_access,
9712 ),
9713 ("VK_ARM_render_pass_striped", self.arm_render_pass_striped),
9714 ("VK_ARM_scheduling_controls", self.arm_scheduling_controls),
9715 ("VK_ARM_shader_core_builtins", self.arm_shader_core_builtins),
9716 (
9717 "VK_ARM_shader_core_properties",
9718 self.arm_shader_core_properties,
9719 ),
9720 (
9721 "VK_FUCHSIA_buffer_collection",
9722 self.fuchsia_buffer_collection,
9723 ),
9724 ("VK_FUCHSIA_external_memory", self.fuchsia_external_memory),
9725 (
9726 "VK_FUCHSIA_external_semaphore",
9727 self.fuchsia_external_semaphore,
9728 ),
9729 ("VK_GGP_frame_token", self.ggp_frame_token),
9730 ("VK_GOOGLE_decorate_string", self.google_decorate_string),
9731 ("VK_GOOGLE_display_timing", self.google_display_timing),
9732 (
9733 "VK_GOOGLE_hlsl_functionality1",
9734 self.google_hlsl_functionality1,
9735 ),
9736 ("VK_GOOGLE_user_type", self.google_user_type),
9737 (
9738 "VK_HUAWEI_cluster_culling_shader",
9739 self.huawei_cluster_culling_shader,
9740 ),
9741 ("VK_HUAWEI_invocation_mask", self.huawei_invocation_mask),
9742 ("VK_HUAWEI_subpass_shading", self.huawei_subpass_shading),
9743 ("VK_IMG_filter_cubic", self.img_filter_cubic),
9744 ("VK_IMG_format_pvrtc", self.img_format_pvrtc),
9745 (
9746 "VK_IMG_relaxed_line_rasterization",
9747 self.img_relaxed_line_rasterization,
9748 ),
9749 ("VK_INTEL_performance_query", self.intel_performance_query),
9750 (
9751 "VK_INTEL_shader_integer_functions2",
9752 self.intel_shader_integer_functions2,
9753 ),
9754 ("VK_MSFT_layered_driver", self.msft_layered_driver),
9755 ("VK_NVX_binary_import", self.nvx_binary_import),
9756 ("VK_NVX_image_view_handle", self.nvx_image_view_handle),
9757 (
9758 "VK_NVX_multiview_per_view_attributes",
9759 self.nvx_multiview_per_view_attributes,
9760 ),
9761 ("VK_NV_acquire_winrt_display", self.nv_acquire_winrt_display),
9762 ("VK_NV_clip_space_w_scaling", self.nv_clip_space_w_scaling),
9763 (
9764 "VK_NV_compute_shader_derivatives",
9765 self.nv_compute_shader_derivatives,
9766 ),
9767 ("VK_NV_cooperative_matrix", self.nv_cooperative_matrix),
9768 ("VK_NV_copy_memory_indirect", self.nv_copy_memory_indirect),
9769 ("VK_NV_corner_sampled_image", self.nv_corner_sampled_image),
9770 (
9771 "VK_NV_coverage_reduction_mode",
9772 self.nv_coverage_reduction_mode,
9773 ),
9774 ("VK_NV_cuda_kernel_launch", self.nv_cuda_kernel_launch),
9775 ("VK_NV_dedicated_allocation", self.nv_dedicated_allocation),
9776 (
9777 "VK_NV_dedicated_allocation_image_aliasing",
9778 self.nv_dedicated_allocation_image_aliasing,
9779 ),
9780 (
9781 "VK_NV_descriptor_pool_overallocation",
9782 self.nv_descriptor_pool_overallocation,
9783 ),
9784 (
9785 "VK_NV_device_diagnostic_checkpoints",
9786 self.nv_device_diagnostic_checkpoints,
9787 ),
9788 (
9789 "VK_NV_device_diagnostics_config",
9790 self.nv_device_diagnostics_config,
9791 ),
9792 (
9793 "VK_NV_device_generated_commands",
9794 self.nv_device_generated_commands,
9795 ),
9796 (
9797 "VK_NV_device_generated_commands_compute",
9798 self.nv_device_generated_commands_compute,
9799 ),
9800 ("VK_NV_displacement_micromap", self.nv_displacement_micromap),
9801 (
9802 "VK_NV_extended_sparse_address_space",
9803 self.nv_extended_sparse_address_space,
9804 ),
9805 ("VK_NV_external_memory", self.nv_external_memory),
9806 ("VK_NV_external_memory_rdma", self.nv_external_memory_rdma),
9807 ("VK_NV_external_memory_win32", self.nv_external_memory_win32),
9808 ("VK_NV_fill_rectangle", self.nv_fill_rectangle),
9809 (
9810 "VK_NV_fragment_coverage_to_color",
9811 self.nv_fragment_coverage_to_color,
9812 ),
9813 (
9814 "VK_NV_fragment_shader_barycentric",
9815 self.nv_fragment_shader_barycentric,
9816 ),
9817 (
9818 "VK_NV_fragment_shading_rate_enums",
9819 self.nv_fragment_shading_rate_enums,
9820 ),
9821 (
9822 "VK_NV_framebuffer_mixed_samples",
9823 self.nv_framebuffer_mixed_samples,
9824 ),
9825 (
9826 "VK_NV_geometry_shader_passthrough",
9827 self.nv_geometry_shader_passthrough,
9828 ),
9829 ("VK_NV_glsl_shader", self.nv_glsl_shader),
9830 (
9831 "VK_NV_inherited_viewport_scissor",
9832 self.nv_inherited_viewport_scissor,
9833 ),
9834 (
9835 "VK_NV_linear_color_attachment",
9836 self.nv_linear_color_attachment,
9837 ),
9838 ("VK_NV_low_latency", self.nv_low_latency),
9839 ("VK_NV_low_latency2", self.nv_low_latency2),
9840 ("VK_NV_memory_decompression", self.nv_memory_decompression),
9841 ("VK_NV_mesh_shader", self.nv_mesh_shader),
9842 ("VK_NV_optical_flow", self.nv_optical_flow),
9843 (
9844 "VK_NV_per_stage_descriptor_set",
9845 self.nv_per_stage_descriptor_set,
9846 ),
9847 ("VK_NV_present_barrier", self.nv_present_barrier),
9848 ("VK_NV_raw_access_chains", self.nv_raw_access_chains),
9849 ("VK_NV_ray_tracing", self.nv_ray_tracing),
9850 (
9851 "VK_NV_ray_tracing_invocation_reorder",
9852 self.nv_ray_tracing_invocation_reorder,
9853 ),
9854 (
9855 "VK_NV_ray_tracing_motion_blur",
9856 self.nv_ray_tracing_motion_blur,
9857 ),
9858 (
9859 "VK_NV_ray_tracing_validation",
9860 self.nv_ray_tracing_validation,
9861 ),
9862 (
9863 "VK_NV_representative_fragment_test",
9864 self.nv_representative_fragment_test,
9865 ),
9866 (
9867 "VK_NV_sample_mask_override_coverage",
9868 self.nv_sample_mask_override_coverage,
9869 ),
9870 ("VK_NV_scissor_exclusive", self.nv_scissor_exclusive),
9871 (
9872 "VK_NV_shader_atomic_float16_vector",
9873 self.nv_shader_atomic_float16_vector,
9874 ),
9875 (
9876 "VK_NV_shader_image_footprint",
9877 self.nv_shader_image_footprint,
9878 ),
9879 ("VK_NV_shader_sm_builtins", self.nv_shader_sm_builtins),
9880 (
9881 "VK_NV_shader_subgroup_partitioned",
9882 self.nv_shader_subgroup_partitioned,
9883 ),
9884 ("VK_NV_shading_rate_image", self.nv_shading_rate_image),
9885 ("VK_NV_viewport_array2", self.nv_viewport_array2),
9886 ("VK_NV_viewport_swizzle", self.nv_viewport_swizzle),
9887 ("VK_NV_win32_keyed_mutex", self.nv_win32_keyed_mutex),
9888 ("VK_QCOM_filter_cubic_clamp", self.qcom_filter_cubic_clamp),
9889 (
9890 "VK_QCOM_filter_cubic_weights",
9891 self.qcom_filter_cubic_weights,
9892 ),
9893 (
9894 "VK_QCOM_fragment_density_map_offset",
9895 self.qcom_fragment_density_map_offset,
9896 ),
9897 ("VK_QCOM_image_processing", self.qcom_image_processing),
9898 ("VK_QCOM_image_processing2", self.qcom_image_processing2),
9899 (
9900 "VK_QCOM_multiview_per_view_render_areas",
9901 self.qcom_multiview_per_view_render_areas,
9902 ),
9903 (
9904 "VK_QCOM_multiview_per_view_viewports",
9905 self.qcom_multiview_per_view_viewports,
9906 ),
9907 (
9908 "VK_QCOM_render_pass_shader_resolve",
9909 self.qcom_render_pass_shader_resolve,
9910 ),
9911 (
9912 "VK_QCOM_render_pass_store_ops",
9913 self.qcom_render_pass_store_ops,
9914 ),
9915 (
9916 "VK_QCOM_render_pass_transform",
9917 self.qcom_render_pass_transform,
9918 ),
9919 (
9920 "VK_QCOM_rotated_copy_commands",
9921 self.qcom_rotated_copy_commands,
9922 ),
9923 ("VK_QCOM_tile_properties", self.qcom_tile_properties),
9924 ("VK_QCOM_ycbcr_degamma", self.qcom_ycbcr_degamma),
9925 (
9926 "VK_QNX_external_memory_screen_buffer",
9927 self.qnx_external_memory_screen_buffer,
9928 ),
9929 ("VK_SEC_amigo_profiling", self.sec_amigo_profiling),
9930 (
9931 "VK_VALVE_descriptor_set_host_mapping",
9932 self.valve_descriptor_set_host_mapping,
9933 ),
9934 (
9935 "VK_VALVE_mutable_descriptor_type",
9936 self.valve_mutable_descriptor_type,
9937 ),
9938 ]
9939 .into_iter()
9940 }
9941}
9942impl DeviceExtensions {
9943 #[doc = r" Checks enabled extensions against the physical device support,"]
9944 #[doc = r" and checks for required API version and instance extensions."]
9945 pub(super) fn check_requirements(
9946 &self,
9947 supported: &DeviceExtensions,
9948 api_version: crate::Version,
9949 instance_extensions: &crate::instance::InstanceExtensions,
9950 ) -> Result<(), Box<crate::ValidationError>> {
9951 if self.khr_16bit_storage {
9952 if !supported.khr_16bit_storage {
9953 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_16bit_storage`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
9954 }
9955 if !(api_version >= crate::Version::V1_1
9956 || instance_extensions.khr_get_physical_device_properties2)
9957 {
9958 return Err(Box::new(crate::ValidationError {
9959 problem: "contains `khr_16bit_storage`".into(),
9960 requires_one_of: crate::RequiresOneOf(&[
9961 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
9962 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
9963 "khr_get_physical_device_properties2",
9964 )]),
9965 ]),
9966 ..Default::default()
9967 }));
9968 }
9969 }
9970 if self.khr_8bit_storage {
9971 if !supported.khr_8bit_storage {
9972 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_8bit_storage`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
9973 }
9974 if !(api_version >= crate::Version::V1_1
9975 || instance_extensions.khr_get_physical_device_properties2)
9976 {
9977 return Err(Box::new(crate::ValidationError {
9978 problem: "contains `khr_8bit_storage`".into(),
9979 requires_one_of: crate::RequiresOneOf(&[
9980 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
9981 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
9982 "khr_get_physical_device_properties2",
9983 )]),
9984 ]),
9985 ..Default::default()
9986 }));
9987 }
9988 }
9989 if self.khr_acceleration_structure {
9990 if !supported.khr_acceleration_structure {
9991 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_acceleration_structure`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
9992 }
9993 if !(api_version >= crate::Version::V1_1) {
9994 return Err(Box::new(crate::ValidationError {
9995 problem: "contains `khr_acceleration_structure`".into(),
9996 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
9997 crate::Requires::APIVersion(crate::Version::V1_1),
9998 ])]),
9999 ..Default::default()
10000 }));
10001 }
10002 }
10003 if self.khr_bind_memory2 {
10004 if !supported.khr_bind_memory2 {
10005 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_bind_memory2`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10006 }
10007 }
10008 if self.khr_buffer_device_address {
10009 if !supported.khr_buffer_device_address {
10010 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_buffer_device_address`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10011 }
10012 if !(api_version >= crate::Version::V1_1
10013 || instance_extensions.khr_get_physical_device_properties2)
10014 {
10015 return Err(Box::new(crate::ValidationError {
10016 problem: "contains `khr_buffer_device_address`".into(),
10017 requires_one_of: crate::RequiresOneOf(&[
10018 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10019 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10020 "khr_get_physical_device_properties2",
10021 )]),
10022 ]),
10023 ..Default::default()
10024 }));
10025 }
10026 }
10027 if self.khr_calibrated_timestamps {
10028 if !supported.khr_calibrated_timestamps {
10029 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_calibrated_timestamps`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10030 }
10031 if !(api_version >= crate::Version::V1_1
10032 || instance_extensions.khr_get_physical_device_properties2)
10033 {
10034 return Err(Box::new(crate::ValidationError {
10035 problem: "contains `khr_calibrated_timestamps`".into(),
10036 requires_one_of: crate::RequiresOneOf(&[
10037 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10038 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10039 "khr_get_physical_device_properties2",
10040 )]),
10041 ]),
10042 ..Default::default()
10043 }));
10044 }
10045 }
10046 if self.khr_cooperative_matrix {
10047 if !supported.khr_cooperative_matrix {
10048 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_cooperative_matrix`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10049 }
10050 if !(api_version >= crate::Version::V1_1
10051 || instance_extensions.khr_get_physical_device_properties2)
10052 {
10053 return Err(Box::new(crate::ValidationError {
10054 problem: "contains `khr_cooperative_matrix`".into(),
10055 requires_one_of: crate::RequiresOneOf(&[
10056 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10057 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10058 "khr_get_physical_device_properties2",
10059 )]),
10060 ]),
10061 ..Default::default()
10062 }));
10063 }
10064 }
10065 if self.khr_copy_commands2 {
10066 if !supported.khr_copy_commands2 {
10067 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_copy_commands2`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10068 }
10069 if !(api_version >= crate::Version::V1_1
10070 || instance_extensions.khr_get_physical_device_properties2)
10071 {
10072 return Err(Box::new(crate::ValidationError {
10073 problem: "contains `khr_copy_commands2`".into(),
10074 requires_one_of: crate::RequiresOneOf(&[
10075 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10076 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10077 "khr_get_physical_device_properties2",
10078 )]),
10079 ]),
10080 ..Default::default()
10081 }));
10082 }
10083 }
10084 if self.khr_create_renderpass2 {
10085 if !supported.khr_create_renderpass2 {
10086 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_create_renderpass2`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10087 }
10088 }
10089 if self.khr_dedicated_allocation {
10090 if !supported.khr_dedicated_allocation {
10091 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_dedicated_allocation`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10092 }
10093 }
10094 if self.khr_deferred_host_operations {
10095 if !supported.khr_deferred_host_operations {
10096 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_deferred_host_operations`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10097 }
10098 }
10099 if self.khr_depth_stencil_resolve {
10100 if !supported.khr_depth_stencil_resolve {
10101 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_depth_stencil_resolve`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10102 }
10103 }
10104 if self.khr_descriptor_update_template {
10105 if !supported.khr_descriptor_update_template {
10106 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_descriptor_update_template`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10107 }
10108 }
10109 if self.khr_device_group {
10110 if !supported.khr_device_group {
10111 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_device_group`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10112 }
10113 if !(api_version >= crate::Version::V1_1
10114 || instance_extensions.khr_device_group_creation)
10115 {
10116 return Err(Box::new(crate::ValidationError {
10117 problem: "contains `khr_device_group`".into(),
10118 requires_one_of: crate::RequiresOneOf(&[
10119 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10120 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10121 "khr_device_group_creation",
10122 )]),
10123 ]),
10124 ..Default::default()
10125 }));
10126 }
10127 }
10128 if self.khr_display_swapchain {
10129 if !supported.khr_display_swapchain {
10130 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_display_swapchain`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10131 }
10132 if !(instance_extensions.khr_display) {
10133 return Err(Box::new(crate::ValidationError {
10134 problem: "contains `khr_display_swapchain`".into(),
10135 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
10136 crate::Requires::InstanceExtension("khr_display"),
10137 ])]),
10138 ..Default::default()
10139 }));
10140 }
10141 }
10142 if self.khr_draw_indirect_count {
10143 if !supported.khr_draw_indirect_count {
10144 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_draw_indirect_count`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10145 }
10146 }
10147 if self.khr_driver_properties {
10148 if !supported.khr_driver_properties {
10149 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_driver_properties`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10150 }
10151 if !(api_version >= crate::Version::V1_1
10152 || instance_extensions.khr_get_physical_device_properties2)
10153 {
10154 return Err(Box::new(crate::ValidationError {
10155 problem: "contains `khr_driver_properties`".into(),
10156 requires_one_of: crate::RequiresOneOf(&[
10157 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10158 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10159 "khr_get_physical_device_properties2",
10160 )]),
10161 ]),
10162 ..Default::default()
10163 }));
10164 }
10165 }
10166 if self.khr_dynamic_rendering {
10167 if !supported.khr_dynamic_rendering {
10168 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_dynamic_rendering`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10169 }
10170 if !(api_version >= crate::Version::V1_1
10171 || instance_extensions.khr_get_physical_device_properties2)
10172 {
10173 return Err(Box::new(crate::ValidationError {
10174 problem: "contains `khr_dynamic_rendering`".into(),
10175 requires_one_of: crate::RequiresOneOf(&[
10176 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10177 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10178 "khr_get_physical_device_properties2",
10179 )]),
10180 ]),
10181 ..Default::default()
10182 }));
10183 }
10184 }
10185 if self.khr_dynamic_rendering_local_read {
10186 if !supported.khr_dynamic_rendering_local_read {
10187 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_dynamic_rendering_local_read`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10188 }
10189 }
10190 if self.khr_external_fence {
10191 if !supported.khr_external_fence {
10192 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_external_fence`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10193 }
10194 if !(api_version >= crate::Version::V1_1
10195 || instance_extensions.khr_external_fence_capabilities)
10196 {
10197 return Err(Box::new(crate::ValidationError {
10198 problem: "contains `khr_external_fence`".into(),
10199 requires_one_of: crate::RequiresOneOf(&[
10200 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10201 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10202 "khr_external_fence_capabilities",
10203 )]),
10204 ]),
10205 ..Default::default()
10206 }));
10207 }
10208 }
10209 if self.khr_external_fence_fd {
10210 if !supported.khr_external_fence_fd {
10211 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_external_fence_fd`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10212 }
10213 }
10214 if self.khr_external_fence_win32 {
10215 if !supported.khr_external_fence_win32 {
10216 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_external_fence_win32`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10217 }
10218 }
10219 if self.khr_external_memory {
10220 if !supported.khr_external_memory {
10221 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_external_memory`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10222 }
10223 if !(api_version >= crate::Version::V1_1
10224 || instance_extensions.khr_external_memory_capabilities)
10225 {
10226 return Err(Box::new(crate::ValidationError {
10227 problem: "contains `khr_external_memory`".into(),
10228 requires_one_of: crate::RequiresOneOf(&[
10229 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10230 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10231 "khr_external_memory_capabilities",
10232 )]),
10233 ]),
10234 ..Default::default()
10235 }));
10236 }
10237 }
10238 if self.khr_external_memory_fd {
10239 if !supported.khr_external_memory_fd {
10240 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_external_memory_fd`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10241 }
10242 }
10243 if self.khr_external_memory_win32 {
10244 if !supported.khr_external_memory_win32 {
10245 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_external_memory_win32`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10246 }
10247 }
10248 if self.khr_external_semaphore {
10249 if !supported.khr_external_semaphore {
10250 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_external_semaphore`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10251 }
10252 if !(api_version >= crate::Version::V1_1
10253 || instance_extensions.khr_external_semaphore_capabilities)
10254 {
10255 return Err(Box::new(crate::ValidationError {
10256 problem: "contains `khr_external_semaphore`".into(),
10257 requires_one_of: crate::RequiresOneOf(&[
10258 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10259 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10260 "khr_external_semaphore_capabilities",
10261 )]),
10262 ]),
10263 ..Default::default()
10264 }));
10265 }
10266 }
10267 if self.khr_external_semaphore_fd {
10268 if !supported.khr_external_semaphore_fd {
10269 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_external_semaphore_fd`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10270 }
10271 }
10272 if self.khr_external_semaphore_win32 {
10273 if !supported.khr_external_semaphore_win32 {
10274 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_external_semaphore_win32`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10275 }
10276 }
10277 if self.khr_format_feature_flags2 {
10278 if !supported.khr_format_feature_flags2 {
10279 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_format_feature_flags2`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10280 }
10281 if !(api_version >= crate::Version::V1_1
10282 || instance_extensions.khr_get_physical_device_properties2)
10283 {
10284 return Err(Box::new(crate::ValidationError {
10285 problem: "contains `khr_format_feature_flags2`".into(),
10286 requires_one_of: crate::RequiresOneOf(&[
10287 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10288 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10289 "khr_get_physical_device_properties2",
10290 )]),
10291 ]),
10292 ..Default::default()
10293 }));
10294 }
10295 }
10296 if self.khr_fragment_shader_barycentric {
10297 if !supported.khr_fragment_shader_barycentric {
10298 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_fragment_shader_barycentric`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10299 }
10300 if !(api_version >= crate::Version::V1_1
10301 || instance_extensions.khr_get_physical_device_properties2)
10302 {
10303 return Err(Box::new(crate::ValidationError {
10304 problem: "contains `khr_fragment_shader_barycentric`".into(),
10305 requires_one_of: crate::RequiresOneOf(&[
10306 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10307 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10308 "khr_get_physical_device_properties2",
10309 )]),
10310 ]),
10311 ..Default::default()
10312 }));
10313 }
10314 }
10315 if self.khr_fragment_shading_rate {
10316 if !supported.khr_fragment_shading_rate {
10317 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_fragment_shading_rate`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10318 }
10319 if !(api_version >= crate::Version::V1_1
10320 || instance_extensions.khr_get_physical_device_properties2)
10321 {
10322 return Err(Box::new(crate::ValidationError {
10323 problem: "contains `khr_fragment_shading_rate`".into(),
10324 requires_one_of: crate::RequiresOneOf(&[
10325 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10326 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10327 "khr_get_physical_device_properties2",
10328 )]),
10329 ]),
10330 ..Default::default()
10331 }));
10332 }
10333 }
10334 if self.khr_get_memory_requirements2 {
10335 if !supported.khr_get_memory_requirements2 {
10336 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_get_memory_requirements2`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10337 }
10338 }
10339 if self.khr_global_priority {
10340 if !supported.khr_global_priority {
10341 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_global_priority`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10342 }
10343 if !(api_version >= crate::Version::V1_1
10344 || instance_extensions.khr_get_physical_device_properties2)
10345 {
10346 return Err(Box::new(crate::ValidationError {
10347 problem: "contains `khr_global_priority`".into(),
10348 requires_one_of: crate::RequiresOneOf(&[
10349 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10350 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10351 "khr_get_physical_device_properties2",
10352 )]),
10353 ]),
10354 ..Default::default()
10355 }));
10356 }
10357 }
10358 if self.khr_image_format_list {
10359 if !supported.khr_image_format_list {
10360 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_image_format_list`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10361 }
10362 }
10363 if self.khr_imageless_framebuffer {
10364 if !supported.khr_imageless_framebuffer {
10365 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_imageless_framebuffer`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10366 }
10367 if !(api_version >= crate::Version::V1_1
10368 || instance_extensions.khr_get_physical_device_properties2)
10369 {
10370 return Err(Box::new(crate::ValidationError {
10371 problem: "contains `khr_imageless_framebuffer`".into(),
10372 requires_one_of: crate::RequiresOneOf(&[
10373 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10374 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10375 "khr_get_physical_device_properties2",
10376 )]),
10377 ]),
10378 ..Default::default()
10379 }));
10380 }
10381 }
10382 if self.khr_incremental_present {
10383 if !supported.khr_incremental_present {
10384 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_incremental_present`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10385 }
10386 }
10387 if self.khr_index_type_uint8 {
10388 if !supported.khr_index_type_uint8 {
10389 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_index_type_uint8`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10390 }
10391 if !(api_version >= crate::Version::V1_1
10392 || instance_extensions.khr_get_physical_device_properties2)
10393 {
10394 return Err(Box::new(crate::ValidationError {
10395 problem: "contains `khr_index_type_uint8`".into(),
10396 requires_one_of: crate::RequiresOneOf(&[
10397 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10398 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10399 "khr_get_physical_device_properties2",
10400 )]),
10401 ]),
10402 ..Default::default()
10403 }));
10404 }
10405 }
10406 if self.khr_line_rasterization {
10407 if !supported.khr_line_rasterization {
10408 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_line_rasterization`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10409 }
10410 if !(api_version >= crate::Version::V1_1
10411 || instance_extensions.khr_get_physical_device_properties2)
10412 {
10413 return Err(Box::new(crate::ValidationError {
10414 problem: "contains `khr_line_rasterization`".into(),
10415 requires_one_of: crate::RequiresOneOf(&[
10416 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10417 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10418 "khr_get_physical_device_properties2",
10419 )]),
10420 ]),
10421 ..Default::default()
10422 }));
10423 }
10424 }
10425 if self.khr_load_store_op_none {
10426 if !supported.khr_load_store_op_none {
10427 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_load_store_op_none`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10428 }
10429 }
10430 if self.khr_maintenance1 {
10431 if !supported.khr_maintenance1 {
10432 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_maintenance1`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10433 }
10434 }
10435 if self.khr_maintenance2 {
10436 if !supported.khr_maintenance2 {
10437 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_maintenance2`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10438 }
10439 }
10440 if self.khr_maintenance3 {
10441 if !supported.khr_maintenance3 {
10442 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_maintenance3`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10443 }
10444 if !(api_version >= crate::Version::V1_1
10445 || instance_extensions.khr_get_physical_device_properties2)
10446 {
10447 return Err(Box::new(crate::ValidationError {
10448 problem: "contains `khr_maintenance3`".into(),
10449 requires_one_of: crate::RequiresOneOf(&[
10450 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10451 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10452 "khr_get_physical_device_properties2",
10453 )]),
10454 ]),
10455 ..Default::default()
10456 }));
10457 }
10458 }
10459 if self.khr_maintenance4 {
10460 if !supported.khr_maintenance4 {
10461 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_maintenance4`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10462 }
10463 if !(api_version >= crate::Version::V1_1) {
10464 return Err(Box::new(crate::ValidationError {
10465 problem: "contains `khr_maintenance4`".into(),
10466 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
10467 crate::Requires::APIVersion(crate::Version::V1_1),
10468 ])]),
10469 ..Default::default()
10470 }));
10471 }
10472 }
10473 if self.khr_maintenance5 {
10474 if !supported.khr_maintenance5 {
10475 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_maintenance5`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10476 }
10477 if !(api_version >= crate::Version::V1_1) {
10478 return Err(Box::new(crate::ValidationError {
10479 problem: "contains `khr_maintenance5`".into(),
10480 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
10481 crate::Requires::APIVersion(crate::Version::V1_1),
10482 ])]),
10483 ..Default::default()
10484 }));
10485 }
10486 }
10487 if self.khr_maintenance6 {
10488 if !supported.khr_maintenance6 {
10489 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_maintenance6`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10490 }
10491 if !(api_version >= crate::Version::V1_1) {
10492 return Err(Box::new(crate::ValidationError {
10493 problem: "contains `khr_maintenance6`".into(),
10494 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
10495 crate::Requires::APIVersion(crate::Version::V1_1),
10496 ])]),
10497 ..Default::default()
10498 }));
10499 }
10500 }
10501 if self.khr_map_memory2 {
10502 if !supported.khr_map_memory2 {
10503 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_map_memory2`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10504 }
10505 }
10506 if self.khr_multiview {
10507 if !supported.khr_multiview {
10508 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_multiview`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10509 }
10510 if !(api_version >= crate::Version::V1_1
10511 || instance_extensions.khr_get_physical_device_properties2)
10512 {
10513 return Err(Box::new(crate::ValidationError {
10514 problem: "contains `khr_multiview`".into(),
10515 requires_one_of: crate::RequiresOneOf(&[
10516 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10517 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10518 "khr_get_physical_device_properties2",
10519 )]),
10520 ]),
10521 ..Default::default()
10522 }));
10523 }
10524 }
10525 if self.khr_performance_query {
10526 if !supported.khr_performance_query {
10527 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_performance_query`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10528 }
10529 if !(api_version >= crate::Version::V1_1
10530 || instance_extensions.khr_get_physical_device_properties2)
10531 {
10532 return Err(Box::new(crate::ValidationError {
10533 problem: "contains `khr_performance_query`".into(),
10534 requires_one_of: crate::RequiresOneOf(&[
10535 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10536 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10537 "khr_get_physical_device_properties2",
10538 )]),
10539 ]),
10540 ..Default::default()
10541 }));
10542 }
10543 }
10544 if self.khr_pipeline_executable_properties {
10545 if !supported.khr_pipeline_executable_properties {
10546 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_pipeline_executable_properties`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10547 }
10548 if !(api_version >= crate::Version::V1_1
10549 || instance_extensions.khr_get_physical_device_properties2)
10550 {
10551 return Err(Box::new(crate::ValidationError {
10552 problem: "contains `khr_pipeline_executable_properties`".into(),
10553 requires_one_of: crate::RequiresOneOf(&[
10554 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10555 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10556 "khr_get_physical_device_properties2",
10557 )]),
10558 ]),
10559 ..Default::default()
10560 }));
10561 }
10562 }
10563 if self.khr_pipeline_library {
10564 if !supported.khr_pipeline_library {
10565 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_pipeline_library`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10566 }
10567 }
10568 if self.khr_portability_subset {
10569 if !supported.khr_portability_subset {
10570 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_portability_subset`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10571 }
10572 if !(api_version >= crate::Version::V1_1
10573 || instance_extensions.khr_get_physical_device_properties2)
10574 {
10575 return Err(Box::new(crate::ValidationError {
10576 problem: "contains `khr_portability_subset`".into(),
10577 requires_one_of: crate::RequiresOneOf(&[
10578 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10579 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10580 "khr_get_physical_device_properties2",
10581 )]),
10582 ]),
10583 ..Default::default()
10584 }));
10585 }
10586 }
10587 if self.khr_present_id {
10588 if !supported.khr_present_id {
10589 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_present_id`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10590 }
10591 if !(api_version >= crate::Version::V1_1
10592 || instance_extensions.khr_get_physical_device_properties2)
10593 {
10594 return Err(Box::new(crate::ValidationError {
10595 problem: "contains `khr_present_id`".into(),
10596 requires_one_of: crate::RequiresOneOf(&[
10597 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10598 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10599 "khr_get_physical_device_properties2",
10600 )]),
10601 ]),
10602 ..Default::default()
10603 }));
10604 }
10605 }
10606 if self.khr_present_wait {
10607 if !supported.khr_present_wait {
10608 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_present_wait`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10609 }
10610 }
10611 if self.khr_push_descriptor {
10612 if !supported.khr_push_descriptor {
10613 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_push_descriptor`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10614 }
10615 if !(api_version >= crate::Version::V1_1
10616 || instance_extensions.khr_get_physical_device_properties2)
10617 {
10618 return Err(Box::new(crate::ValidationError {
10619 problem: "contains `khr_push_descriptor`".into(),
10620 requires_one_of: crate::RequiresOneOf(&[
10621 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10622 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10623 "khr_get_physical_device_properties2",
10624 )]),
10625 ]),
10626 ..Default::default()
10627 }));
10628 }
10629 }
10630 if self.khr_ray_query {
10631 if !supported.khr_ray_query {
10632 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_ray_query`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10633 }
10634 }
10635 if self.khr_ray_tracing_maintenance1 {
10636 if !supported.khr_ray_tracing_maintenance1 {
10637 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_ray_tracing_maintenance1`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10638 }
10639 }
10640 if self.khr_ray_tracing_pipeline {
10641 if !supported.khr_ray_tracing_pipeline {
10642 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_ray_tracing_pipeline`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10643 }
10644 }
10645 if self.khr_ray_tracing_position_fetch {
10646 if !supported.khr_ray_tracing_position_fetch {
10647 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_ray_tracing_position_fetch`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10648 }
10649 }
10650 if self.khr_relaxed_block_layout {
10651 if !supported.khr_relaxed_block_layout {
10652 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_relaxed_block_layout`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10653 }
10654 }
10655 if self.khr_sampler_mirror_clamp_to_edge {
10656 if !supported.khr_sampler_mirror_clamp_to_edge {
10657 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_sampler_mirror_clamp_to_edge`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10658 }
10659 }
10660 if self.khr_sampler_ycbcr_conversion {
10661 if !supported.khr_sampler_ycbcr_conversion {
10662 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_sampler_ycbcr_conversion`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10663 }
10664 if !(api_version >= crate::Version::V1_1
10665 || instance_extensions.khr_get_physical_device_properties2)
10666 {
10667 return Err(Box::new(crate::ValidationError {
10668 problem: "contains `khr_sampler_ycbcr_conversion`".into(),
10669 requires_one_of: crate::RequiresOneOf(&[
10670 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10671 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10672 "khr_get_physical_device_properties2",
10673 )]),
10674 ]),
10675 ..Default::default()
10676 }));
10677 }
10678 }
10679 if self.khr_separate_depth_stencil_layouts {
10680 if !supported.khr_separate_depth_stencil_layouts {
10681 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_separate_depth_stencil_layouts`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10682 }
10683 if !(api_version >= crate::Version::V1_1
10684 || instance_extensions.khr_get_physical_device_properties2)
10685 {
10686 return Err(Box::new(crate::ValidationError {
10687 problem: "contains `khr_separate_depth_stencil_layouts`".into(),
10688 requires_one_of: crate::RequiresOneOf(&[
10689 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10690 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10691 "khr_get_physical_device_properties2",
10692 )]),
10693 ]),
10694 ..Default::default()
10695 }));
10696 }
10697 }
10698 if self.khr_shader_atomic_int64 {
10699 if !supported.khr_shader_atomic_int64 {
10700 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_shader_atomic_int64`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10701 }
10702 if !(api_version >= crate::Version::V1_1
10703 || instance_extensions.khr_get_physical_device_properties2)
10704 {
10705 return Err(Box::new(crate::ValidationError {
10706 problem: "contains `khr_shader_atomic_int64`".into(),
10707 requires_one_of: crate::RequiresOneOf(&[
10708 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10709 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10710 "khr_get_physical_device_properties2",
10711 )]),
10712 ]),
10713 ..Default::default()
10714 }));
10715 }
10716 }
10717 if self.khr_shader_clock {
10718 if !supported.khr_shader_clock {
10719 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_shader_clock`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10720 }
10721 if !(api_version >= crate::Version::V1_1
10722 || instance_extensions.khr_get_physical_device_properties2)
10723 {
10724 return Err(Box::new(crate::ValidationError {
10725 problem: "contains `khr_shader_clock`".into(),
10726 requires_one_of: crate::RequiresOneOf(&[
10727 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10728 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10729 "khr_get_physical_device_properties2",
10730 )]),
10731 ]),
10732 ..Default::default()
10733 }));
10734 }
10735 }
10736 if self.khr_shader_draw_parameters {
10737 if !supported.khr_shader_draw_parameters {
10738 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_shader_draw_parameters`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10739 }
10740 }
10741 if self.khr_shader_expect_assume {
10742 if !supported.khr_shader_expect_assume {
10743 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_shader_expect_assume`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10744 }
10745 if !(api_version >= crate::Version::V1_1
10746 || instance_extensions.khr_get_physical_device_properties2)
10747 {
10748 return Err(Box::new(crate::ValidationError {
10749 problem: "contains `khr_shader_expect_assume`".into(),
10750 requires_one_of: crate::RequiresOneOf(&[
10751 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10752 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10753 "khr_get_physical_device_properties2",
10754 )]),
10755 ]),
10756 ..Default::default()
10757 }));
10758 }
10759 }
10760 if self.khr_shader_float16_int8 {
10761 if !supported.khr_shader_float16_int8 {
10762 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_shader_float16_int8`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10763 }
10764 if !(api_version >= crate::Version::V1_1
10765 || instance_extensions.khr_get_physical_device_properties2)
10766 {
10767 return Err(Box::new(crate::ValidationError {
10768 problem: "contains `khr_shader_float16_int8`".into(),
10769 requires_one_of: crate::RequiresOneOf(&[
10770 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10771 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10772 "khr_get_physical_device_properties2",
10773 )]),
10774 ]),
10775 ..Default::default()
10776 }));
10777 }
10778 }
10779 if self.khr_shader_float_controls {
10780 if !supported.khr_shader_float_controls {
10781 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_shader_float_controls`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10782 }
10783 if !(api_version >= crate::Version::V1_1
10784 || instance_extensions.khr_get_physical_device_properties2)
10785 {
10786 return Err(Box::new(crate::ValidationError {
10787 problem: "contains `khr_shader_float_controls`".into(),
10788 requires_one_of: crate::RequiresOneOf(&[
10789 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10790 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10791 "khr_get_physical_device_properties2",
10792 )]),
10793 ]),
10794 ..Default::default()
10795 }));
10796 }
10797 }
10798 if self.khr_shader_float_controls2 {
10799 if !supported.khr_shader_float_controls2 {
10800 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_shader_float_controls2`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10801 }
10802 if !(api_version >= crate::Version::V1_1) {
10803 return Err(Box::new(crate::ValidationError {
10804 problem: "contains `khr_shader_float_controls2`".into(),
10805 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
10806 crate::Requires::APIVersion(crate::Version::V1_1),
10807 ])]),
10808 ..Default::default()
10809 }));
10810 }
10811 }
10812 if self.khr_shader_integer_dot_product {
10813 if !supported.khr_shader_integer_dot_product {
10814 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_shader_integer_dot_product`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10815 }
10816 if !(api_version >= crate::Version::V1_1
10817 || instance_extensions.khr_get_physical_device_properties2)
10818 {
10819 return Err(Box::new(crate::ValidationError {
10820 problem: "contains `khr_shader_integer_dot_product`".into(),
10821 requires_one_of: crate::RequiresOneOf(&[
10822 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10823 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10824 "khr_get_physical_device_properties2",
10825 )]),
10826 ]),
10827 ..Default::default()
10828 }));
10829 }
10830 }
10831 if self.khr_shader_maximal_reconvergence {
10832 if !supported.khr_shader_maximal_reconvergence {
10833 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_shader_maximal_reconvergence`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10834 }
10835 if !(api_version >= crate::Version::V1_1) {
10836 return Err(Box::new(crate::ValidationError {
10837 problem: "contains `khr_shader_maximal_reconvergence`".into(),
10838 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
10839 crate::Requires::APIVersion(crate::Version::V1_1),
10840 ])]),
10841 ..Default::default()
10842 }));
10843 }
10844 }
10845 if self.khr_shader_non_semantic_info {
10846 if !supported.khr_shader_non_semantic_info {
10847 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_shader_non_semantic_info`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10848 }
10849 }
10850 if self.khr_shader_quad_control {
10851 if !supported.khr_shader_quad_control {
10852 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_shader_quad_control`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10853 }
10854 if !(api_version >= crate::Version::V1_1) {
10855 return Err(Box::new(crate::ValidationError {
10856 problem: "contains `khr_shader_quad_control`".into(),
10857 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
10858 crate::Requires::APIVersion(crate::Version::V1_1),
10859 ])]),
10860 ..Default::default()
10861 }));
10862 }
10863 }
10864 if self.khr_shader_subgroup_extended_types {
10865 if !supported.khr_shader_subgroup_extended_types {
10866 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_shader_subgroup_extended_types`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10867 }
10868 if !(api_version >= crate::Version::V1_1) {
10869 return Err(Box::new(crate::ValidationError {
10870 problem: "contains `khr_shader_subgroup_extended_types`".into(),
10871 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
10872 crate::Requires::APIVersion(crate::Version::V1_1),
10873 ])]),
10874 ..Default::default()
10875 }));
10876 }
10877 }
10878 if self.khr_shader_subgroup_rotate {
10879 if !supported.khr_shader_subgroup_rotate {
10880 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_shader_subgroup_rotate`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10881 }
10882 }
10883 if self.khr_shader_subgroup_uniform_control_flow {
10884 if !supported.khr_shader_subgroup_uniform_control_flow {
10885 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_shader_subgroup_uniform_control_flow`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10886 }
10887 if !(api_version >= crate::Version::V1_1) {
10888 return Err(Box::new(crate::ValidationError {
10889 problem: "contains `khr_shader_subgroup_uniform_control_flow`".into(),
10890 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
10891 crate::Requires::APIVersion(crate::Version::V1_1),
10892 ])]),
10893 ..Default::default()
10894 }));
10895 }
10896 }
10897 if self.khr_shader_terminate_invocation {
10898 if !supported.khr_shader_terminate_invocation {
10899 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_shader_terminate_invocation`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10900 }
10901 if !(api_version >= crate::Version::V1_1
10902 || instance_extensions.khr_get_physical_device_properties2)
10903 {
10904 return Err(Box::new(crate::ValidationError {
10905 problem: "contains `khr_shader_terminate_invocation`".into(),
10906 requires_one_of: crate::RequiresOneOf(&[
10907 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10908 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10909 "khr_get_physical_device_properties2",
10910 )]),
10911 ]),
10912 ..Default::default()
10913 }));
10914 }
10915 }
10916 if self.khr_shared_presentable_image {
10917 if !supported.khr_shared_presentable_image {
10918 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_shared_presentable_image`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10919 }
10920 if !(instance_extensions.khr_get_surface_capabilities2) {
10921 return Err(Box::new(crate::ValidationError {
10922 problem: "contains `khr_shared_presentable_image`".into(),
10923 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
10924 crate::Requires::InstanceExtension("khr_get_surface_capabilities2"),
10925 ])]),
10926 ..Default::default()
10927 }));
10928 }
10929 if !(api_version >= crate::Version::V1_1
10930 || instance_extensions.khr_get_physical_device_properties2)
10931 {
10932 return Err(Box::new(crate::ValidationError {
10933 problem: "contains `khr_shared_presentable_image`".into(),
10934 requires_one_of: crate::RequiresOneOf(&[
10935 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10936 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10937 "khr_get_physical_device_properties2",
10938 )]),
10939 ]),
10940 ..Default::default()
10941 }));
10942 }
10943 }
10944 if self.khr_spirv_1_4 {
10945 if !supported.khr_spirv_1_4 {
10946 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_spirv_1_4`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10947 }
10948 if !(api_version >= crate::Version::V1_1) {
10949 return Err(Box::new(crate::ValidationError {
10950 problem: "contains `khr_spirv_1_4`".into(),
10951 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
10952 crate::Requires::APIVersion(crate::Version::V1_1),
10953 ])]),
10954 ..Default::default()
10955 }));
10956 }
10957 }
10958 if self.khr_storage_buffer_storage_class {
10959 if !supported.khr_storage_buffer_storage_class {
10960 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_storage_buffer_storage_class`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10961 }
10962 }
10963 if self.khr_swapchain {
10964 if !supported.khr_swapchain {
10965 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_swapchain`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10966 }
10967 if !(instance_extensions.khr_surface) {
10968 return Err(Box::new(crate::ValidationError {
10969 problem: "contains `khr_swapchain`".into(),
10970 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
10971 crate::Requires::InstanceExtension("khr_surface"),
10972 ])]),
10973 ..Default::default()
10974 }));
10975 }
10976 }
10977 if self.khr_swapchain_mutable_format {
10978 if !supported.khr_swapchain_mutable_format {
10979 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_swapchain_mutable_format`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10980 }
10981 }
10982 if self.khr_synchronization2 {
10983 if !supported.khr_synchronization2 {
10984 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_synchronization2`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
10985 }
10986 if !(api_version >= crate::Version::V1_1
10987 || instance_extensions.khr_get_physical_device_properties2)
10988 {
10989 return Err(Box::new(crate::ValidationError {
10990 problem: "contains `khr_synchronization2`".into(),
10991 requires_one_of: crate::RequiresOneOf(&[
10992 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
10993 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
10994 "khr_get_physical_device_properties2",
10995 )]),
10996 ]),
10997 ..Default::default()
10998 }));
10999 }
11000 }
11001 if self.khr_timeline_semaphore {
11002 if !supported.khr_timeline_semaphore {
11003 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_timeline_semaphore`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11004 }
11005 if !(api_version >= crate::Version::V1_1
11006 || instance_extensions.khr_get_physical_device_properties2)
11007 {
11008 return Err(Box::new(crate::ValidationError {
11009 problem: "contains `khr_timeline_semaphore`".into(),
11010 requires_one_of: crate::RequiresOneOf(&[
11011 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11012 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11013 "khr_get_physical_device_properties2",
11014 )]),
11015 ]),
11016 ..Default::default()
11017 }));
11018 }
11019 }
11020 if self.khr_uniform_buffer_standard_layout {
11021 if !supported.khr_uniform_buffer_standard_layout {
11022 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_uniform_buffer_standard_layout`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11023 }
11024 if !(api_version >= crate::Version::V1_1
11025 || instance_extensions.khr_get_physical_device_properties2)
11026 {
11027 return Err(Box::new(crate::ValidationError {
11028 problem: "contains `khr_uniform_buffer_standard_layout`".into(),
11029 requires_one_of: crate::RequiresOneOf(&[
11030 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11031 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11032 "khr_get_physical_device_properties2",
11033 )]),
11034 ]),
11035 ..Default::default()
11036 }));
11037 }
11038 }
11039 if self.khr_variable_pointers {
11040 if !supported.khr_variable_pointers {
11041 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_variable_pointers`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11042 }
11043 if !(api_version >= crate::Version::V1_1
11044 || instance_extensions.khr_get_physical_device_properties2)
11045 {
11046 return Err(Box::new(crate::ValidationError {
11047 problem: "contains `khr_variable_pointers`".into(),
11048 requires_one_of: crate::RequiresOneOf(&[
11049 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11050 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11051 "khr_get_physical_device_properties2",
11052 )]),
11053 ]),
11054 ..Default::default()
11055 }));
11056 }
11057 }
11058 if self.khr_vertex_attribute_divisor {
11059 if !supported.khr_vertex_attribute_divisor {
11060 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_vertex_attribute_divisor`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11061 }
11062 if !(api_version >= crate::Version::V1_1
11063 || instance_extensions.khr_get_physical_device_properties2)
11064 {
11065 return Err(Box::new(crate::ValidationError {
11066 problem: "contains `khr_vertex_attribute_divisor`".into(),
11067 requires_one_of: crate::RequiresOneOf(&[
11068 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11069 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11070 "khr_get_physical_device_properties2",
11071 )]),
11072 ]),
11073 ..Default::default()
11074 }));
11075 }
11076 }
11077 if self.khr_video_decode_av1 {
11078 if !supported.khr_video_decode_av1 {
11079 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_video_decode_av1`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11080 }
11081 }
11082 if self.khr_video_decode_h264 {
11083 if !supported.khr_video_decode_h264 {
11084 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_video_decode_h264`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11085 }
11086 }
11087 if self.khr_video_decode_h265 {
11088 if !supported.khr_video_decode_h265 {
11089 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_video_decode_h265`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11090 }
11091 }
11092 if self.khr_video_decode_queue {
11093 if !supported.khr_video_decode_queue {
11094 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_video_decode_queue`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11095 }
11096 }
11097 if self.khr_video_encode_h264 {
11098 if !supported.khr_video_encode_h264 {
11099 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_video_encode_h264`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11100 }
11101 }
11102 if self.khr_video_encode_h265 {
11103 if !supported.khr_video_encode_h265 {
11104 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_video_encode_h265`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11105 }
11106 }
11107 if self.khr_video_encode_queue {
11108 if !supported.khr_video_encode_queue {
11109 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_video_encode_queue`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11110 }
11111 }
11112 if self.khr_video_maintenance1 {
11113 if !supported.khr_video_maintenance1 {
11114 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_video_maintenance1`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11115 }
11116 }
11117 if self.khr_video_queue {
11118 if !supported.khr_video_queue {
11119 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_video_queue`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11120 }
11121 if !(api_version >= crate::Version::V1_1) {
11122 return Err(Box::new(crate::ValidationError {
11123 problem: "contains `khr_video_queue`".into(),
11124 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
11125 crate::Requires::APIVersion(crate::Version::V1_1),
11126 ])]),
11127 ..Default::default()
11128 }));
11129 }
11130 }
11131 if self.khr_vulkan_memory_model {
11132 if !supported.khr_vulkan_memory_model {
11133 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_vulkan_memory_model`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11134 }
11135 if !(api_version >= crate::Version::V1_1
11136 || instance_extensions.khr_get_physical_device_properties2)
11137 {
11138 return Err(Box::new(crate::ValidationError {
11139 problem: "contains `khr_vulkan_memory_model`".into(),
11140 requires_one_of: crate::RequiresOneOf(&[
11141 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11142 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11143 "khr_get_physical_device_properties2",
11144 )]),
11145 ]),
11146 ..Default::default()
11147 }));
11148 }
11149 }
11150 if self.khr_win32_keyed_mutex {
11151 if !supported.khr_win32_keyed_mutex {
11152 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_win32_keyed_mutex`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11153 }
11154 }
11155 if self.khr_workgroup_memory_explicit_layout {
11156 if !supported.khr_workgroup_memory_explicit_layout {
11157 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_workgroup_memory_explicit_layout`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11158 }
11159 if !(api_version >= crate::Version::V1_1
11160 || instance_extensions.khr_get_physical_device_properties2)
11161 {
11162 return Err(Box::new(crate::ValidationError {
11163 problem: "contains `khr_workgroup_memory_explicit_layout`".into(),
11164 requires_one_of: crate::RequiresOneOf(&[
11165 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11166 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11167 "khr_get_physical_device_properties2",
11168 )]),
11169 ]),
11170 ..Default::default()
11171 }));
11172 }
11173 }
11174 if self.khr_zero_initialize_workgroup_memory {
11175 if !supported.khr_zero_initialize_workgroup_memory {
11176 return Err (Box :: new (crate :: ValidationError { problem : "contains `khr_zero_initialize_workgroup_memory`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11177 }
11178 if !(api_version >= crate::Version::V1_1
11179 || instance_extensions.khr_get_physical_device_properties2)
11180 {
11181 return Err(Box::new(crate::ValidationError {
11182 problem: "contains `khr_zero_initialize_workgroup_memory`".into(),
11183 requires_one_of: crate::RequiresOneOf(&[
11184 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11185 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11186 "khr_get_physical_device_properties2",
11187 )]),
11188 ]),
11189 ..Default::default()
11190 }));
11191 }
11192 }
11193 if self.ext_4444_formats {
11194 if !supported.ext_4444_formats {
11195 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_4444_formats`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11196 }
11197 if !(api_version >= crate::Version::V1_1
11198 || instance_extensions.khr_get_physical_device_properties2)
11199 {
11200 return Err(Box::new(crate::ValidationError {
11201 problem: "contains `ext_4444_formats`".into(),
11202 requires_one_of: crate::RequiresOneOf(&[
11203 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11204 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11205 "khr_get_physical_device_properties2",
11206 )]),
11207 ]),
11208 ..Default::default()
11209 }));
11210 }
11211 }
11212 if self.ext_astc_decode_mode {
11213 if !supported.ext_astc_decode_mode {
11214 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_astc_decode_mode`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11215 }
11216 if !(api_version >= crate::Version::V1_1
11217 || instance_extensions.khr_get_physical_device_properties2)
11218 {
11219 return Err(Box::new(crate::ValidationError {
11220 problem: "contains `ext_astc_decode_mode`".into(),
11221 requires_one_of: crate::RequiresOneOf(&[
11222 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11223 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11224 "khr_get_physical_device_properties2",
11225 )]),
11226 ]),
11227 ..Default::default()
11228 }));
11229 }
11230 }
11231 if self.ext_attachment_feedback_loop_dynamic_state {
11232 if !supported.ext_attachment_feedback_loop_dynamic_state {
11233 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_attachment_feedback_loop_dynamic_state`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11234 }
11235 if !(api_version >= crate::Version::V1_1
11236 || instance_extensions.khr_get_physical_device_properties2)
11237 {
11238 return Err(Box::new(crate::ValidationError {
11239 problem: "contains `ext_attachment_feedback_loop_dynamic_state`".into(),
11240 requires_one_of: crate::RequiresOneOf(&[
11241 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11242 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11243 "khr_get_physical_device_properties2",
11244 )]),
11245 ]),
11246 ..Default::default()
11247 }));
11248 }
11249 }
11250 if self.ext_attachment_feedback_loop_layout {
11251 if !supported.ext_attachment_feedback_loop_layout {
11252 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_attachment_feedback_loop_layout`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11253 }
11254 if !(api_version >= crate::Version::V1_1
11255 || instance_extensions.khr_get_physical_device_properties2)
11256 {
11257 return Err(Box::new(crate::ValidationError {
11258 problem: "contains `ext_attachment_feedback_loop_layout`".into(),
11259 requires_one_of: crate::RequiresOneOf(&[
11260 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11261 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11262 "khr_get_physical_device_properties2",
11263 )]),
11264 ]),
11265 ..Default::default()
11266 }));
11267 }
11268 }
11269 if self.ext_blend_operation_advanced {
11270 if !supported.ext_blend_operation_advanced {
11271 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_blend_operation_advanced`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11272 }
11273 if !(api_version >= crate::Version::V1_1
11274 || instance_extensions.khr_get_physical_device_properties2)
11275 {
11276 return Err(Box::new(crate::ValidationError {
11277 problem: "contains `ext_blend_operation_advanced`".into(),
11278 requires_one_of: crate::RequiresOneOf(&[
11279 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11280 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11281 "khr_get_physical_device_properties2",
11282 )]),
11283 ]),
11284 ..Default::default()
11285 }));
11286 }
11287 }
11288 if self.ext_border_color_swizzle {
11289 if !supported.ext_border_color_swizzle {
11290 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_border_color_swizzle`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11291 }
11292 }
11293 if self.ext_buffer_device_address {
11294 if !supported.ext_buffer_device_address {
11295 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_buffer_device_address`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11296 }
11297 if !(api_version >= crate::Version::V1_1
11298 || instance_extensions.khr_get_physical_device_properties2)
11299 {
11300 return Err(Box::new(crate::ValidationError {
11301 problem: "contains `ext_buffer_device_address`".into(),
11302 requires_one_of: crate::RequiresOneOf(&[
11303 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11304 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11305 "khr_get_physical_device_properties2",
11306 )]),
11307 ]),
11308 ..Default::default()
11309 }));
11310 }
11311 }
11312 if self.ext_calibrated_timestamps {
11313 if !supported.ext_calibrated_timestamps {
11314 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_calibrated_timestamps`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11315 }
11316 if !(api_version >= crate::Version::V1_1
11317 || instance_extensions.khr_get_physical_device_properties2)
11318 {
11319 return Err(Box::new(crate::ValidationError {
11320 problem: "contains `ext_calibrated_timestamps`".into(),
11321 requires_one_of: crate::RequiresOneOf(&[
11322 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11323 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11324 "khr_get_physical_device_properties2",
11325 )]),
11326 ]),
11327 ..Default::default()
11328 }));
11329 }
11330 }
11331 if self.ext_color_write_enable {
11332 if !supported.ext_color_write_enable {
11333 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_color_write_enable`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11334 }
11335 if !(api_version >= crate::Version::V1_1
11336 || instance_extensions.khr_get_physical_device_properties2)
11337 {
11338 return Err(Box::new(crate::ValidationError {
11339 problem: "contains `ext_color_write_enable`".into(),
11340 requires_one_of: crate::RequiresOneOf(&[
11341 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11342 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11343 "khr_get_physical_device_properties2",
11344 )]),
11345 ]),
11346 ..Default::default()
11347 }));
11348 }
11349 }
11350 if self.ext_conditional_rendering {
11351 if !supported.ext_conditional_rendering {
11352 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_conditional_rendering`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11353 }
11354 if !(api_version >= crate::Version::V1_1
11355 || instance_extensions.khr_get_physical_device_properties2)
11356 {
11357 return Err(Box::new(crate::ValidationError {
11358 problem: "contains `ext_conditional_rendering`".into(),
11359 requires_one_of: crate::RequiresOneOf(&[
11360 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11361 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11362 "khr_get_physical_device_properties2",
11363 )]),
11364 ]),
11365 ..Default::default()
11366 }));
11367 }
11368 }
11369 if self.ext_conservative_rasterization {
11370 if !supported.ext_conservative_rasterization {
11371 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_conservative_rasterization`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11372 }
11373 if !(api_version >= crate::Version::V1_1
11374 || instance_extensions.khr_get_physical_device_properties2)
11375 {
11376 return Err(Box::new(crate::ValidationError {
11377 problem: "contains `ext_conservative_rasterization`".into(),
11378 requires_one_of: crate::RequiresOneOf(&[
11379 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11380 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11381 "khr_get_physical_device_properties2",
11382 )]),
11383 ]),
11384 ..Default::default()
11385 }));
11386 }
11387 }
11388 if self.ext_custom_border_color {
11389 if !supported.ext_custom_border_color {
11390 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_custom_border_color`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11391 }
11392 if !(api_version >= crate::Version::V1_1
11393 || instance_extensions.khr_get_physical_device_properties2)
11394 {
11395 return Err(Box::new(crate::ValidationError {
11396 problem: "contains `ext_custom_border_color`".into(),
11397 requires_one_of: crate::RequiresOneOf(&[
11398 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11399 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11400 "khr_get_physical_device_properties2",
11401 )]),
11402 ]),
11403 ..Default::default()
11404 }));
11405 }
11406 }
11407 if self.ext_debug_marker {
11408 if !supported.ext_debug_marker {
11409 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_debug_marker`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11410 }
11411 if !(instance_extensions.ext_debug_report) {
11412 return Err(Box::new(crate::ValidationError {
11413 problem: "contains `ext_debug_marker`".into(),
11414 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
11415 crate::Requires::InstanceExtension("ext_debug_report"),
11416 ])]),
11417 ..Default::default()
11418 }));
11419 }
11420 }
11421 if self.ext_depth_bias_control {
11422 if !supported.ext_depth_bias_control {
11423 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_depth_bias_control`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11424 }
11425 if !(api_version >= crate::Version::V1_1
11426 || instance_extensions.khr_get_physical_device_properties2)
11427 {
11428 return Err(Box::new(crate::ValidationError {
11429 problem: "contains `ext_depth_bias_control`".into(),
11430 requires_one_of: crate::RequiresOneOf(&[
11431 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11432 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11433 "khr_get_physical_device_properties2",
11434 )]),
11435 ]),
11436 ..Default::default()
11437 }));
11438 }
11439 }
11440 if self.ext_depth_clamp_zero_one {
11441 if !supported.ext_depth_clamp_zero_one {
11442 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_depth_clamp_zero_one`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11443 }
11444 if !(api_version >= crate::Version::V1_1
11445 || instance_extensions.khr_get_physical_device_properties2)
11446 {
11447 return Err(Box::new(crate::ValidationError {
11448 problem: "contains `ext_depth_clamp_zero_one`".into(),
11449 requires_one_of: crate::RequiresOneOf(&[
11450 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11451 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11452 "khr_get_physical_device_properties2",
11453 )]),
11454 ]),
11455 ..Default::default()
11456 }));
11457 }
11458 }
11459 if self.ext_depth_clip_control {
11460 if !supported.ext_depth_clip_control {
11461 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_depth_clip_control`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11462 }
11463 if !(api_version >= crate::Version::V1_1
11464 || instance_extensions.khr_get_physical_device_properties2)
11465 {
11466 return Err(Box::new(crate::ValidationError {
11467 problem: "contains `ext_depth_clip_control`".into(),
11468 requires_one_of: crate::RequiresOneOf(&[
11469 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11470 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11471 "khr_get_physical_device_properties2",
11472 )]),
11473 ]),
11474 ..Default::default()
11475 }));
11476 }
11477 }
11478 if self.ext_depth_clip_enable {
11479 if !supported.ext_depth_clip_enable {
11480 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_depth_clip_enable`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11481 }
11482 if !(api_version >= crate::Version::V1_1
11483 || instance_extensions.khr_get_physical_device_properties2)
11484 {
11485 return Err(Box::new(crate::ValidationError {
11486 problem: "contains `ext_depth_clip_enable`".into(),
11487 requires_one_of: crate::RequiresOneOf(&[
11488 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11489 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11490 "khr_get_physical_device_properties2",
11491 )]),
11492 ]),
11493 ..Default::default()
11494 }));
11495 }
11496 }
11497 if self.ext_depth_range_unrestricted {
11498 if !supported.ext_depth_range_unrestricted {
11499 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_depth_range_unrestricted`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11500 }
11501 }
11502 if self.ext_descriptor_buffer {
11503 if !supported.ext_descriptor_buffer {
11504 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_descriptor_buffer`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11505 }
11506 if !(api_version >= crate::Version::V1_1
11507 || instance_extensions.khr_get_physical_device_properties2)
11508 {
11509 return Err(Box::new(crate::ValidationError {
11510 problem: "contains `ext_descriptor_buffer`".into(),
11511 requires_one_of: crate::RequiresOneOf(&[
11512 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11513 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11514 "khr_get_physical_device_properties2",
11515 )]),
11516 ]),
11517 ..Default::default()
11518 }));
11519 }
11520 }
11521 if self.ext_descriptor_indexing {
11522 if !supported.ext_descriptor_indexing {
11523 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_descriptor_indexing`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11524 }
11525 if !(api_version >= crate::Version::V1_1
11526 || instance_extensions.khr_get_physical_device_properties2)
11527 {
11528 return Err(Box::new(crate::ValidationError {
11529 problem: "contains `ext_descriptor_indexing`".into(),
11530 requires_one_of: crate::RequiresOneOf(&[
11531 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11532 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11533 "khr_get_physical_device_properties2",
11534 )]),
11535 ]),
11536 ..Default::default()
11537 }));
11538 }
11539 }
11540 if self.ext_device_address_binding_report {
11541 if !supported.ext_device_address_binding_report {
11542 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_device_address_binding_report`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11543 }
11544 if !(api_version >= crate::Version::V1_1
11545 || instance_extensions.khr_get_physical_device_properties2)
11546 {
11547 return Err(Box::new(crate::ValidationError {
11548 problem: "contains `ext_device_address_binding_report`".into(),
11549 requires_one_of: crate::RequiresOneOf(&[
11550 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11551 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11552 "khr_get_physical_device_properties2",
11553 )]),
11554 ]),
11555 ..Default::default()
11556 }));
11557 }
11558 if !(instance_extensions.ext_debug_utils) {
11559 return Err(Box::new(crate::ValidationError {
11560 problem: "contains `ext_device_address_binding_report`".into(),
11561 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
11562 crate::Requires::InstanceExtension("ext_debug_utils"),
11563 ])]),
11564 ..Default::default()
11565 }));
11566 }
11567 }
11568 if self.ext_device_fault {
11569 if !supported.ext_device_fault {
11570 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_device_fault`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11571 }
11572 if !(api_version >= crate::Version::V1_1
11573 || instance_extensions.khr_get_physical_device_properties2)
11574 {
11575 return Err(Box::new(crate::ValidationError {
11576 problem: "contains `ext_device_fault`".into(),
11577 requires_one_of: crate::RequiresOneOf(&[
11578 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11579 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11580 "khr_get_physical_device_properties2",
11581 )]),
11582 ]),
11583 ..Default::default()
11584 }));
11585 }
11586 }
11587 if self.ext_device_memory_report {
11588 if !supported.ext_device_memory_report {
11589 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_device_memory_report`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11590 }
11591 if !(api_version >= crate::Version::V1_1
11592 || instance_extensions.khr_get_physical_device_properties2)
11593 {
11594 return Err(Box::new(crate::ValidationError {
11595 problem: "contains `ext_device_memory_report`".into(),
11596 requires_one_of: crate::RequiresOneOf(&[
11597 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11598 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11599 "khr_get_physical_device_properties2",
11600 )]),
11601 ]),
11602 ..Default::default()
11603 }));
11604 }
11605 }
11606 if self.ext_discard_rectangles {
11607 if !supported.ext_discard_rectangles {
11608 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_discard_rectangles`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11609 }
11610 if !(api_version >= crate::Version::V1_1
11611 || instance_extensions.khr_get_physical_device_properties2)
11612 {
11613 return Err(Box::new(crate::ValidationError {
11614 problem: "contains `ext_discard_rectangles`".into(),
11615 requires_one_of: crate::RequiresOneOf(&[
11616 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11617 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11618 "khr_get_physical_device_properties2",
11619 )]),
11620 ]),
11621 ..Default::default()
11622 }));
11623 }
11624 }
11625 if self.ext_display_control {
11626 if !supported.ext_display_control {
11627 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_display_control`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11628 }
11629 if !(instance_extensions.ext_display_surface_counter) {
11630 return Err(Box::new(crate::ValidationError {
11631 problem: "contains `ext_display_control`".into(),
11632 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
11633 crate::Requires::InstanceExtension("ext_display_surface_counter"),
11634 ])]),
11635 ..Default::default()
11636 }));
11637 }
11638 }
11639 if self.ext_dynamic_rendering_unused_attachments {
11640 if !supported.ext_dynamic_rendering_unused_attachments {
11641 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_dynamic_rendering_unused_attachments`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11642 }
11643 if !(api_version >= crate::Version::V1_1
11644 || instance_extensions.khr_get_physical_device_properties2)
11645 {
11646 return Err(Box::new(crate::ValidationError {
11647 problem: "contains `ext_dynamic_rendering_unused_attachments`".into(),
11648 requires_one_of: crate::RequiresOneOf(&[
11649 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11650 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11651 "khr_get_physical_device_properties2",
11652 )]),
11653 ]),
11654 ..Default::default()
11655 }));
11656 }
11657 }
11658 if self.ext_extended_dynamic_state {
11659 if !supported.ext_extended_dynamic_state {
11660 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_extended_dynamic_state`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11661 }
11662 if !(api_version >= crate::Version::V1_1
11663 || instance_extensions.khr_get_physical_device_properties2)
11664 {
11665 return Err(Box::new(crate::ValidationError {
11666 problem: "contains `ext_extended_dynamic_state`".into(),
11667 requires_one_of: crate::RequiresOneOf(&[
11668 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11669 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11670 "khr_get_physical_device_properties2",
11671 )]),
11672 ]),
11673 ..Default::default()
11674 }));
11675 }
11676 }
11677 if self.ext_extended_dynamic_state2 {
11678 if !supported.ext_extended_dynamic_state2 {
11679 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_extended_dynamic_state2`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11680 }
11681 if !(api_version >= crate::Version::V1_1
11682 || instance_extensions.khr_get_physical_device_properties2)
11683 {
11684 return Err(Box::new(crate::ValidationError {
11685 problem: "contains `ext_extended_dynamic_state2`".into(),
11686 requires_one_of: crate::RequiresOneOf(&[
11687 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11688 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11689 "khr_get_physical_device_properties2",
11690 )]),
11691 ]),
11692 ..Default::default()
11693 }));
11694 }
11695 }
11696 if self.ext_extended_dynamic_state3 {
11697 if !supported.ext_extended_dynamic_state3 {
11698 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_extended_dynamic_state3`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11699 }
11700 if !(api_version >= crate::Version::V1_1
11701 || instance_extensions.khr_get_physical_device_properties2)
11702 {
11703 return Err(Box::new(crate::ValidationError {
11704 problem: "contains `ext_extended_dynamic_state3`".into(),
11705 requires_one_of: crate::RequiresOneOf(&[
11706 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11707 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11708 "khr_get_physical_device_properties2",
11709 )]),
11710 ]),
11711 ..Default::default()
11712 }));
11713 }
11714 }
11715 if self.ext_external_memory_acquire_unmodified {
11716 if !supported.ext_external_memory_acquire_unmodified {
11717 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_external_memory_acquire_unmodified`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11718 }
11719 }
11720 if self.ext_external_memory_dma_buf {
11721 if !supported.ext_external_memory_dma_buf {
11722 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_external_memory_dma_buf`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11723 }
11724 }
11725 if self.ext_external_memory_host {
11726 if !supported.ext_external_memory_host {
11727 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_external_memory_host`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11728 }
11729 }
11730 if self.ext_filter_cubic {
11731 if !supported.ext_filter_cubic {
11732 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_filter_cubic`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11733 }
11734 }
11735 if self.ext_fragment_density_map {
11736 if !supported.ext_fragment_density_map {
11737 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_fragment_density_map`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11738 }
11739 if !(api_version >= crate::Version::V1_1
11740 || instance_extensions.khr_get_physical_device_properties2)
11741 {
11742 return Err(Box::new(crate::ValidationError {
11743 problem: "contains `ext_fragment_density_map`".into(),
11744 requires_one_of: crate::RequiresOneOf(&[
11745 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11746 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11747 "khr_get_physical_device_properties2",
11748 )]),
11749 ]),
11750 ..Default::default()
11751 }));
11752 }
11753 }
11754 if self.ext_fragment_density_map2 {
11755 if !supported.ext_fragment_density_map2 {
11756 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_fragment_density_map2`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11757 }
11758 }
11759 if self.ext_fragment_shader_interlock {
11760 if !supported.ext_fragment_shader_interlock {
11761 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_fragment_shader_interlock`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11762 }
11763 if !(api_version >= crate::Version::V1_1
11764 || instance_extensions.khr_get_physical_device_properties2)
11765 {
11766 return Err(Box::new(crate::ValidationError {
11767 problem: "contains `ext_fragment_shader_interlock`".into(),
11768 requires_one_of: crate::RequiresOneOf(&[
11769 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11770 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11771 "khr_get_physical_device_properties2",
11772 )]),
11773 ]),
11774 ..Default::default()
11775 }));
11776 }
11777 }
11778 if self.ext_frame_boundary {
11779 if !supported.ext_frame_boundary {
11780 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_frame_boundary`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11781 }
11782 }
11783 if self.ext_full_screen_exclusive {
11784 if !supported.ext_full_screen_exclusive {
11785 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_full_screen_exclusive`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11786 }
11787 if !(api_version >= crate::Version::V1_1
11788 || instance_extensions.khr_get_physical_device_properties2)
11789 {
11790 return Err(Box::new(crate::ValidationError {
11791 problem: "contains `ext_full_screen_exclusive`".into(),
11792 requires_one_of: crate::RequiresOneOf(&[
11793 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11794 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11795 "khr_get_physical_device_properties2",
11796 )]),
11797 ]),
11798 ..Default::default()
11799 }));
11800 }
11801 if !(instance_extensions.khr_surface) {
11802 return Err(Box::new(crate::ValidationError {
11803 problem: "contains `ext_full_screen_exclusive`".into(),
11804 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
11805 crate::Requires::InstanceExtension("khr_surface"),
11806 ])]),
11807 ..Default::default()
11808 }));
11809 }
11810 if !(instance_extensions.khr_get_surface_capabilities2) {
11811 return Err(Box::new(crate::ValidationError {
11812 problem: "contains `ext_full_screen_exclusive`".into(),
11813 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
11814 crate::Requires::InstanceExtension("khr_get_surface_capabilities2"),
11815 ])]),
11816 ..Default::default()
11817 }));
11818 }
11819 }
11820 if self.ext_global_priority {
11821 if !supported.ext_global_priority {
11822 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_global_priority`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11823 }
11824 }
11825 if self.ext_global_priority_query {
11826 if !supported.ext_global_priority_query {
11827 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_global_priority_query`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11828 }
11829 if !(api_version >= crate::Version::V1_1
11830 || instance_extensions.khr_get_physical_device_properties2)
11831 {
11832 return Err(Box::new(crate::ValidationError {
11833 problem: "contains `ext_global_priority_query`".into(),
11834 requires_one_of: crate::RequiresOneOf(&[
11835 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11836 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11837 "khr_get_physical_device_properties2",
11838 )]),
11839 ]),
11840 ..Default::default()
11841 }));
11842 }
11843 }
11844 if self.ext_graphics_pipeline_library {
11845 if !supported.ext_graphics_pipeline_library {
11846 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_graphics_pipeline_library`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11847 }
11848 if !(api_version >= crate::Version::V1_1
11849 || instance_extensions.khr_get_physical_device_properties2)
11850 {
11851 return Err(Box::new(crate::ValidationError {
11852 problem: "contains `ext_graphics_pipeline_library`".into(),
11853 requires_one_of: crate::RequiresOneOf(&[
11854 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11855 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11856 "khr_get_physical_device_properties2",
11857 )]),
11858 ]),
11859 ..Default::default()
11860 }));
11861 }
11862 }
11863 if self.ext_hdr_metadata {
11864 if !supported.ext_hdr_metadata {
11865 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_hdr_metadata`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11866 }
11867 }
11868 if self.ext_host_image_copy {
11869 if !supported.ext_host_image_copy {
11870 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_host_image_copy`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11871 }
11872 if !(api_version >= crate::Version::V1_1
11873 || instance_extensions.khr_get_physical_device_properties2)
11874 {
11875 return Err(Box::new(crate::ValidationError {
11876 problem: "contains `ext_host_image_copy`".into(),
11877 requires_one_of: crate::RequiresOneOf(&[
11878 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11879 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11880 "khr_get_physical_device_properties2",
11881 )]),
11882 ]),
11883 ..Default::default()
11884 }));
11885 }
11886 }
11887 if self.ext_host_query_reset {
11888 if !supported.ext_host_query_reset {
11889 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_host_query_reset`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11890 }
11891 if !(api_version >= crate::Version::V1_1
11892 || instance_extensions.khr_get_physical_device_properties2)
11893 {
11894 return Err(Box::new(crate::ValidationError {
11895 problem: "contains `ext_host_query_reset`".into(),
11896 requires_one_of: crate::RequiresOneOf(&[
11897 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11898 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11899 "khr_get_physical_device_properties2",
11900 )]),
11901 ]),
11902 ..Default::default()
11903 }));
11904 }
11905 }
11906 if self.ext_image_2d_view_of_3d {
11907 if !supported.ext_image_2d_view_of_3d {
11908 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_image_2d_view_of_3d`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11909 }
11910 if !(api_version >= crate::Version::V1_1
11911 || instance_extensions.khr_get_physical_device_properties2)
11912 {
11913 return Err(Box::new(crate::ValidationError {
11914 problem: "contains `ext_image_2d_view_of_3d`".into(),
11915 requires_one_of: crate::RequiresOneOf(&[
11916 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11917 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11918 "khr_get_physical_device_properties2",
11919 )]),
11920 ]),
11921 ..Default::default()
11922 }));
11923 }
11924 }
11925 if self.ext_image_compression_control {
11926 if !supported.ext_image_compression_control {
11927 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_image_compression_control`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11928 }
11929 if !(api_version >= crate::Version::V1_1
11930 || instance_extensions.khr_get_physical_device_properties2)
11931 {
11932 return Err(Box::new(crate::ValidationError {
11933 problem: "contains `ext_image_compression_control`".into(),
11934 requires_one_of: crate::RequiresOneOf(&[
11935 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11936 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11937 "khr_get_physical_device_properties2",
11938 )]),
11939 ]),
11940 ..Default::default()
11941 }));
11942 }
11943 }
11944 if self.ext_image_compression_control_swapchain {
11945 if !supported.ext_image_compression_control_swapchain {
11946 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_image_compression_control_swapchain`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11947 }
11948 }
11949 if self.ext_image_drm_format_modifier {
11950 if !supported.ext_image_drm_format_modifier {
11951 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_image_drm_format_modifier`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11952 }
11953 if !(api_version >= crate::Version::V1_1
11954 || instance_extensions.khr_get_physical_device_properties2)
11955 {
11956 return Err(Box::new(crate::ValidationError {
11957 problem: "contains `ext_image_drm_format_modifier`".into(),
11958 requires_one_of: crate::RequiresOneOf(&[
11959 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11960 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11961 "khr_get_physical_device_properties2",
11962 )]),
11963 ]),
11964 ..Default::default()
11965 }));
11966 }
11967 }
11968 if self.ext_image_robustness {
11969 if !supported.ext_image_robustness {
11970 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_image_robustness`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11971 }
11972 if !(api_version >= crate::Version::V1_1
11973 || instance_extensions.khr_get_physical_device_properties2)
11974 {
11975 return Err(Box::new(crate::ValidationError {
11976 problem: "contains `ext_image_robustness`".into(),
11977 requires_one_of: crate::RequiresOneOf(&[
11978 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11979 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11980 "khr_get_physical_device_properties2",
11981 )]),
11982 ]),
11983 ..Default::default()
11984 }));
11985 }
11986 }
11987 if self.ext_image_sliced_view_of_3d {
11988 if !supported.ext_image_sliced_view_of_3d {
11989 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_image_sliced_view_of_3d`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
11990 }
11991 if !(api_version >= crate::Version::V1_1
11992 || instance_extensions.khr_get_physical_device_properties2)
11993 {
11994 return Err(Box::new(crate::ValidationError {
11995 problem: "contains `ext_image_sliced_view_of_3d`".into(),
11996 requires_one_of: crate::RequiresOneOf(&[
11997 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
11998 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
11999 "khr_get_physical_device_properties2",
12000 )]),
12001 ]),
12002 ..Default::default()
12003 }));
12004 }
12005 }
12006 if self.ext_image_view_min_lod {
12007 if !supported.ext_image_view_min_lod {
12008 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_image_view_min_lod`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12009 }
12010 if !(api_version >= crate::Version::V1_1
12011 || instance_extensions.khr_get_physical_device_properties2)
12012 {
12013 return Err(Box::new(crate::ValidationError {
12014 problem: "contains `ext_image_view_min_lod`".into(),
12015 requires_one_of: crate::RequiresOneOf(&[
12016 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12017 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12018 "khr_get_physical_device_properties2",
12019 )]),
12020 ]),
12021 ..Default::default()
12022 }));
12023 }
12024 }
12025 if self.ext_index_type_uint8 {
12026 if !supported.ext_index_type_uint8 {
12027 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_index_type_uint8`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12028 }
12029 if !(api_version >= crate::Version::V1_1
12030 || instance_extensions.khr_get_physical_device_properties2)
12031 {
12032 return Err(Box::new(crate::ValidationError {
12033 problem: "contains `ext_index_type_uint8`".into(),
12034 requires_one_of: crate::RequiresOneOf(&[
12035 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12036 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12037 "khr_get_physical_device_properties2",
12038 )]),
12039 ]),
12040 ..Default::default()
12041 }));
12042 }
12043 }
12044 if self.ext_inline_uniform_block {
12045 if !supported.ext_inline_uniform_block {
12046 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_inline_uniform_block`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12047 }
12048 if !(api_version >= crate::Version::V1_1
12049 || instance_extensions.khr_get_physical_device_properties2)
12050 {
12051 return Err(Box::new(crate::ValidationError {
12052 problem: "contains `ext_inline_uniform_block`".into(),
12053 requires_one_of: crate::RequiresOneOf(&[
12054 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12055 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12056 "khr_get_physical_device_properties2",
12057 )]),
12058 ]),
12059 ..Default::default()
12060 }));
12061 }
12062 }
12063 if self.ext_legacy_dithering {
12064 if !supported.ext_legacy_dithering {
12065 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_legacy_dithering`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12066 }
12067 if !(api_version >= crate::Version::V1_1
12068 || instance_extensions.khr_get_physical_device_properties2)
12069 {
12070 return Err(Box::new(crate::ValidationError {
12071 problem: "contains `ext_legacy_dithering`".into(),
12072 requires_one_of: crate::RequiresOneOf(&[
12073 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12074 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12075 "khr_get_physical_device_properties2",
12076 )]),
12077 ]),
12078 ..Default::default()
12079 }));
12080 }
12081 }
12082 if self.ext_line_rasterization {
12083 if !supported.ext_line_rasterization {
12084 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_line_rasterization`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12085 }
12086 if !(api_version >= crate::Version::V1_1
12087 || instance_extensions.khr_get_physical_device_properties2)
12088 {
12089 return Err(Box::new(crate::ValidationError {
12090 problem: "contains `ext_line_rasterization`".into(),
12091 requires_one_of: crate::RequiresOneOf(&[
12092 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12093 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12094 "khr_get_physical_device_properties2",
12095 )]),
12096 ]),
12097 ..Default::default()
12098 }));
12099 }
12100 }
12101 if self.ext_load_store_op_none {
12102 if !supported.ext_load_store_op_none {
12103 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_load_store_op_none`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12104 }
12105 }
12106 if self.ext_map_memory_placed {
12107 if !supported.ext_map_memory_placed {
12108 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_map_memory_placed`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12109 }
12110 }
12111 if self.ext_memory_budget {
12112 if !supported.ext_memory_budget {
12113 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_memory_budget`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12114 }
12115 if !(api_version >= crate::Version::V1_1
12116 || instance_extensions.khr_get_physical_device_properties2)
12117 {
12118 return Err(Box::new(crate::ValidationError {
12119 problem: "contains `ext_memory_budget`".into(),
12120 requires_one_of: crate::RequiresOneOf(&[
12121 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12122 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12123 "khr_get_physical_device_properties2",
12124 )]),
12125 ]),
12126 ..Default::default()
12127 }));
12128 }
12129 }
12130 if self.ext_memory_priority {
12131 if !supported.ext_memory_priority {
12132 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_memory_priority`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12133 }
12134 if !(api_version >= crate::Version::V1_1
12135 || instance_extensions.khr_get_physical_device_properties2)
12136 {
12137 return Err(Box::new(crate::ValidationError {
12138 problem: "contains `ext_memory_priority`".into(),
12139 requires_one_of: crate::RequiresOneOf(&[
12140 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12141 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12142 "khr_get_physical_device_properties2",
12143 )]),
12144 ]),
12145 ..Default::default()
12146 }));
12147 }
12148 }
12149 if self.ext_mesh_shader {
12150 if !supported.ext_mesh_shader {
12151 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_mesh_shader`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12152 }
12153 }
12154 if self.ext_metal_objects {
12155 if !supported.ext_metal_objects {
12156 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_metal_objects`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12157 }
12158 }
12159 if self.ext_multi_draw {
12160 if !supported.ext_multi_draw {
12161 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_multi_draw`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12162 }
12163 if !(api_version >= crate::Version::V1_1
12164 || instance_extensions.khr_get_physical_device_properties2)
12165 {
12166 return Err(Box::new(crate::ValidationError {
12167 problem: "contains `ext_multi_draw`".into(),
12168 requires_one_of: crate::RequiresOneOf(&[
12169 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12170 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12171 "khr_get_physical_device_properties2",
12172 )]),
12173 ]),
12174 ..Default::default()
12175 }));
12176 }
12177 }
12178 if self.ext_multisampled_render_to_single_sampled {
12179 if !supported.ext_multisampled_render_to_single_sampled {
12180 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_multisampled_render_to_single_sampled`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12181 }
12182 }
12183 if self.ext_mutable_descriptor_type {
12184 if !supported.ext_mutable_descriptor_type {
12185 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_mutable_descriptor_type`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12186 }
12187 }
12188 if self.ext_nested_command_buffer {
12189 if !supported.ext_nested_command_buffer {
12190 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_nested_command_buffer`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12191 }
12192 if !(api_version >= crate::Version::V1_1
12193 || instance_extensions.khr_get_physical_device_properties2)
12194 {
12195 return Err(Box::new(crate::ValidationError {
12196 problem: "contains `ext_nested_command_buffer`".into(),
12197 requires_one_of: crate::RequiresOneOf(&[
12198 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12199 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12200 "khr_get_physical_device_properties2",
12201 )]),
12202 ]),
12203 ..Default::default()
12204 }));
12205 }
12206 }
12207 if self.ext_non_seamless_cube_map {
12208 if !supported.ext_non_seamless_cube_map {
12209 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_non_seamless_cube_map`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12210 }
12211 if !(api_version >= crate::Version::V1_1
12212 || instance_extensions.khr_get_physical_device_properties2)
12213 {
12214 return Err(Box::new(crate::ValidationError {
12215 problem: "contains `ext_non_seamless_cube_map`".into(),
12216 requires_one_of: crate::RequiresOneOf(&[
12217 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12218 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12219 "khr_get_physical_device_properties2",
12220 )]),
12221 ]),
12222 ..Default::default()
12223 }));
12224 }
12225 }
12226 if self.ext_opacity_micromap {
12227 if !supported.ext_opacity_micromap {
12228 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_opacity_micromap`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12229 }
12230 }
12231 if self.ext_pageable_device_local_memory {
12232 if !supported.ext_pageable_device_local_memory {
12233 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_pageable_device_local_memory`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12234 }
12235 }
12236 if self.ext_pci_bus_info {
12237 if !supported.ext_pci_bus_info {
12238 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_pci_bus_info`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12239 }
12240 if !(api_version >= crate::Version::V1_1
12241 || instance_extensions.khr_get_physical_device_properties2)
12242 {
12243 return Err(Box::new(crate::ValidationError {
12244 problem: "contains `ext_pci_bus_info`".into(),
12245 requires_one_of: crate::RequiresOneOf(&[
12246 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12247 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12248 "khr_get_physical_device_properties2",
12249 )]),
12250 ]),
12251 ..Default::default()
12252 }));
12253 }
12254 }
12255 if self.ext_physical_device_drm {
12256 if !supported.ext_physical_device_drm {
12257 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_physical_device_drm`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12258 }
12259 if !(api_version >= crate::Version::V1_1
12260 || instance_extensions.khr_get_physical_device_properties2)
12261 {
12262 return Err(Box::new(crate::ValidationError {
12263 problem: "contains `ext_physical_device_drm`".into(),
12264 requires_one_of: crate::RequiresOneOf(&[
12265 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12266 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12267 "khr_get_physical_device_properties2",
12268 )]),
12269 ]),
12270 ..Default::default()
12271 }));
12272 }
12273 }
12274 if self.ext_pipeline_creation_cache_control {
12275 if !supported.ext_pipeline_creation_cache_control {
12276 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_pipeline_creation_cache_control`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12277 }
12278 if !(api_version >= crate::Version::V1_1
12279 || instance_extensions.khr_get_physical_device_properties2)
12280 {
12281 return Err(Box::new(crate::ValidationError {
12282 problem: "contains `ext_pipeline_creation_cache_control`".into(),
12283 requires_one_of: crate::RequiresOneOf(&[
12284 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12285 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12286 "khr_get_physical_device_properties2",
12287 )]),
12288 ]),
12289 ..Default::default()
12290 }));
12291 }
12292 }
12293 if self.ext_pipeline_creation_feedback {
12294 if !supported.ext_pipeline_creation_feedback {
12295 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_pipeline_creation_feedback`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12296 }
12297 }
12298 if self.ext_pipeline_library_group_handles {
12299 if !supported.ext_pipeline_library_group_handles {
12300 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_pipeline_library_group_handles`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12301 }
12302 }
12303 if self.ext_pipeline_properties {
12304 if !supported.ext_pipeline_properties {
12305 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_pipeline_properties`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12306 }
12307 if !(api_version >= crate::Version::V1_1
12308 || instance_extensions.khr_get_physical_device_properties2)
12309 {
12310 return Err(Box::new(crate::ValidationError {
12311 problem: "contains `ext_pipeline_properties`".into(),
12312 requires_one_of: crate::RequiresOneOf(&[
12313 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12314 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12315 "khr_get_physical_device_properties2",
12316 )]),
12317 ]),
12318 ..Default::default()
12319 }));
12320 }
12321 }
12322 if self.ext_pipeline_protected_access {
12323 if !supported.ext_pipeline_protected_access {
12324 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_pipeline_protected_access`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12325 }
12326 if !(api_version >= crate::Version::V1_1
12327 || instance_extensions.khr_get_physical_device_properties2)
12328 {
12329 return Err(Box::new(crate::ValidationError {
12330 problem: "contains `ext_pipeline_protected_access`".into(),
12331 requires_one_of: crate::RequiresOneOf(&[
12332 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12333 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12334 "khr_get_physical_device_properties2",
12335 )]),
12336 ]),
12337 ..Default::default()
12338 }));
12339 }
12340 }
12341 if self.ext_pipeline_robustness {
12342 if !supported.ext_pipeline_robustness {
12343 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_pipeline_robustness`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12344 }
12345 if !(api_version >= crate::Version::V1_1
12346 || instance_extensions.khr_get_physical_device_properties2)
12347 {
12348 return Err(Box::new(crate::ValidationError {
12349 problem: "contains `ext_pipeline_robustness`".into(),
12350 requires_one_of: crate::RequiresOneOf(&[
12351 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12352 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12353 "khr_get_physical_device_properties2",
12354 )]),
12355 ]),
12356 ..Default::default()
12357 }));
12358 }
12359 }
12360 if self.ext_post_depth_coverage {
12361 if !supported.ext_post_depth_coverage {
12362 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_post_depth_coverage`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12363 }
12364 }
12365 if self.ext_primitive_topology_list_restart {
12366 if !supported.ext_primitive_topology_list_restart {
12367 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_primitive_topology_list_restart`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12368 }
12369 if !(api_version >= crate::Version::V1_1
12370 || instance_extensions.khr_get_physical_device_properties2)
12371 {
12372 return Err(Box::new(crate::ValidationError {
12373 problem: "contains `ext_primitive_topology_list_restart`".into(),
12374 requires_one_of: crate::RequiresOneOf(&[
12375 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12376 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12377 "khr_get_physical_device_properties2",
12378 )]),
12379 ]),
12380 ..Default::default()
12381 }));
12382 }
12383 }
12384 if self.ext_primitives_generated_query {
12385 if !supported.ext_primitives_generated_query {
12386 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_primitives_generated_query`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12387 }
12388 }
12389 if self.ext_private_data {
12390 if !supported.ext_private_data {
12391 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_private_data`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12392 }
12393 if !(api_version >= crate::Version::V1_1
12394 || instance_extensions.khr_get_physical_device_properties2)
12395 {
12396 return Err(Box::new(crate::ValidationError {
12397 problem: "contains `ext_private_data`".into(),
12398 requires_one_of: crate::RequiresOneOf(&[
12399 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12400 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12401 "khr_get_physical_device_properties2",
12402 )]),
12403 ]),
12404 ..Default::default()
12405 }));
12406 }
12407 }
12408 if self.ext_provoking_vertex {
12409 if !supported.ext_provoking_vertex {
12410 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_provoking_vertex`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12411 }
12412 if !(api_version >= crate::Version::V1_1
12413 || instance_extensions.khr_get_physical_device_properties2)
12414 {
12415 return Err(Box::new(crate::ValidationError {
12416 problem: "contains `ext_provoking_vertex`".into(),
12417 requires_one_of: crate::RequiresOneOf(&[
12418 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12419 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12420 "khr_get_physical_device_properties2",
12421 )]),
12422 ]),
12423 ..Default::default()
12424 }));
12425 }
12426 }
12427 if self.ext_queue_family_foreign {
12428 if !supported.ext_queue_family_foreign {
12429 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_queue_family_foreign`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12430 }
12431 }
12432 if self.ext_rasterization_order_attachment_access {
12433 if !supported.ext_rasterization_order_attachment_access {
12434 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_rasterization_order_attachment_access`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12435 }
12436 if !(api_version >= crate::Version::V1_1
12437 || instance_extensions.khr_get_physical_device_properties2)
12438 {
12439 return Err(Box::new(crate::ValidationError {
12440 problem: "contains `ext_rasterization_order_attachment_access`".into(),
12441 requires_one_of: crate::RequiresOneOf(&[
12442 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12443 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12444 "khr_get_physical_device_properties2",
12445 )]),
12446 ]),
12447 ..Default::default()
12448 }));
12449 }
12450 }
12451 if self.ext_rgba10x6_formats {
12452 if !supported.ext_rgba10x6_formats {
12453 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_rgba10x6_formats`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12454 }
12455 }
12456 if self.ext_robustness2 {
12457 if !supported.ext_robustness2 {
12458 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_robustness2`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12459 }
12460 if !(api_version >= crate::Version::V1_1
12461 || instance_extensions.khr_get_physical_device_properties2)
12462 {
12463 return Err(Box::new(crate::ValidationError {
12464 problem: "contains `ext_robustness2`".into(),
12465 requires_one_of: crate::RequiresOneOf(&[
12466 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12467 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12468 "khr_get_physical_device_properties2",
12469 )]),
12470 ]),
12471 ..Default::default()
12472 }));
12473 }
12474 }
12475 if self.ext_sample_locations {
12476 if !supported.ext_sample_locations {
12477 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_sample_locations`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12478 }
12479 if !(api_version >= crate::Version::V1_1
12480 || instance_extensions.khr_get_physical_device_properties2)
12481 {
12482 return Err(Box::new(crate::ValidationError {
12483 problem: "contains `ext_sample_locations`".into(),
12484 requires_one_of: crate::RequiresOneOf(&[
12485 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12486 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12487 "khr_get_physical_device_properties2",
12488 )]),
12489 ]),
12490 ..Default::default()
12491 }));
12492 }
12493 }
12494 if self.ext_sampler_filter_minmax {
12495 if !supported.ext_sampler_filter_minmax {
12496 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_sampler_filter_minmax`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12497 }
12498 if !(api_version >= crate::Version::V1_1
12499 || instance_extensions.khr_get_physical_device_properties2)
12500 {
12501 return Err(Box::new(crate::ValidationError {
12502 problem: "contains `ext_sampler_filter_minmax`".into(),
12503 requires_one_of: crate::RequiresOneOf(&[
12504 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12505 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12506 "khr_get_physical_device_properties2",
12507 )]),
12508 ]),
12509 ..Default::default()
12510 }));
12511 }
12512 }
12513 if self.ext_scalar_block_layout {
12514 if !supported.ext_scalar_block_layout {
12515 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_scalar_block_layout`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12516 }
12517 if !(api_version >= crate::Version::V1_1
12518 || instance_extensions.khr_get_physical_device_properties2)
12519 {
12520 return Err(Box::new(crate::ValidationError {
12521 problem: "contains `ext_scalar_block_layout`".into(),
12522 requires_one_of: crate::RequiresOneOf(&[
12523 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12524 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12525 "khr_get_physical_device_properties2",
12526 )]),
12527 ]),
12528 ..Default::default()
12529 }));
12530 }
12531 }
12532 if self.ext_separate_stencil_usage {
12533 if !supported.ext_separate_stencil_usage {
12534 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_separate_stencil_usage`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12535 }
12536 }
12537 if self.ext_shader_atomic_float {
12538 if !supported.ext_shader_atomic_float {
12539 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_shader_atomic_float`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12540 }
12541 if !(api_version >= crate::Version::V1_1
12542 || instance_extensions.khr_get_physical_device_properties2)
12543 {
12544 return Err(Box::new(crate::ValidationError {
12545 problem: "contains `ext_shader_atomic_float`".into(),
12546 requires_one_of: crate::RequiresOneOf(&[
12547 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12548 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12549 "khr_get_physical_device_properties2",
12550 )]),
12551 ]),
12552 ..Default::default()
12553 }));
12554 }
12555 }
12556 if self.ext_shader_atomic_float2 {
12557 if !supported.ext_shader_atomic_float2 {
12558 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_shader_atomic_float2`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12559 }
12560 }
12561 if self.ext_shader_demote_to_helper_invocation {
12562 if !supported.ext_shader_demote_to_helper_invocation {
12563 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_shader_demote_to_helper_invocation`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12564 }
12565 if !(api_version >= crate::Version::V1_1
12566 || instance_extensions.khr_get_physical_device_properties2)
12567 {
12568 return Err(Box::new(crate::ValidationError {
12569 problem: "contains `ext_shader_demote_to_helper_invocation`".into(),
12570 requires_one_of: crate::RequiresOneOf(&[
12571 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12572 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12573 "khr_get_physical_device_properties2",
12574 )]),
12575 ]),
12576 ..Default::default()
12577 }));
12578 }
12579 }
12580 if self.ext_shader_image_atomic_int64 {
12581 if !supported.ext_shader_image_atomic_int64 {
12582 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_shader_image_atomic_int64`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12583 }
12584 if !(api_version >= crate::Version::V1_1
12585 || instance_extensions.khr_get_physical_device_properties2)
12586 {
12587 return Err(Box::new(crate::ValidationError {
12588 problem: "contains `ext_shader_image_atomic_int64`".into(),
12589 requires_one_of: crate::RequiresOneOf(&[
12590 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12591 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12592 "khr_get_physical_device_properties2",
12593 )]),
12594 ]),
12595 ..Default::default()
12596 }));
12597 }
12598 }
12599 if self.ext_shader_module_identifier {
12600 if !supported.ext_shader_module_identifier {
12601 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_shader_module_identifier`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12602 }
12603 if !(api_version >= crate::Version::V1_1
12604 || instance_extensions.khr_get_physical_device_properties2)
12605 {
12606 return Err(Box::new(crate::ValidationError {
12607 problem: "contains `ext_shader_module_identifier`".into(),
12608 requires_one_of: crate::RequiresOneOf(&[
12609 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12610 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12611 "khr_get_physical_device_properties2",
12612 )]),
12613 ]),
12614 ..Default::default()
12615 }));
12616 }
12617 }
12618 if self.ext_shader_object {
12619 if !supported.ext_shader_object {
12620 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_shader_object`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12621 }
12622 if !(api_version >= crate::Version::V1_1
12623 || instance_extensions.khr_get_physical_device_properties2)
12624 {
12625 return Err(Box::new(crate::ValidationError {
12626 problem: "contains `ext_shader_object`".into(),
12627 requires_one_of: crate::RequiresOneOf(&[
12628 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12629 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12630 "khr_get_physical_device_properties2",
12631 )]),
12632 ]),
12633 ..Default::default()
12634 }));
12635 }
12636 }
12637 if self.ext_shader_stencil_export {
12638 if !supported.ext_shader_stencil_export {
12639 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_shader_stencil_export`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12640 }
12641 }
12642 if self.ext_shader_subgroup_ballot {
12643 if !supported.ext_shader_subgroup_ballot {
12644 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_shader_subgroup_ballot`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12645 }
12646 }
12647 if self.ext_shader_subgroup_vote {
12648 if !supported.ext_shader_subgroup_vote {
12649 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_shader_subgroup_vote`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12650 }
12651 }
12652 if self.ext_shader_tile_image {
12653 if !supported.ext_shader_tile_image {
12654 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_shader_tile_image`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12655 }
12656 if !(api_version >= crate::Version::V1_3) {
12657 return Err(Box::new(crate::ValidationError {
12658 problem: "contains `ext_shader_tile_image`".into(),
12659 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
12660 crate::Requires::APIVersion(crate::Version::V1_3),
12661 ])]),
12662 ..Default::default()
12663 }));
12664 }
12665 }
12666 if self.ext_shader_viewport_index_layer {
12667 if !supported.ext_shader_viewport_index_layer {
12668 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_shader_viewport_index_layer`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12669 }
12670 }
12671 if self.ext_subgroup_size_control {
12672 if !supported.ext_subgroup_size_control {
12673 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_subgroup_size_control`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12674 }
12675 if !(api_version >= crate::Version::V1_1) {
12676 return Err(Box::new(crate::ValidationError {
12677 problem: "contains `ext_subgroup_size_control`".into(),
12678 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
12679 crate::Requires::APIVersion(crate::Version::V1_1),
12680 ])]),
12681 ..Default::default()
12682 }));
12683 }
12684 }
12685 if self.ext_subpass_merge_feedback {
12686 if !supported.ext_subpass_merge_feedback {
12687 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_subpass_merge_feedback`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12688 }
12689 if !(api_version >= crate::Version::V1_1
12690 || instance_extensions.khr_get_physical_device_properties2)
12691 {
12692 return Err(Box::new(crate::ValidationError {
12693 problem: "contains `ext_subpass_merge_feedback`".into(),
12694 requires_one_of: crate::RequiresOneOf(&[
12695 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12696 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12697 "khr_get_physical_device_properties2",
12698 )]),
12699 ]),
12700 ..Default::default()
12701 }));
12702 }
12703 }
12704 if self.ext_swapchain_maintenance1 {
12705 if !supported.ext_swapchain_maintenance1 {
12706 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_swapchain_maintenance1`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12707 }
12708 if !(instance_extensions.ext_surface_maintenance1) {
12709 return Err(Box::new(crate::ValidationError {
12710 problem: "contains `ext_swapchain_maintenance1`".into(),
12711 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
12712 crate::Requires::InstanceExtension("ext_surface_maintenance1"),
12713 ])]),
12714 ..Default::default()
12715 }));
12716 }
12717 if !(api_version >= crate::Version::V1_1
12718 || instance_extensions.khr_get_physical_device_properties2)
12719 {
12720 return Err(Box::new(crate::ValidationError {
12721 problem: "contains `ext_swapchain_maintenance1`".into(),
12722 requires_one_of: crate::RequiresOneOf(&[
12723 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12724 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12725 "khr_get_physical_device_properties2",
12726 )]),
12727 ]),
12728 ..Default::default()
12729 }));
12730 }
12731 }
12732 if self.ext_texel_buffer_alignment {
12733 if !supported.ext_texel_buffer_alignment {
12734 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_texel_buffer_alignment`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12735 }
12736 if !(api_version >= crate::Version::V1_1
12737 || instance_extensions.khr_get_physical_device_properties2)
12738 {
12739 return Err(Box::new(crate::ValidationError {
12740 problem: "contains `ext_texel_buffer_alignment`".into(),
12741 requires_one_of: crate::RequiresOneOf(&[
12742 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12743 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12744 "khr_get_physical_device_properties2",
12745 )]),
12746 ]),
12747 ..Default::default()
12748 }));
12749 }
12750 }
12751 if self.ext_texture_compression_astc_hdr {
12752 if !supported.ext_texture_compression_astc_hdr {
12753 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_texture_compression_astc_hdr`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12754 }
12755 if !(api_version >= crate::Version::V1_1
12756 || instance_extensions.khr_get_physical_device_properties2)
12757 {
12758 return Err(Box::new(crate::ValidationError {
12759 problem: "contains `ext_texture_compression_astc_hdr`".into(),
12760 requires_one_of: crate::RequiresOneOf(&[
12761 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12762 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12763 "khr_get_physical_device_properties2",
12764 )]),
12765 ]),
12766 ..Default::default()
12767 }));
12768 }
12769 }
12770 if self.ext_tooling_info {
12771 if !supported.ext_tooling_info {
12772 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_tooling_info`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12773 }
12774 }
12775 if self.ext_transform_feedback {
12776 if !supported.ext_transform_feedback {
12777 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_transform_feedback`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12778 }
12779 if !(api_version >= crate::Version::V1_1
12780 || instance_extensions.khr_get_physical_device_properties2)
12781 {
12782 return Err(Box::new(crate::ValidationError {
12783 problem: "contains `ext_transform_feedback`".into(),
12784 requires_one_of: crate::RequiresOneOf(&[
12785 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12786 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12787 "khr_get_physical_device_properties2",
12788 )]),
12789 ]),
12790 ..Default::default()
12791 }));
12792 }
12793 }
12794 if self.ext_validation_cache {
12795 if !supported.ext_validation_cache {
12796 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_validation_cache`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12797 }
12798 }
12799 if self.ext_vertex_attribute_divisor {
12800 if !supported.ext_vertex_attribute_divisor {
12801 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_vertex_attribute_divisor`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12802 }
12803 if !(api_version >= crate::Version::V1_1
12804 || instance_extensions.khr_get_physical_device_properties2)
12805 {
12806 return Err(Box::new(crate::ValidationError {
12807 problem: "contains `ext_vertex_attribute_divisor`".into(),
12808 requires_one_of: crate::RequiresOneOf(&[
12809 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12810 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12811 "khr_get_physical_device_properties2",
12812 )]),
12813 ]),
12814 ..Default::default()
12815 }));
12816 }
12817 }
12818 if self.ext_vertex_input_dynamic_state {
12819 if !supported.ext_vertex_input_dynamic_state {
12820 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_vertex_input_dynamic_state`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12821 }
12822 if !(api_version >= crate::Version::V1_1
12823 || instance_extensions.khr_get_physical_device_properties2)
12824 {
12825 return Err(Box::new(crate::ValidationError {
12826 problem: "contains `ext_vertex_input_dynamic_state`".into(),
12827 requires_one_of: crate::RequiresOneOf(&[
12828 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12829 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12830 "khr_get_physical_device_properties2",
12831 )]),
12832 ]),
12833 ..Default::default()
12834 }));
12835 }
12836 }
12837 if self.ext_ycbcr_2plane_444_formats {
12838 if !supported.ext_ycbcr_2plane_444_formats {
12839 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_ycbcr_2plane_444_formats`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12840 }
12841 }
12842 if self.ext_ycbcr_image_arrays {
12843 if !supported.ext_ycbcr_image_arrays {
12844 return Err (Box :: new (crate :: ValidationError { problem : "contains `ext_ycbcr_image_arrays`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12845 }
12846 }
12847 if self.amdx_shader_enqueue {
12848 if !supported.amdx_shader_enqueue {
12849 return Err (Box :: new (crate :: ValidationError { problem : "contains `amdx_shader_enqueue`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12850 }
12851 if !(api_version >= crate::Version::V1_1
12852 || instance_extensions.khr_get_physical_device_properties2)
12853 {
12854 return Err(Box::new(crate::ValidationError {
12855 problem: "contains `amdx_shader_enqueue`".into(),
12856 requires_one_of: crate::RequiresOneOf(&[
12857 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12858 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12859 "khr_get_physical_device_properties2",
12860 )]),
12861 ]),
12862 ..Default::default()
12863 }));
12864 }
12865 }
12866 if self.amd_buffer_marker {
12867 if !supported.amd_buffer_marker {
12868 return Err (Box :: new (crate :: ValidationError { problem : "contains `amd_buffer_marker`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12869 }
12870 }
12871 if self.amd_device_coherent_memory {
12872 if !supported.amd_device_coherent_memory {
12873 return Err (Box :: new (crate :: ValidationError { problem : "contains `amd_device_coherent_memory`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12874 }
12875 if !(api_version >= crate::Version::V1_1
12876 || instance_extensions.khr_get_physical_device_properties2)
12877 {
12878 return Err(Box::new(crate::ValidationError {
12879 problem: "contains `amd_device_coherent_memory`".into(),
12880 requires_one_of: crate::RequiresOneOf(&[
12881 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12882 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12883 "khr_get_physical_device_properties2",
12884 )]),
12885 ]),
12886 ..Default::default()
12887 }));
12888 }
12889 }
12890 if self.amd_display_native_hdr {
12891 if !supported.amd_display_native_hdr {
12892 return Err (Box :: new (crate :: ValidationError { problem : "contains `amd_display_native_hdr`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12893 }
12894 if !(api_version >= crate::Version::V1_1
12895 || instance_extensions.khr_get_physical_device_properties2)
12896 {
12897 return Err(Box::new(crate::ValidationError {
12898 problem: "contains `amd_display_native_hdr`".into(),
12899 requires_one_of: crate::RequiresOneOf(&[
12900 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12901 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12902 "khr_get_physical_device_properties2",
12903 )]),
12904 ]),
12905 ..Default::default()
12906 }));
12907 }
12908 if !(instance_extensions.khr_get_surface_capabilities2) {
12909 return Err(Box::new(crate::ValidationError {
12910 problem: "contains `amd_display_native_hdr`".into(),
12911 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
12912 crate::Requires::InstanceExtension("khr_get_surface_capabilities2"),
12913 ])]),
12914 ..Default::default()
12915 }));
12916 }
12917 }
12918 if self.amd_draw_indirect_count {
12919 if !supported.amd_draw_indirect_count {
12920 return Err (Box :: new (crate :: ValidationError { problem : "contains `amd_draw_indirect_count`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12921 }
12922 }
12923 if self.amd_gcn_shader {
12924 if !supported.amd_gcn_shader {
12925 return Err (Box :: new (crate :: ValidationError { problem : "contains `amd_gcn_shader`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12926 }
12927 }
12928 if self.amd_gpu_shader_half_float {
12929 if !supported.amd_gpu_shader_half_float {
12930 return Err (Box :: new (crate :: ValidationError { problem : "contains `amd_gpu_shader_half_float`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12931 }
12932 }
12933 if self.amd_gpu_shader_int16 {
12934 if !supported.amd_gpu_shader_int16 {
12935 return Err (Box :: new (crate :: ValidationError { problem : "contains `amd_gpu_shader_int16`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12936 }
12937 }
12938 if self.amd_memory_overallocation_behavior {
12939 if !supported.amd_memory_overallocation_behavior {
12940 return Err (Box :: new (crate :: ValidationError { problem : "contains `amd_memory_overallocation_behavior`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12941 }
12942 }
12943 if self.amd_mixed_attachment_samples {
12944 if !supported.amd_mixed_attachment_samples {
12945 return Err (Box :: new (crate :: ValidationError { problem : "contains `amd_mixed_attachment_samples`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12946 }
12947 }
12948 if self.amd_pipeline_compiler_control {
12949 if !supported.amd_pipeline_compiler_control {
12950 return Err (Box :: new (crate :: ValidationError { problem : "contains `amd_pipeline_compiler_control`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12951 }
12952 }
12953 if self.amd_rasterization_order {
12954 if !supported.amd_rasterization_order {
12955 return Err (Box :: new (crate :: ValidationError { problem : "contains `amd_rasterization_order`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12956 }
12957 }
12958 if self.amd_shader_ballot {
12959 if !supported.amd_shader_ballot {
12960 return Err (Box :: new (crate :: ValidationError { problem : "contains `amd_shader_ballot`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12961 }
12962 }
12963 if self.amd_shader_core_properties {
12964 if !supported.amd_shader_core_properties {
12965 return Err (Box :: new (crate :: ValidationError { problem : "contains `amd_shader_core_properties`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12966 }
12967 if !(api_version >= crate::Version::V1_1
12968 || instance_extensions.khr_get_physical_device_properties2)
12969 {
12970 return Err(Box::new(crate::ValidationError {
12971 problem: "contains `amd_shader_core_properties`".into(),
12972 requires_one_of: crate::RequiresOneOf(&[
12973 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12974 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12975 "khr_get_physical_device_properties2",
12976 )]),
12977 ]),
12978 ..Default::default()
12979 }));
12980 }
12981 }
12982 if self.amd_shader_core_properties2 {
12983 if !supported.amd_shader_core_properties2 {
12984 return Err (Box :: new (crate :: ValidationError { problem : "contains `amd_shader_core_properties2`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12985 }
12986 }
12987 if self.amd_shader_early_and_late_fragment_tests {
12988 if !supported.amd_shader_early_and_late_fragment_tests {
12989 return Err (Box :: new (crate :: ValidationError { problem : "contains `amd_shader_early_and_late_fragment_tests`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
12990 }
12991 if !(api_version >= crate::Version::V1_1
12992 || instance_extensions.khr_get_physical_device_properties2)
12993 {
12994 return Err(Box::new(crate::ValidationError {
12995 problem: "contains `amd_shader_early_and_late_fragment_tests`".into(),
12996 requires_one_of: crate::RequiresOneOf(&[
12997 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
12998 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
12999 "khr_get_physical_device_properties2",
13000 )]),
13001 ]),
13002 ..Default::default()
13003 }));
13004 }
13005 }
13006 if self.amd_shader_explicit_vertex_parameter {
13007 if !supported.amd_shader_explicit_vertex_parameter {
13008 return Err (Box :: new (crate :: ValidationError { problem : "contains `amd_shader_explicit_vertex_parameter`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13009 }
13010 }
13011 if self.amd_shader_fragment_mask {
13012 if !supported.amd_shader_fragment_mask {
13013 return Err (Box :: new (crate :: ValidationError { problem : "contains `amd_shader_fragment_mask`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13014 }
13015 }
13016 if self.amd_shader_image_load_store_lod {
13017 if !supported.amd_shader_image_load_store_lod {
13018 return Err (Box :: new (crate :: ValidationError { problem : "contains `amd_shader_image_load_store_lod`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13019 }
13020 }
13021 if self.amd_shader_info {
13022 if !supported.amd_shader_info {
13023 return Err (Box :: new (crate :: ValidationError { problem : "contains `amd_shader_info`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13024 }
13025 }
13026 if self.amd_shader_trinary_minmax {
13027 if !supported.amd_shader_trinary_minmax {
13028 return Err (Box :: new (crate :: ValidationError { problem : "contains `amd_shader_trinary_minmax`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13029 }
13030 }
13031 if self.amd_texture_gather_bias_lod {
13032 if !supported.amd_texture_gather_bias_lod {
13033 return Err (Box :: new (crate :: ValidationError { problem : "contains `amd_texture_gather_bias_lod`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13034 }
13035 if !(api_version >= crate::Version::V1_1
13036 || instance_extensions.khr_get_physical_device_properties2)
13037 {
13038 return Err(Box::new(crate::ValidationError {
13039 problem: "contains `amd_texture_gather_bias_lod`".into(),
13040 requires_one_of: crate::RequiresOneOf(&[
13041 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13042 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13043 "khr_get_physical_device_properties2",
13044 )]),
13045 ]),
13046 ..Default::default()
13047 }));
13048 }
13049 }
13050 if self.android_external_format_resolve {
13051 if !supported.android_external_format_resolve {
13052 return Err (Box :: new (crate :: ValidationError { problem : "contains `android_external_format_resolve`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13053 }
13054 }
13055 if self.android_external_memory_android_hardware_buffer {
13056 if !supported.android_external_memory_android_hardware_buffer {
13057 return Err (Box :: new (crate :: ValidationError { problem : "contains `android_external_memory_android_hardware_buffer`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13058 }
13059 }
13060 if self.arm_rasterization_order_attachment_access {
13061 if !supported.arm_rasterization_order_attachment_access {
13062 return Err (Box :: new (crate :: ValidationError { problem : "contains `arm_rasterization_order_attachment_access`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13063 }
13064 if !(api_version >= crate::Version::V1_1
13065 || instance_extensions.khr_get_physical_device_properties2)
13066 {
13067 return Err(Box::new(crate::ValidationError {
13068 problem: "contains `arm_rasterization_order_attachment_access`".into(),
13069 requires_one_of: crate::RequiresOneOf(&[
13070 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13071 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13072 "khr_get_physical_device_properties2",
13073 )]),
13074 ]),
13075 ..Default::default()
13076 }));
13077 }
13078 }
13079 if self.arm_render_pass_striped {
13080 if !supported.arm_render_pass_striped {
13081 return Err (Box :: new (crate :: ValidationError { problem : "contains `arm_render_pass_striped`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13082 }
13083 if !(api_version >= crate::Version::V1_1
13084 || instance_extensions.khr_get_physical_device_properties2)
13085 {
13086 return Err(Box::new(crate::ValidationError {
13087 problem: "contains `arm_render_pass_striped`".into(),
13088 requires_one_of: crate::RequiresOneOf(&[
13089 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13090 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13091 "khr_get_physical_device_properties2",
13092 )]),
13093 ]),
13094 ..Default::default()
13095 }));
13096 }
13097 }
13098 if self.arm_scheduling_controls {
13099 if !supported.arm_scheduling_controls {
13100 return Err (Box :: new (crate :: ValidationError { problem : "contains `arm_scheduling_controls`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13101 }
13102 }
13103 if self.arm_shader_core_builtins {
13104 if !supported.arm_shader_core_builtins {
13105 return Err (Box :: new (crate :: ValidationError { problem : "contains `arm_shader_core_builtins`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13106 }
13107 if !(api_version >= crate::Version::V1_1
13108 || instance_extensions.khr_get_physical_device_properties2)
13109 {
13110 return Err(Box::new(crate::ValidationError {
13111 problem: "contains `arm_shader_core_builtins`".into(),
13112 requires_one_of: crate::RequiresOneOf(&[
13113 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13114 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13115 "khr_get_physical_device_properties2",
13116 )]),
13117 ]),
13118 ..Default::default()
13119 }));
13120 }
13121 }
13122 if self.arm_shader_core_properties {
13123 if !supported.arm_shader_core_properties {
13124 return Err (Box :: new (crate :: ValidationError { problem : "contains `arm_shader_core_properties`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13125 }
13126 if !(api_version >= crate::Version::V1_1) {
13127 return Err(Box::new(crate::ValidationError {
13128 problem: "contains `arm_shader_core_properties`".into(),
13129 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
13130 crate::Requires::APIVersion(crate::Version::V1_1),
13131 ])]),
13132 ..Default::default()
13133 }));
13134 }
13135 }
13136 if self.fuchsia_buffer_collection {
13137 if !supported.fuchsia_buffer_collection {
13138 return Err (Box :: new (crate :: ValidationError { problem : "contains `fuchsia_buffer_collection`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13139 }
13140 }
13141 if self.fuchsia_external_memory {
13142 if !supported.fuchsia_external_memory {
13143 return Err (Box :: new (crate :: ValidationError { problem : "contains `fuchsia_external_memory`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13144 }
13145 if !(api_version >= crate::Version::V1_1
13146 || instance_extensions.khr_external_memory_capabilities)
13147 {
13148 return Err(Box::new(crate::ValidationError {
13149 problem: "contains `fuchsia_external_memory`".into(),
13150 requires_one_of: crate::RequiresOneOf(&[
13151 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13152 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13153 "khr_external_memory_capabilities",
13154 )]),
13155 ]),
13156 ..Default::default()
13157 }));
13158 }
13159 }
13160 if self.fuchsia_external_semaphore {
13161 if !supported.fuchsia_external_semaphore {
13162 return Err (Box :: new (crate :: ValidationError { problem : "contains `fuchsia_external_semaphore`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13163 }
13164 if !(api_version >= crate::Version::V1_1
13165 || instance_extensions.khr_external_semaphore_capabilities)
13166 {
13167 return Err(Box::new(crate::ValidationError {
13168 problem: "contains `fuchsia_external_semaphore`".into(),
13169 requires_one_of: crate::RequiresOneOf(&[
13170 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13171 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13172 "khr_external_semaphore_capabilities",
13173 )]),
13174 ]),
13175 ..Default::default()
13176 }));
13177 }
13178 }
13179 if self.ggp_frame_token {
13180 if !supported.ggp_frame_token {
13181 return Err (Box :: new (crate :: ValidationError { problem : "contains `ggp_frame_token`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13182 }
13183 if !(instance_extensions.ggp_stream_descriptor_surface) {
13184 return Err(Box::new(crate::ValidationError {
13185 problem: "contains `ggp_frame_token`".into(),
13186 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
13187 crate::Requires::InstanceExtension("ggp_stream_descriptor_surface"),
13188 ])]),
13189 ..Default::default()
13190 }));
13191 }
13192 }
13193 if self.google_decorate_string {
13194 if !supported.google_decorate_string {
13195 return Err (Box :: new (crate :: ValidationError { problem : "contains `google_decorate_string`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13196 }
13197 }
13198 if self.google_display_timing {
13199 if !supported.google_display_timing {
13200 return Err (Box :: new (crate :: ValidationError { problem : "contains `google_display_timing`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13201 }
13202 }
13203 if self.google_hlsl_functionality1 {
13204 if !supported.google_hlsl_functionality1 {
13205 return Err (Box :: new (crate :: ValidationError { problem : "contains `google_hlsl_functionality1`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13206 }
13207 }
13208 if self.google_user_type {
13209 if !supported.google_user_type {
13210 return Err (Box :: new (crate :: ValidationError { problem : "contains `google_user_type`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13211 }
13212 }
13213 if self.huawei_cluster_culling_shader {
13214 if !supported.huawei_cluster_culling_shader {
13215 return Err (Box :: new (crate :: ValidationError { problem : "contains `huawei_cluster_culling_shader`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13216 }
13217 if !(api_version >= crate::Version::V1_1
13218 || instance_extensions.khr_get_physical_device_properties2)
13219 {
13220 return Err(Box::new(crate::ValidationError {
13221 problem: "contains `huawei_cluster_culling_shader`".into(),
13222 requires_one_of: crate::RequiresOneOf(&[
13223 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13224 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13225 "khr_get_physical_device_properties2",
13226 )]),
13227 ]),
13228 ..Default::default()
13229 }));
13230 }
13231 }
13232 if self.huawei_invocation_mask {
13233 if !supported.huawei_invocation_mask {
13234 return Err (Box :: new (crate :: ValidationError { problem : "contains `huawei_invocation_mask`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13235 }
13236 }
13237 if self.huawei_subpass_shading {
13238 if !supported.huawei_subpass_shading {
13239 return Err (Box :: new (crate :: ValidationError { problem : "contains `huawei_subpass_shading`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13240 }
13241 }
13242 if self.img_filter_cubic {
13243 if !supported.img_filter_cubic {
13244 return Err (Box :: new (crate :: ValidationError { problem : "contains `img_filter_cubic`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13245 }
13246 }
13247 if self.img_format_pvrtc {
13248 if !supported.img_format_pvrtc {
13249 return Err (Box :: new (crate :: ValidationError { problem : "contains `img_format_pvrtc`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13250 }
13251 }
13252 if self.img_relaxed_line_rasterization {
13253 if !supported.img_relaxed_line_rasterization {
13254 return Err (Box :: new (crate :: ValidationError { problem : "contains `img_relaxed_line_rasterization`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13255 }
13256 if !(api_version >= crate::Version::V1_1
13257 || instance_extensions.khr_get_physical_device_properties2)
13258 {
13259 return Err(Box::new(crate::ValidationError {
13260 problem: "contains `img_relaxed_line_rasterization`".into(),
13261 requires_one_of: crate::RequiresOneOf(&[
13262 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13263 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13264 "khr_get_physical_device_properties2",
13265 )]),
13266 ]),
13267 ..Default::default()
13268 }));
13269 }
13270 }
13271 if self.intel_performance_query {
13272 if !supported.intel_performance_query {
13273 return Err (Box :: new (crate :: ValidationError { problem : "contains `intel_performance_query`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13274 }
13275 }
13276 if self.intel_shader_integer_functions2 {
13277 if !supported.intel_shader_integer_functions2 {
13278 return Err (Box :: new (crate :: ValidationError { problem : "contains `intel_shader_integer_functions2`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13279 }
13280 if !(api_version >= crate::Version::V1_1
13281 || instance_extensions.khr_get_physical_device_properties2)
13282 {
13283 return Err(Box::new(crate::ValidationError {
13284 problem: "contains `intel_shader_integer_functions2`".into(),
13285 requires_one_of: crate::RequiresOneOf(&[
13286 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13287 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13288 "khr_get_physical_device_properties2",
13289 )]),
13290 ]),
13291 ..Default::default()
13292 }));
13293 }
13294 }
13295 if self.msft_layered_driver {
13296 if !supported.msft_layered_driver {
13297 return Err (Box :: new (crate :: ValidationError { problem : "contains `msft_layered_driver`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13298 }
13299 if !(api_version >= crate::Version::V1_1
13300 || instance_extensions.khr_get_physical_device_properties2)
13301 {
13302 return Err(Box::new(crate::ValidationError {
13303 problem: "contains `msft_layered_driver`".into(),
13304 requires_one_of: crate::RequiresOneOf(&[
13305 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13306 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13307 "khr_get_physical_device_properties2",
13308 )]),
13309 ]),
13310 ..Default::default()
13311 }));
13312 }
13313 }
13314 if self.nvx_binary_import {
13315 if !supported.nvx_binary_import {
13316 return Err (Box :: new (crate :: ValidationError { problem : "contains `nvx_binary_import`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13317 }
13318 }
13319 if self.nvx_image_view_handle {
13320 if !supported.nvx_image_view_handle {
13321 return Err (Box :: new (crate :: ValidationError { problem : "contains `nvx_image_view_handle`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13322 }
13323 }
13324 if self.nvx_multiview_per_view_attributes {
13325 if !supported.nvx_multiview_per_view_attributes {
13326 return Err (Box :: new (crate :: ValidationError { problem : "contains `nvx_multiview_per_view_attributes`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13327 }
13328 }
13329 if self.nv_acquire_winrt_display {
13330 if !supported.nv_acquire_winrt_display {
13331 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_acquire_winrt_display`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13332 }
13333 if !(instance_extensions.ext_direct_mode_display) {
13334 return Err(Box::new(crate::ValidationError {
13335 problem: "contains `nv_acquire_winrt_display`".into(),
13336 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
13337 crate::Requires::InstanceExtension("ext_direct_mode_display"),
13338 ])]),
13339 ..Default::default()
13340 }));
13341 }
13342 }
13343 if self.nv_clip_space_w_scaling {
13344 if !supported.nv_clip_space_w_scaling {
13345 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_clip_space_w_scaling`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13346 }
13347 }
13348 if self.nv_compute_shader_derivatives {
13349 if !supported.nv_compute_shader_derivatives {
13350 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_compute_shader_derivatives`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13351 }
13352 if !(api_version >= crate::Version::V1_1
13353 || instance_extensions.khr_get_physical_device_properties2)
13354 {
13355 return Err(Box::new(crate::ValidationError {
13356 problem: "contains `nv_compute_shader_derivatives`".into(),
13357 requires_one_of: crate::RequiresOneOf(&[
13358 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13359 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13360 "khr_get_physical_device_properties2",
13361 )]),
13362 ]),
13363 ..Default::default()
13364 }));
13365 }
13366 }
13367 if self.nv_cooperative_matrix {
13368 if !supported.nv_cooperative_matrix {
13369 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_cooperative_matrix`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13370 }
13371 if !(api_version >= crate::Version::V1_1
13372 || instance_extensions.khr_get_physical_device_properties2)
13373 {
13374 return Err(Box::new(crate::ValidationError {
13375 problem: "contains `nv_cooperative_matrix`".into(),
13376 requires_one_of: crate::RequiresOneOf(&[
13377 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13378 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13379 "khr_get_physical_device_properties2",
13380 )]),
13381 ]),
13382 ..Default::default()
13383 }));
13384 }
13385 }
13386 if self.nv_copy_memory_indirect {
13387 if !supported.nv_copy_memory_indirect {
13388 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_copy_memory_indirect`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13389 }
13390 if !(api_version >= crate::Version::V1_1
13391 || instance_extensions.khr_get_physical_device_properties2)
13392 {
13393 return Err(Box::new(crate::ValidationError {
13394 problem: "contains `nv_copy_memory_indirect`".into(),
13395 requires_one_of: crate::RequiresOneOf(&[
13396 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13397 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13398 "khr_get_physical_device_properties2",
13399 )]),
13400 ]),
13401 ..Default::default()
13402 }));
13403 }
13404 }
13405 if self.nv_corner_sampled_image {
13406 if !supported.nv_corner_sampled_image {
13407 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_corner_sampled_image`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13408 }
13409 if !(api_version >= crate::Version::V1_1
13410 || instance_extensions.khr_get_physical_device_properties2)
13411 {
13412 return Err(Box::new(crate::ValidationError {
13413 problem: "contains `nv_corner_sampled_image`".into(),
13414 requires_one_of: crate::RequiresOneOf(&[
13415 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13416 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13417 "khr_get_physical_device_properties2",
13418 )]),
13419 ]),
13420 ..Default::default()
13421 }));
13422 }
13423 }
13424 if self.nv_coverage_reduction_mode {
13425 if !supported.nv_coverage_reduction_mode {
13426 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_coverage_reduction_mode`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13427 }
13428 if !(api_version >= crate::Version::V1_1
13429 || instance_extensions.khr_get_physical_device_properties2)
13430 {
13431 return Err(Box::new(crate::ValidationError {
13432 problem: "contains `nv_coverage_reduction_mode`".into(),
13433 requires_one_of: crate::RequiresOneOf(&[
13434 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13435 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13436 "khr_get_physical_device_properties2",
13437 )]),
13438 ]),
13439 ..Default::default()
13440 }));
13441 }
13442 }
13443 if self.nv_cuda_kernel_launch {
13444 if !supported.nv_cuda_kernel_launch {
13445 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_cuda_kernel_launch`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13446 }
13447 }
13448 if self.nv_dedicated_allocation {
13449 if !supported.nv_dedicated_allocation {
13450 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_dedicated_allocation`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13451 }
13452 }
13453 if self.nv_dedicated_allocation_image_aliasing {
13454 if !supported.nv_dedicated_allocation_image_aliasing {
13455 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_dedicated_allocation_image_aliasing`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13456 }
13457 if !(api_version >= crate::Version::V1_1
13458 || instance_extensions.khr_get_physical_device_properties2)
13459 {
13460 return Err(Box::new(crate::ValidationError {
13461 problem: "contains `nv_dedicated_allocation_image_aliasing`".into(),
13462 requires_one_of: crate::RequiresOneOf(&[
13463 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13464 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13465 "khr_get_physical_device_properties2",
13466 )]),
13467 ]),
13468 ..Default::default()
13469 }));
13470 }
13471 }
13472 if self.nv_descriptor_pool_overallocation {
13473 if !supported.nv_descriptor_pool_overallocation {
13474 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_descriptor_pool_overallocation`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13475 }
13476 if !(api_version >= crate::Version::V1_1) {
13477 return Err(Box::new(crate::ValidationError {
13478 problem: "contains `nv_descriptor_pool_overallocation`".into(),
13479 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
13480 crate::Requires::APIVersion(crate::Version::V1_1),
13481 ])]),
13482 ..Default::default()
13483 }));
13484 }
13485 }
13486 if self.nv_device_diagnostic_checkpoints {
13487 if !supported.nv_device_diagnostic_checkpoints {
13488 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_device_diagnostic_checkpoints`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13489 }
13490 if !(api_version >= crate::Version::V1_1
13491 || instance_extensions.khr_get_physical_device_properties2)
13492 {
13493 return Err(Box::new(crate::ValidationError {
13494 problem: "contains `nv_device_diagnostic_checkpoints`".into(),
13495 requires_one_of: crate::RequiresOneOf(&[
13496 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13497 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13498 "khr_get_physical_device_properties2",
13499 )]),
13500 ]),
13501 ..Default::default()
13502 }));
13503 }
13504 }
13505 if self.nv_device_diagnostics_config {
13506 if !supported.nv_device_diagnostics_config {
13507 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_device_diagnostics_config`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13508 }
13509 if !(api_version >= crate::Version::V1_1
13510 || instance_extensions.khr_get_physical_device_properties2)
13511 {
13512 return Err(Box::new(crate::ValidationError {
13513 problem: "contains `nv_device_diagnostics_config`".into(),
13514 requires_one_of: crate::RequiresOneOf(&[
13515 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13516 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13517 "khr_get_physical_device_properties2",
13518 )]),
13519 ]),
13520 ..Default::default()
13521 }));
13522 }
13523 }
13524 if self.nv_device_generated_commands {
13525 if !supported.nv_device_generated_commands {
13526 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_device_generated_commands`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13527 }
13528 if !(api_version >= crate::Version::V1_1) {
13529 return Err(Box::new(crate::ValidationError {
13530 problem: "contains `nv_device_generated_commands`".into(),
13531 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
13532 crate::Requires::APIVersion(crate::Version::V1_1),
13533 ])]),
13534 ..Default::default()
13535 }));
13536 }
13537 }
13538 if self.nv_device_generated_commands_compute {
13539 if !supported.nv_device_generated_commands_compute {
13540 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_device_generated_commands_compute`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13541 }
13542 }
13543 if self.nv_displacement_micromap {
13544 if !supported.nv_displacement_micromap {
13545 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_displacement_micromap`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13546 }
13547 }
13548 if self.nv_extended_sparse_address_space {
13549 if !supported.nv_extended_sparse_address_space {
13550 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_extended_sparse_address_space`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13551 }
13552 }
13553 if self.nv_external_memory {
13554 if !supported.nv_external_memory {
13555 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_external_memory`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13556 }
13557 if !(instance_extensions.nv_external_memory_capabilities) {
13558 return Err(Box::new(crate::ValidationError {
13559 problem: "contains `nv_external_memory`".into(),
13560 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
13561 crate::Requires::InstanceExtension("nv_external_memory_capabilities"),
13562 ])]),
13563 ..Default::default()
13564 }));
13565 }
13566 }
13567 if self.nv_external_memory_rdma {
13568 if !supported.nv_external_memory_rdma {
13569 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_external_memory_rdma`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13570 }
13571 }
13572 if self.nv_external_memory_win32 {
13573 if !supported.nv_external_memory_win32 {
13574 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_external_memory_win32`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13575 }
13576 }
13577 if self.nv_fill_rectangle {
13578 if !supported.nv_fill_rectangle {
13579 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_fill_rectangle`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13580 }
13581 }
13582 if self.nv_fragment_coverage_to_color {
13583 if !supported.nv_fragment_coverage_to_color {
13584 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_fragment_coverage_to_color`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13585 }
13586 }
13587 if self.nv_fragment_shader_barycentric {
13588 if !supported.nv_fragment_shader_barycentric {
13589 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_fragment_shader_barycentric`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13590 }
13591 if !(api_version >= crate::Version::V1_1
13592 || instance_extensions.khr_get_physical_device_properties2)
13593 {
13594 return Err(Box::new(crate::ValidationError {
13595 problem: "contains `nv_fragment_shader_barycentric`".into(),
13596 requires_one_of: crate::RequiresOneOf(&[
13597 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13598 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13599 "khr_get_physical_device_properties2",
13600 )]),
13601 ]),
13602 ..Default::default()
13603 }));
13604 }
13605 }
13606 if self.nv_fragment_shading_rate_enums {
13607 if !supported.nv_fragment_shading_rate_enums {
13608 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_fragment_shading_rate_enums`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13609 }
13610 }
13611 if self.nv_framebuffer_mixed_samples {
13612 if !supported.nv_framebuffer_mixed_samples {
13613 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_framebuffer_mixed_samples`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13614 }
13615 }
13616 if self.nv_geometry_shader_passthrough {
13617 if !supported.nv_geometry_shader_passthrough {
13618 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_geometry_shader_passthrough`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13619 }
13620 }
13621 if self.nv_glsl_shader {
13622 if !supported.nv_glsl_shader {
13623 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_glsl_shader`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13624 }
13625 }
13626 if self.nv_inherited_viewport_scissor {
13627 if !supported.nv_inherited_viewport_scissor {
13628 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_inherited_viewport_scissor`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13629 }
13630 if !(api_version >= crate::Version::V1_1
13631 || instance_extensions.khr_get_physical_device_properties2)
13632 {
13633 return Err(Box::new(crate::ValidationError {
13634 problem: "contains `nv_inherited_viewport_scissor`".into(),
13635 requires_one_of: crate::RequiresOneOf(&[
13636 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13637 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13638 "khr_get_physical_device_properties2",
13639 )]),
13640 ]),
13641 ..Default::default()
13642 }));
13643 }
13644 }
13645 if self.nv_linear_color_attachment {
13646 if !supported.nv_linear_color_attachment {
13647 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_linear_color_attachment`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13648 }
13649 if !(api_version >= crate::Version::V1_1
13650 || instance_extensions.khr_get_physical_device_properties2)
13651 {
13652 return Err(Box::new(crate::ValidationError {
13653 problem: "contains `nv_linear_color_attachment`".into(),
13654 requires_one_of: crate::RequiresOneOf(&[
13655 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13656 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13657 "khr_get_physical_device_properties2",
13658 )]),
13659 ]),
13660 ..Default::default()
13661 }));
13662 }
13663 }
13664 if self.nv_low_latency {
13665 if !supported.nv_low_latency {
13666 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_low_latency`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13667 }
13668 }
13669 if self.nv_low_latency2 {
13670 if !supported.nv_low_latency2 {
13671 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_low_latency2`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13672 }
13673 }
13674 if self.nv_memory_decompression {
13675 if !supported.nv_memory_decompression {
13676 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_memory_decompression`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13677 }
13678 if !(api_version >= crate::Version::V1_1
13679 || instance_extensions.khr_get_physical_device_properties2)
13680 {
13681 return Err(Box::new(crate::ValidationError {
13682 problem: "contains `nv_memory_decompression`".into(),
13683 requires_one_of: crate::RequiresOneOf(&[
13684 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13685 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13686 "khr_get_physical_device_properties2",
13687 )]),
13688 ]),
13689 ..Default::default()
13690 }));
13691 }
13692 }
13693 if self.nv_mesh_shader {
13694 if !supported.nv_mesh_shader {
13695 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_mesh_shader`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13696 }
13697 if !(api_version >= crate::Version::V1_1
13698 || instance_extensions.khr_get_physical_device_properties2)
13699 {
13700 return Err(Box::new(crate::ValidationError {
13701 problem: "contains `nv_mesh_shader`".into(),
13702 requires_one_of: crate::RequiresOneOf(&[
13703 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13704 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13705 "khr_get_physical_device_properties2",
13706 )]),
13707 ]),
13708 ..Default::default()
13709 }));
13710 }
13711 }
13712 if self.nv_optical_flow {
13713 if !supported.nv_optical_flow {
13714 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_optical_flow`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13715 }
13716 if !(api_version >= crate::Version::V1_1
13717 || instance_extensions.khr_get_physical_device_properties2)
13718 {
13719 return Err(Box::new(crate::ValidationError {
13720 problem: "contains `nv_optical_flow`".into(),
13721 requires_one_of: crate::RequiresOneOf(&[
13722 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13723 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13724 "khr_get_physical_device_properties2",
13725 )]),
13726 ]),
13727 ..Default::default()
13728 }));
13729 }
13730 }
13731 if self.nv_per_stage_descriptor_set {
13732 if !supported.nv_per_stage_descriptor_set {
13733 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_per_stage_descriptor_set`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13734 }
13735 }
13736 if self.nv_present_barrier {
13737 if !supported.nv_present_barrier {
13738 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_present_barrier`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13739 }
13740 if !(api_version >= crate::Version::V1_1
13741 || instance_extensions.khr_get_physical_device_properties2)
13742 {
13743 return Err(Box::new(crate::ValidationError {
13744 problem: "contains `nv_present_barrier`".into(),
13745 requires_one_of: crate::RequiresOneOf(&[
13746 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13747 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13748 "khr_get_physical_device_properties2",
13749 )]),
13750 ]),
13751 ..Default::default()
13752 }));
13753 }
13754 if !(instance_extensions.khr_surface) {
13755 return Err(Box::new(crate::ValidationError {
13756 problem: "contains `nv_present_barrier`".into(),
13757 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
13758 crate::Requires::InstanceExtension("khr_surface"),
13759 ])]),
13760 ..Default::default()
13761 }));
13762 }
13763 if !(instance_extensions.khr_get_surface_capabilities2) {
13764 return Err(Box::new(crate::ValidationError {
13765 problem: "contains `nv_present_barrier`".into(),
13766 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
13767 crate::Requires::InstanceExtension("khr_get_surface_capabilities2"),
13768 ])]),
13769 ..Default::default()
13770 }));
13771 }
13772 }
13773 if self.nv_raw_access_chains {
13774 if !supported.nv_raw_access_chains {
13775 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_raw_access_chains`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13776 }
13777 }
13778 if self.nv_ray_tracing {
13779 if !supported.nv_ray_tracing {
13780 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_ray_tracing`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13781 }
13782 if !(api_version >= crate::Version::V1_1
13783 || instance_extensions.khr_get_physical_device_properties2)
13784 {
13785 return Err(Box::new(crate::ValidationError {
13786 problem: "contains `nv_ray_tracing`".into(),
13787 requires_one_of: crate::RequiresOneOf(&[
13788 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13789 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13790 "khr_get_physical_device_properties2",
13791 )]),
13792 ]),
13793 ..Default::default()
13794 }));
13795 }
13796 }
13797 if self.nv_ray_tracing_invocation_reorder {
13798 if !supported.nv_ray_tracing_invocation_reorder {
13799 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_ray_tracing_invocation_reorder`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13800 }
13801 }
13802 if self.nv_ray_tracing_motion_blur {
13803 if !supported.nv_ray_tracing_motion_blur {
13804 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_ray_tracing_motion_blur`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13805 }
13806 }
13807 if self.nv_ray_tracing_validation {
13808 if !supported.nv_ray_tracing_validation {
13809 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_ray_tracing_validation`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13810 }
13811 }
13812 if self.nv_representative_fragment_test {
13813 if !supported.nv_representative_fragment_test {
13814 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_representative_fragment_test`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13815 }
13816 if !(api_version >= crate::Version::V1_1
13817 || instance_extensions.khr_get_physical_device_properties2)
13818 {
13819 return Err(Box::new(crate::ValidationError {
13820 problem: "contains `nv_representative_fragment_test`".into(),
13821 requires_one_of: crate::RequiresOneOf(&[
13822 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13823 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13824 "khr_get_physical_device_properties2",
13825 )]),
13826 ]),
13827 ..Default::default()
13828 }));
13829 }
13830 }
13831 if self.nv_sample_mask_override_coverage {
13832 if !supported.nv_sample_mask_override_coverage {
13833 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_sample_mask_override_coverage`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13834 }
13835 }
13836 if self.nv_scissor_exclusive {
13837 if !supported.nv_scissor_exclusive {
13838 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_scissor_exclusive`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13839 }
13840 if !(api_version >= crate::Version::V1_1
13841 || instance_extensions.khr_get_physical_device_properties2)
13842 {
13843 return Err(Box::new(crate::ValidationError {
13844 problem: "contains `nv_scissor_exclusive`".into(),
13845 requires_one_of: crate::RequiresOneOf(&[
13846 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13847 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13848 "khr_get_physical_device_properties2",
13849 )]),
13850 ]),
13851 ..Default::default()
13852 }));
13853 }
13854 }
13855 if self.nv_shader_atomic_float16_vector {
13856 if !supported.nv_shader_atomic_float16_vector {
13857 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_shader_atomic_float16_vector`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13858 }
13859 }
13860 if self.nv_shader_image_footprint {
13861 if !supported.nv_shader_image_footprint {
13862 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_shader_image_footprint`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13863 }
13864 if !(api_version >= crate::Version::V1_1
13865 || instance_extensions.khr_get_physical_device_properties2)
13866 {
13867 return Err(Box::new(crate::ValidationError {
13868 problem: "contains `nv_shader_image_footprint`".into(),
13869 requires_one_of: crate::RequiresOneOf(&[
13870 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13871 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13872 "khr_get_physical_device_properties2",
13873 )]),
13874 ]),
13875 ..Default::default()
13876 }));
13877 }
13878 }
13879 if self.nv_shader_sm_builtins {
13880 if !supported.nv_shader_sm_builtins {
13881 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_shader_sm_builtins`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13882 }
13883 if !(api_version >= crate::Version::V1_1) {
13884 return Err(Box::new(crate::ValidationError {
13885 problem: "contains `nv_shader_sm_builtins`".into(),
13886 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
13887 crate::Requires::APIVersion(crate::Version::V1_1),
13888 ])]),
13889 ..Default::default()
13890 }));
13891 }
13892 }
13893 if self.nv_shader_subgroup_partitioned {
13894 if !supported.nv_shader_subgroup_partitioned {
13895 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_shader_subgroup_partitioned`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13896 }
13897 if !(api_version >= crate::Version::V1_1) {
13898 return Err(Box::new(crate::ValidationError {
13899 problem: "contains `nv_shader_subgroup_partitioned`".into(),
13900 requires_one_of: crate::RequiresOneOf(&[crate::RequiresAllOf(&[
13901 crate::Requires::APIVersion(crate::Version::V1_1),
13902 ])]),
13903 ..Default::default()
13904 }));
13905 }
13906 }
13907 if self.nv_shading_rate_image {
13908 if !supported.nv_shading_rate_image {
13909 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_shading_rate_image`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13910 }
13911 if !(api_version >= crate::Version::V1_1
13912 || instance_extensions.khr_get_physical_device_properties2)
13913 {
13914 return Err(Box::new(crate::ValidationError {
13915 problem: "contains `nv_shading_rate_image`".into(),
13916 requires_one_of: crate::RequiresOneOf(&[
13917 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13918 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13919 "khr_get_physical_device_properties2",
13920 )]),
13921 ]),
13922 ..Default::default()
13923 }));
13924 }
13925 }
13926 if self.nv_viewport_array2 {
13927 if !supported.nv_viewport_array2 {
13928 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_viewport_array2`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13929 }
13930 }
13931 if self.nv_viewport_swizzle {
13932 if !supported.nv_viewport_swizzle {
13933 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_viewport_swizzle`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13934 }
13935 }
13936 if self.nv_win32_keyed_mutex {
13937 if !supported.nv_win32_keyed_mutex {
13938 return Err (Box :: new (crate :: ValidationError { problem : "contains `nv_win32_keyed_mutex`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13939 }
13940 }
13941 if self.qcom_filter_cubic_clamp {
13942 if !supported.qcom_filter_cubic_clamp {
13943 return Err (Box :: new (crate :: ValidationError { problem : "contains `qcom_filter_cubic_clamp`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13944 }
13945 }
13946 if self.qcom_filter_cubic_weights {
13947 if !supported.qcom_filter_cubic_weights {
13948 return Err (Box :: new (crate :: ValidationError { problem : "contains `qcom_filter_cubic_weights`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13949 }
13950 }
13951 if self.qcom_fragment_density_map_offset {
13952 if !supported.qcom_fragment_density_map_offset {
13953 return Err (Box :: new (crate :: ValidationError { problem : "contains `qcom_fragment_density_map_offset`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13954 }
13955 if !(api_version >= crate::Version::V1_1
13956 || instance_extensions.khr_get_physical_device_properties2)
13957 {
13958 return Err(Box::new(crate::ValidationError {
13959 problem: "contains `qcom_fragment_density_map_offset`".into(),
13960 requires_one_of: crate::RequiresOneOf(&[
13961 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13962 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13963 "khr_get_physical_device_properties2",
13964 )]),
13965 ]),
13966 ..Default::default()
13967 }));
13968 }
13969 }
13970 if self.qcom_image_processing {
13971 if !supported.qcom_image_processing {
13972 return Err (Box :: new (crate :: ValidationError { problem : "contains `qcom_image_processing`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13973 }
13974 }
13975 if self.qcom_image_processing2 {
13976 if !supported.qcom_image_processing2 {
13977 return Err (Box :: new (crate :: ValidationError { problem : "contains `qcom_image_processing2`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13978 }
13979 }
13980 if self.qcom_multiview_per_view_render_areas {
13981 if !supported.qcom_multiview_per_view_render_areas {
13982 return Err (Box :: new (crate :: ValidationError { problem : "contains `qcom_multiview_per_view_render_areas`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13983 }
13984 }
13985 if self.qcom_multiview_per_view_viewports {
13986 if !supported.qcom_multiview_per_view_viewports {
13987 return Err (Box :: new (crate :: ValidationError { problem : "contains `qcom_multiview_per_view_viewports`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
13988 }
13989 if !(api_version >= crate::Version::V1_1
13990 || instance_extensions.khr_get_physical_device_properties2)
13991 {
13992 return Err(Box::new(crate::ValidationError {
13993 problem: "contains `qcom_multiview_per_view_viewports`".into(),
13994 requires_one_of: crate::RequiresOneOf(&[
13995 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
13996 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
13997 "khr_get_physical_device_properties2",
13998 )]),
13999 ]),
14000 ..Default::default()
14001 }));
14002 }
14003 }
14004 if self.qcom_render_pass_shader_resolve {
14005 if !supported.qcom_render_pass_shader_resolve {
14006 return Err (Box :: new (crate :: ValidationError { problem : "contains `qcom_render_pass_shader_resolve`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
14007 }
14008 }
14009 if self.qcom_render_pass_store_ops {
14010 if !supported.qcom_render_pass_store_ops {
14011 return Err (Box :: new (crate :: ValidationError { problem : "contains `qcom_render_pass_store_ops`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
14012 }
14013 }
14014 if self.qcom_render_pass_transform {
14015 if !supported.qcom_render_pass_transform {
14016 return Err (Box :: new (crate :: ValidationError { problem : "contains `qcom_render_pass_transform`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
14017 }
14018 }
14019 if self.qcom_rotated_copy_commands {
14020 if !supported.qcom_rotated_copy_commands {
14021 return Err (Box :: new (crate :: ValidationError { problem : "contains `qcom_rotated_copy_commands`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
14022 }
14023 }
14024 if self.qcom_tile_properties {
14025 if !supported.qcom_tile_properties {
14026 return Err (Box :: new (crate :: ValidationError { problem : "contains `qcom_tile_properties`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
14027 }
14028 if !(api_version >= crate::Version::V1_1
14029 || instance_extensions.khr_get_physical_device_properties2)
14030 {
14031 return Err(Box::new(crate::ValidationError {
14032 problem: "contains `qcom_tile_properties`".into(),
14033 requires_one_of: crate::RequiresOneOf(&[
14034 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
14035 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
14036 "khr_get_physical_device_properties2",
14037 )]),
14038 ]),
14039 ..Default::default()
14040 }));
14041 }
14042 }
14043 if self.qcom_ycbcr_degamma {
14044 if !supported.qcom_ycbcr_degamma {
14045 return Err (Box :: new (crate :: ValidationError { problem : "contains `qcom_ycbcr_degamma`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
14046 }
14047 }
14048 if self.qnx_external_memory_screen_buffer {
14049 if !supported.qnx_external_memory_screen_buffer {
14050 return Err (Box :: new (crate :: ValidationError { problem : "contains `qnx_external_memory_screen_buffer`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
14051 }
14052 }
14053 if self.sec_amigo_profiling {
14054 if !supported.sec_amigo_profiling {
14055 return Err (Box :: new (crate :: ValidationError { problem : "contains `sec_amigo_profiling`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
14056 }
14057 if !(api_version >= crate::Version::V1_1
14058 || instance_extensions.khr_get_physical_device_properties2)
14059 {
14060 return Err(Box::new(crate::ValidationError {
14061 problem: "contains `sec_amigo_profiling`".into(),
14062 requires_one_of: crate::RequiresOneOf(&[
14063 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
14064 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
14065 "khr_get_physical_device_properties2",
14066 )]),
14067 ]),
14068 ..Default::default()
14069 }));
14070 }
14071 }
14072 if self.valve_descriptor_set_host_mapping {
14073 if !supported.valve_descriptor_set_host_mapping {
14074 return Err (Box :: new (crate :: ValidationError { problem : "contains `valve_descriptor_set_host_mapping`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
14075 }
14076 if !(api_version >= crate::Version::V1_1
14077 || instance_extensions.khr_get_physical_device_properties2)
14078 {
14079 return Err(Box::new(crate::ValidationError {
14080 problem: "contains `valve_descriptor_set_host_mapping`".into(),
14081 requires_one_of: crate::RequiresOneOf(&[
14082 crate::RequiresAllOf(&[crate::Requires::APIVersion(crate::Version::V1_1)]),
14083 crate::RequiresAllOf(&[crate::Requires::InstanceExtension(
14084 "khr_get_physical_device_properties2",
14085 )]),
14086 ]),
14087 ..Default::default()
14088 }));
14089 }
14090 }
14091 if self.valve_mutable_descriptor_type {
14092 if !supported.valve_mutable_descriptor_type {
14093 return Err (Box :: new (crate :: ValidationError { problem : "contains `valve_mutable_descriptor_type`, but this extension is not supported by the physical device" . into () , .. Default :: default () })) ;
14094 }
14095 }
14096 Ok(())
14097 }
14098 #[doc = r" Enables all the extensions that the extensions in `self` currently depend on."]
14099 pub(super) fn enable_dependencies(
14100 &mut self,
14101 api_version: crate::Version,
14102 supported: &DeviceExtensions,
14103 ) {
14104 if self.khr_16bit_storage {
14105 if !(api_version >= crate::Version::V1_1 || self.khr_storage_buffer_storage_class) {
14106 assert!(
14107 supported.khr_storage_buffer_storage_class,
14108 "The device extension `{}` is enabled, and it requires \
14109 the `{}` extension to be also enabled, but the device \
14110 does not support the required extension. \
14111 This is a bug in the Vulkan driver for this device.",
14112 "khr_16bit_storage", "khr_storage_buffer_storage_class",
14113 );
14114 self.khr_storage_buffer_storage_class = true;
14115 }
14116 }
14117 if self.khr_8bit_storage {
14118 if !(api_version >= crate::Version::V1_1 || self.khr_storage_buffer_storage_class) {
14119 assert!(
14120 supported.khr_storage_buffer_storage_class,
14121 "The device extension `{}` is enabled, and it requires \
14122 the `{}` extension to be also enabled, but the device \
14123 does not support the required extension. \
14124 This is a bug in the Vulkan driver for this device.",
14125 "khr_8bit_storage", "khr_storage_buffer_storage_class",
14126 );
14127 self.khr_storage_buffer_storage_class = true;
14128 }
14129 }
14130 if self.khr_acceleration_structure {
14131 if !(api_version >= crate::Version::V1_2 || self.ext_descriptor_indexing) {
14132 assert!(
14133 supported.ext_descriptor_indexing,
14134 "The device extension `{}` is enabled, and it requires \
14135 the `{}` extension to be also enabled, but the device \
14136 does not support the required extension. \
14137 This is a bug in the Vulkan driver for this device.",
14138 "khr_acceleration_structure", "ext_descriptor_indexing",
14139 );
14140 self.ext_descriptor_indexing = true;
14141 }
14142 if !(api_version >= crate::Version::V1_2 || self.khr_buffer_device_address) {
14143 assert!(
14144 supported.khr_buffer_device_address,
14145 "The device extension `{}` is enabled, and it requires \
14146 the `{}` extension to be also enabled, but the device \
14147 does not support the required extension. \
14148 This is a bug in the Vulkan driver for this device.",
14149 "khr_acceleration_structure", "khr_buffer_device_address",
14150 );
14151 self.khr_buffer_device_address = true;
14152 }
14153 if !(self.khr_deferred_host_operations) {
14154 assert!(
14155 supported.khr_deferred_host_operations,
14156 "The device extension `{}` is enabled, and it requires \
14157 the `{}` extension to be also enabled, but the device \
14158 does not support the required extension. \
14159 This is a bug in the Vulkan driver for this device.",
14160 "khr_acceleration_structure", "khr_deferred_host_operations",
14161 );
14162 self.khr_deferred_host_operations = true;
14163 }
14164 }
14165 if self.khr_buffer_device_address {
14166 if !(api_version >= crate::Version::V1_1 || self.khr_device_group) {
14167 assert!(
14168 supported.khr_device_group,
14169 "The device extension `{}` is enabled, and it requires \
14170 the `{}` extension to be also enabled, but the device \
14171 does not support the required extension. \
14172 This is a bug in the Vulkan driver for this device.",
14173 "khr_buffer_device_address", "khr_device_group",
14174 );
14175 self.khr_device_group = true;
14176 }
14177 }
14178 if self.khr_create_renderpass2 {
14179 if !(api_version >= crate::Version::V1_1 || self.khr_multiview) {
14180 assert!(
14181 supported.khr_multiview,
14182 "The device extension `{}` is enabled, and it requires \
14183 the `{}` extension to be also enabled, but the device \
14184 does not support the required extension. \
14185 This is a bug in the Vulkan driver for this device.",
14186 "khr_create_renderpass2", "khr_multiview",
14187 );
14188 self.khr_multiview = true;
14189 }
14190 if !(api_version >= crate::Version::V1_1 || self.khr_maintenance2) {
14191 assert!(
14192 supported.khr_maintenance2,
14193 "The device extension `{}` is enabled, and it requires \
14194 the `{}` extension to be also enabled, but the device \
14195 does not support the required extension. \
14196 This is a bug in the Vulkan driver for this device.",
14197 "khr_create_renderpass2", "khr_maintenance2",
14198 );
14199 self.khr_maintenance2 = true;
14200 }
14201 }
14202 if self.khr_dedicated_allocation {
14203 if !(api_version >= crate::Version::V1_1 || self.khr_get_memory_requirements2) {
14204 assert!(
14205 supported.khr_get_memory_requirements2,
14206 "The device extension `{}` is enabled, and it requires \
14207 the `{}` extension to be also enabled, but the device \
14208 does not support the required extension. \
14209 This is a bug in the Vulkan driver for this device.",
14210 "khr_dedicated_allocation", "khr_get_memory_requirements2",
14211 );
14212 self.khr_get_memory_requirements2 = true;
14213 }
14214 }
14215 if self.khr_depth_stencil_resolve {
14216 if !(api_version >= crate::Version::V1_2 || self.khr_create_renderpass2) {
14217 assert!(
14218 supported.khr_create_renderpass2,
14219 "The device extension `{}` is enabled, and it requires \
14220 the `{}` extension to be also enabled, but the device \
14221 does not support the required extension. \
14222 This is a bug in the Vulkan driver for this device.",
14223 "khr_depth_stencil_resolve", "khr_create_renderpass2",
14224 );
14225 self.khr_create_renderpass2 = true;
14226 }
14227 }
14228 if self.khr_display_swapchain {
14229 if !(self.khr_swapchain) {
14230 assert!(
14231 supported.khr_swapchain,
14232 "The device extension `{}` is enabled, and it requires \
14233 the `{}` extension to be also enabled, but the device \
14234 does not support the required extension. \
14235 This is a bug in the Vulkan driver for this device.",
14236 "khr_display_swapchain", "khr_swapchain",
14237 );
14238 self.khr_swapchain = true;
14239 }
14240 }
14241 if self.khr_dynamic_rendering {
14242 if !(api_version >= crate::Version::V1_2 || self.khr_depth_stencil_resolve) {
14243 assert!(
14244 supported.khr_depth_stencil_resolve,
14245 "The device extension `{}` is enabled, and it requires \
14246 the `{}` extension to be also enabled, but the device \
14247 does not support the required extension. \
14248 This is a bug in the Vulkan driver for this device.",
14249 "khr_dynamic_rendering", "khr_depth_stencil_resolve",
14250 );
14251 self.khr_depth_stencil_resolve = true;
14252 }
14253 }
14254 if self.khr_dynamic_rendering_local_read {
14255 if !(api_version >= crate::Version::V1_3 || self.khr_dynamic_rendering) {
14256 assert!(
14257 supported.khr_dynamic_rendering,
14258 "The device extension `{}` is enabled, and it requires \
14259 the `{}` extension to be also enabled, but the device \
14260 does not support the required extension. \
14261 This is a bug in the Vulkan driver for this device.",
14262 "khr_dynamic_rendering_local_read", "khr_dynamic_rendering",
14263 );
14264 self.khr_dynamic_rendering = true;
14265 }
14266 }
14267 if self.khr_external_fence_fd {
14268 if !(api_version >= crate::Version::V1_1 || self.khr_external_fence) {
14269 assert!(
14270 supported.khr_external_fence,
14271 "The device extension `{}` is enabled, and it requires \
14272 the `{}` extension to be also enabled, but the device \
14273 does not support the required extension. \
14274 This is a bug in the Vulkan driver for this device.",
14275 "khr_external_fence_fd", "khr_external_fence",
14276 );
14277 self.khr_external_fence = true;
14278 }
14279 }
14280 if self.khr_external_fence_win32 {
14281 if !(api_version >= crate::Version::V1_1 || self.khr_external_fence) {
14282 assert!(
14283 supported.khr_external_fence,
14284 "The device extension `{}` is enabled, and it requires \
14285 the `{}` extension to be also enabled, but the device \
14286 does not support the required extension. \
14287 This is a bug in the Vulkan driver for this device.",
14288 "khr_external_fence_win32", "khr_external_fence",
14289 );
14290 self.khr_external_fence = true;
14291 }
14292 }
14293 if self.khr_external_memory_fd {
14294 if !(api_version >= crate::Version::V1_1 || self.khr_external_memory) {
14295 assert!(
14296 supported.khr_external_memory,
14297 "The device extension `{}` is enabled, and it requires \
14298 the `{}` extension to be also enabled, but the device \
14299 does not support the required extension. \
14300 This is a bug in the Vulkan driver for this device.",
14301 "khr_external_memory_fd", "khr_external_memory",
14302 );
14303 self.khr_external_memory = true;
14304 }
14305 }
14306 if self.khr_external_memory_win32 {
14307 if !(api_version >= crate::Version::V1_1 || self.khr_external_memory) {
14308 assert!(
14309 supported.khr_external_memory,
14310 "The device extension `{}` is enabled, and it requires \
14311 the `{}` extension to be also enabled, but the device \
14312 does not support the required extension. \
14313 This is a bug in the Vulkan driver for this device.",
14314 "khr_external_memory_win32", "khr_external_memory",
14315 );
14316 self.khr_external_memory = true;
14317 }
14318 }
14319 if self.khr_external_semaphore_fd {
14320 if !(api_version >= crate::Version::V1_1 || self.khr_external_semaphore) {
14321 assert!(
14322 supported.khr_external_semaphore,
14323 "The device extension `{}` is enabled, and it requires \
14324 the `{}` extension to be also enabled, but the device \
14325 does not support the required extension. \
14326 This is a bug in the Vulkan driver for this device.",
14327 "khr_external_semaphore_fd", "khr_external_semaphore",
14328 );
14329 self.khr_external_semaphore = true;
14330 }
14331 }
14332 if self.khr_external_semaphore_win32 {
14333 if !(api_version >= crate::Version::V1_1 || self.khr_external_semaphore) {
14334 assert!(
14335 supported.khr_external_semaphore,
14336 "The device extension `{}` is enabled, and it requires \
14337 the `{}` extension to be also enabled, but the device \
14338 does not support the required extension. \
14339 This is a bug in the Vulkan driver for this device.",
14340 "khr_external_semaphore_win32", "khr_external_semaphore",
14341 );
14342 self.khr_external_semaphore = true;
14343 }
14344 }
14345 if self.khr_fragment_shading_rate {
14346 if !(api_version >= crate::Version::V1_2 || self.khr_create_renderpass2) {
14347 assert!(
14348 supported.khr_create_renderpass2,
14349 "The device extension `{}` is enabled, and it requires \
14350 the `{}` extension to be also enabled, but the device \
14351 does not support the required extension. \
14352 This is a bug in the Vulkan driver for this device.",
14353 "khr_fragment_shading_rate", "khr_create_renderpass2",
14354 );
14355 self.khr_create_renderpass2 = true;
14356 }
14357 }
14358 if self.khr_imageless_framebuffer {
14359 if !(api_version >= crate::Version::V1_1 || self.khr_maintenance2) {
14360 assert!(
14361 supported.khr_maintenance2,
14362 "The device extension `{}` is enabled, and it requires \
14363 the `{}` extension to be also enabled, but the device \
14364 does not support the required extension. \
14365 This is a bug in the Vulkan driver for this device.",
14366 "khr_imageless_framebuffer", "khr_maintenance2",
14367 );
14368 self.khr_maintenance2 = true;
14369 }
14370 if !(api_version >= crate::Version::V1_2 || self.khr_image_format_list) {
14371 assert!(
14372 supported.khr_image_format_list,
14373 "The device extension `{}` is enabled, and it requires \
14374 the `{}` extension to be also enabled, but the device \
14375 does not support the required extension. \
14376 This is a bug in the Vulkan driver for this device.",
14377 "khr_imageless_framebuffer", "khr_image_format_list",
14378 );
14379 self.khr_image_format_list = true;
14380 }
14381 }
14382 if self.khr_incremental_present {
14383 if !(self.khr_swapchain) {
14384 assert!(
14385 supported.khr_swapchain,
14386 "The device extension `{}` is enabled, and it requires \
14387 the `{}` extension to be also enabled, but the device \
14388 does not support the required extension. \
14389 This is a bug in the Vulkan driver for this device.",
14390 "khr_incremental_present", "khr_swapchain",
14391 );
14392 self.khr_swapchain = true;
14393 }
14394 }
14395 if self.khr_maintenance5 {
14396 if !(api_version >= crate::Version::V1_3 || self.khr_dynamic_rendering) {
14397 assert!(
14398 supported.khr_dynamic_rendering,
14399 "The device extension `{}` is enabled, and it requires \
14400 the `{}` extension to be also enabled, but the device \
14401 does not support the required extension. \
14402 This is a bug in the Vulkan driver for this device.",
14403 "khr_maintenance5", "khr_dynamic_rendering",
14404 );
14405 self.khr_dynamic_rendering = true;
14406 }
14407 }
14408 if self.khr_present_id {
14409 if !(api_version >= crate::Version::V1_1 || self.khr_swapchain) {
14410 assert!(
14411 supported.khr_swapchain,
14412 "The device extension `{}` is enabled, and it requires \
14413 the `{}` extension to be also enabled, but the device \
14414 does not support the required extension. \
14415 This is a bug in the Vulkan driver for this device.",
14416 "khr_present_id", "khr_swapchain",
14417 );
14418 self.khr_swapchain = true;
14419 }
14420 }
14421 if self.khr_present_wait {
14422 if !(self.khr_swapchain) {
14423 assert!(
14424 supported.khr_swapchain,
14425 "The device extension `{}` is enabled, and it requires \
14426 the `{}` extension to be also enabled, but the device \
14427 does not support the required extension. \
14428 This is a bug in the Vulkan driver for this device.",
14429 "khr_present_wait", "khr_swapchain",
14430 );
14431 self.khr_swapchain = true;
14432 }
14433 if !(self.khr_present_id) {
14434 assert!(
14435 supported.khr_present_id,
14436 "The device extension `{}` is enabled, and it requires \
14437 the `{}` extension to be also enabled, but the device \
14438 does not support the required extension. \
14439 This is a bug in the Vulkan driver for this device.",
14440 "khr_present_wait", "khr_present_id",
14441 );
14442 self.khr_present_id = true;
14443 }
14444 }
14445 if self.khr_ray_query {
14446 if !(api_version >= crate::Version::V1_2 || self.khr_spirv_1_4) {
14447 assert!(
14448 supported.khr_spirv_1_4,
14449 "The device extension `{}` is enabled, and it requires \
14450 the `{}` extension to be also enabled, but the device \
14451 does not support the required extension. \
14452 This is a bug in the Vulkan driver for this device.",
14453 "khr_ray_query", "khr_spirv_1_4",
14454 );
14455 self.khr_spirv_1_4 = true;
14456 }
14457 if !(self.khr_acceleration_structure) {
14458 assert!(
14459 supported.khr_acceleration_structure,
14460 "The device extension `{}` is enabled, and it requires \
14461 the `{}` extension to be also enabled, but the device \
14462 does not support the required extension. \
14463 This is a bug in the Vulkan driver for this device.",
14464 "khr_ray_query", "khr_acceleration_structure",
14465 );
14466 self.khr_acceleration_structure = true;
14467 }
14468 }
14469 if self.khr_ray_tracing_maintenance1 {
14470 if !(self.khr_acceleration_structure) {
14471 assert!(
14472 supported.khr_acceleration_structure,
14473 "The device extension `{}` is enabled, and it requires \
14474 the `{}` extension to be also enabled, but the device \
14475 does not support the required extension. \
14476 This is a bug in the Vulkan driver for this device.",
14477 "khr_ray_tracing_maintenance1", "khr_acceleration_structure",
14478 );
14479 self.khr_acceleration_structure = true;
14480 }
14481 }
14482 if self.khr_ray_tracing_pipeline {
14483 if !(api_version >= crate::Version::V1_2 || self.khr_spirv_1_4) {
14484 assert!(
14485 supported.khr_spirv_1_4,
14486 "The device extension `{}` is enabled, and it requires \
14487 the `{}` extension to be also enabled, but the device \
14488 does not support the required extension. \
14489 This is a bug in the Vulkan driver for this device.",
14490 "khr_ray_tracing_pipeline", "khr_spirv_1_4",
14491 );
14492 self.khr_spirv_1_4 = true;
14493 }
14494 if !(self.khr_acceleration_structure) {
14495 assert!(
14496 supported.khr_acceleration_structure,
14497 "The device extension `{}` is enabled, and it requires \
14498 the `{}` extension to be also enabled, but the device \
14499 does not support the required extension. \
14500 This is a bug in the Vulkan driver for this device.",
14501 "khr_ray_tracing_pipeline", "khr_acceleration_structure",
14502 );
14503 self.khr_acceleration_structure = true;
14504 }
14505 }
14506 if self.khr_ray_tracing_position_fetch {
14507 if !(self.khr_acceleration_structure) {
14508 assert!(
14509 supported.khr_acceleration_structure,
14510 "The device extension `{}` is enabled, and it requires \
14511 the `{}` extension to be also enabled, but the device \
14512 does not support the required extension. \
14513 This is a bug in the Vulkan driver for this device.",
14514 "khr_ray_tracing_position_fetch", "khr_acceleration_structure",
14515 );
14516 self.khr_acceleration_structure = true;
14517 }
14518 }
14519 if self.khr_sampler_ycbcr_conversion {
14520 if !(api_version >= crate::Version::V1_1 || self.khr_maintenance1) {
14521 assert!(
14522 supported.khr_maintenance1,
14523 "The device extension `{}` is enabled, and it requires \
14524 the `{}` extension to be also enabled, but the device \
14525 does not support the required extension. \
14526 This is a bug in the Vulkan driver for this device.",
14527 "khr_sampler_ycbcr_conversion", "khr_maintenance1",
14528 );
14529 self.khr_maintenance1 = true;
14530 }
14531 if !(api_version >= crate::Version::V1_1 || self.khr_bind_memory2) {
14532 assert!(
14533 supported.khr_bind_memory2,
14534 "The device extension `{}` is enabled, and it requires \
14535 the `{}` extension to be also enabled, but the device \
14536 does not support the required extension. \
14537 This is a bug in the Vulkan driver for this device.",
14538 "khr_sampler_ycbcr_conversion", "khr_bind_memory2",
14539 );
14540 self.khr_bind_memory2 = true;
14541 }
14542 if !(api_version >= crate::Version::V1_1 || self.khr_get_memory_requirements2) {
14543 assert!(
14544 supported.khr_get_memory_requirements2,
14545 "The device extension `{}` is enabled, and it requires \
14546 the `{}` extension to be also enabled, but the device \
14547 does not support the required extension. \
14548 This is a bug in the Vulkan driver for this device.",
14549 "khr_sampler_ycbcr_conversion", "khr_get_memory_requirements2",
14550 );
14551 self.khr_get_memory_requirements2 = true;
14552 }
14553 }
14554 if self.khr_separate_depth_stencil_layouts {
14555 if !(api_version >= crate::Version::V1_2 || self.khr_create_renderpass2) {
14556 assert!(
14557 supported.khr_create_renderpass2,
14558 "The device extension `{}` is enabled, and it requires \
14559 the `{}` extension to be also enabled, but the device \
14560 does not support the required extension. \
14561 This is a bug in the Vulkan driver for this device.",
14562 "khr_separate_depth_stencil_layouts", "khr_create_renderpass2",
14563 );
14564 self.khr_create_renderpass2 = true;
14565 }
14566 }
14567 if self.khr_shader_float_controls2 {
14568 if !(api_version >= crate::Version::V1_2 || self.khr_shader_float_controls) {
14569 assert!(
14570 supported.khr_shader_float_controls,
14571 "The device extension `{}` is enabled, and it requires \
14572 the `{}` extension to be also enabled, but the device \
14573 does not support the required extension. \
14574 This is a bug in the Vulkan driver for this device.",
14575 "khr_shader_float_controls2", "khr_shader_float_controls",
14576 );
14577 self.khr_shader_float_controls = true;
14578 }
14579 }
14580 if self.khr_shader_quad_control {
14581 if !(api_version >= crate::Version::V1_2 || self.khr_vulkan_memory_model) {
14582 assert!(
14583 supported.khr_vulkan_memory_model,
14584 "The device extension `{}` is enabled, and it requires \
14585 the `{}` extension to be also enabled, but the device \
14586 does not support the required extension. \
14587 This is a bug in the Vulkan driver for this device.",
14588 "khr_shader_quad_control", "khr_vulkan_memory_model",
14589 );
14590 self.khr_vulkan_memory_model = true;
14591 }
14592 if !(self.khr_shader_maximal_reconvergence) {
14593 assert!(
14594 supported.khr_shader_maximal_reconvergence,
14595 "The device extension `{}` is enabled, and it requires \
14596 the `{}` extension to be also enabled, but the device \
14597 does not support the required extension. \
14598 This is a bug in the Vulkan driver for this device.",
14599 "khr_shader_quad_control", "khr_shader_maximal_reconvergence",
14600 );
14601 self.khr_shader_maximal_reconvergence = true;
14602 }
14603 }
14604 if self.khr_shared_presentable_image {
14605 if !(self.khr_swapchain) {
14606 assert!(
14607 supported.khr_swapchain,
14608 "The device extension `{}` is enabled, and it requires \
14609 the `{}` extension to be also enabled, but the device \
14610 does not support the required extension. \
14611 This is a bug in the Vulkan driver for this device.",
14612 "khr_shared_presentable_image", "khr_swapchain",
14613 );
14614 self.khr_swapchain = true;
14615 }
14616 }
14617 if self.khr_spirv_1_4 {
14618 if !(api_version >= crate::Version::V1_2 || self.khr_shader_float_controls) {
14619 assert!(
14620 supported.khr_shader_float_controls,
14621 "The device extension `{}` is enabled, and it requires \
14622 the `{}` extension to be also enabled, but the device \
14623 does not support the required extension. \
14624 This is a bug in the Vulkan driver for this device.",
14625 "khr_spirv_1_4", "khr_shader_float_controls",
14626 );
14627 self.khr_shader_float_controls = true;
14628 }
14629 }
14630 if self.khr_swapchain_mutable_format {
14631 if !(self.khr_swapchain) {
14632 assert!(
14633 supported.khr_swapchain,
14634 "The device extension `{}` is enabled, and it requires \
14635 the `{}` extension to be also enabled, but the device \
14636 does not support the required extension. \
14637 This is a bug in the Vulkan driver for this device.",
14638 "khr_swapchain_mutable_format", "khr_swapchain",
14639 );
14640 self.khr_swapchain = true;
14641 }
14642 if !(api_version >= crate::Version::V1_1 || self.khr_maintenance2) {
14643 assert!(
14644 supported.khr_maintenance2,
14645 "The device extension `{}` is enabled, and it requires \
14646 the `{}` extension to be also enabled, but the device \
14647 does not support the required extension. \
14648 This is a bug in the Vulkan driver for this device.",
14649 "khr_swapchain_mutable_format", "khr_maintenance2",
14650 );
14651 self.khr_maintenance2 = true;
14652 }
14653 if !(api_version >= crate::Version::V1_2 || self.khr_image_format_list) {
14654 assert!(
14655 supported.khr_image_format_list,
14656 "The device extension `{}` is enabled, and it requires \
14657 the `{}` extension to be also enabled, but the device \
14658 does not support the required extension. \
14659 This is a bug in the Vulkan driver for this device.",
14660 "khr_swapchain_mutable_format", "khr_image_format_list",
14661 );
14662 self.khr_image_format_list = true;
14663 }
14664 }
14665 if self.khr_variable_pointers {
14666 if !(api_version >= crate::Version::V1_1 || self.khr_storage_buffer_storage_class) {
14667 assert!(
14668 supported.khr_storage_buffer_storage_class,
14669 "The device extension `{}` is enabled, and it requires \
14670 the `{}` extension to be also enabled, but the device \
14671 does not support the required extension. \
14672 This is a bug in the Vulkan driver for this device.",
14673 "khr_variable_pointers", "khr_storage_buffer_storage_class",
14674 );
14675 self.khr_storage_buffer_storage_class = true;
14676 }
14677 }
14678 if self.khr_video_decode_av1 {
14679 if !(self.khr_video_decode_queue) {
14680 assert!(
14681 supported.khr_video_decode_queue,
14682 "The device extension `{}` is enabled, and it requires \
14683 the `{}` extension to be also enabled, but the device \
14684 does not support the required extension. \
14685 This is a bug in the Vulkan driver for this device.",
14686 "khr_video_decode_av1", "khr_video_decode_queue",
14687 );
14688 self.khr_video_decode_queue = true;
14689 }
14690 }
14691 if self.khr_video_decode_h264 {
14692 if !(self.khr_video_decode_queue) {
14693 assert!(
14694 supported.khr_video_decode_queue,
14695 "The device extension `{}` is enabled, and it requires \
14696 the `{}` extension to be also enabled, but the device \
14697 does not support the required extension. \
14698 This is a bug in the Vulkan driver for this device.",
14699 "khr_video_decode_h264", "khr_video_decode_queue",
14700 );
14701 self.khr_video_decode_queue = true;
14702 }
14703 }
14704 if self.khr_video_decode_h265 {
14705 if !(self.khr_video_decode_queue) {
14706 assert!(
14707 supported.khr_video_decode_queue,
14708 "The device extension `{}` is enabled, and it requires \
14709 the `{}` extension to be also enabled, but the device \
14710 does not support the required extension. \
14711 This is a bug in the Vulkan driver for this device.",
14712 "khr_video_decode_h265", "khr_video_decode_queue",
14713 );
14714 self.khr_video_decode_queue = true;
14715 }
14716 }
14717 if self.khr_video_decode_queue {
14718 if !(self.khr_video_queue) {
14719 assert!(
14720 supported.khr_video_queue,
14721 "The device extension `{}` is enabled, and it requires \
14722 the `{}` extension to be also enabled, but the device \
14723 does not support the required extension. \
14724 This is a bug in the Vulkan driver for this device.",
14725 "khr_video_decode_queue", "khr_video_queue",
14726 );
14727 self.khr_video_queue = true;
14728 }
14729 if !(api_version >= crate::Version::V1_3 || self.khr_synchronization2) {
14730 assert!(
14731 supported.khr_synchronization2,
14732 "The device extension `{}` is enabled, and it requires \
14733 the `{}` extension to be also enabled, but the device \
14734 does not support the required extension. \
14735 This is a bug in the Vulkan driver for this device.",
14736 "khr_video_decode_queue", "khr_synchronization2",
14737 );
14738 self.khr_synchronization2 = true;
14739 }
14740 }
14741 if self.khr_video_encode_h264 {
14742 if !(self.khr_video_encode_queue) {
14743 assert!(
14744 supported.khr_video_encode_queue,
14745 "The device extension `{}` is enabled, and it requires \
14746 the `{}` extension to be also enabled, but the device \
14747 does not support the required extension. \
14748 This is a bug in the Vulkan driver for this device.",
14749 "khr_video_encode_h264", "khr_video_encode_queue",
14750 );
14751 self.khr_video_encode_queue = true;
14752 }
14753 }
14754 if self.khr_video_encode_h265 {
14755 if !(self.khr_video_encode_queue) {
14756 assert!(
14757 supported.khr_video_encode_queue,
14758 "The device extension `{}` is enabled, and it requires \
14759 the `{}` extension to be also enabled, but the device \
14760 does not support the required extension. \
14761 This is a bug in the Vulkan driver for this device.",
14762 "khr_video_encode_h265", "khr_video_encode_queue",
14763 );
14764 self.khr_video_encode_queue = true;
14765 }
14766 }
14767 if self.khr_video_encode_queue {
14768 if !(self.khr_video_queue) {
14769 assert!(
14770 supported.khr_video_queue,
14771 "The device extension `{}` is enabled, and it requires \
14772 the `{}` extension to be also enabled, but the device \
14773 does not support the required extension. \
14774 This is a bug in the Vulkan driver for this device.",
14775 "khr_video_encode_queue", "khr_video_queue",
14776 );
14777 self.khr_video_queue = true;
14778 }
14779 if !(api_version >= crate::Version::V1_3 || self.khr_synchronization2) {
14780 assert!(
14781 supported.khr_synchronization2,
14782 "The device extension `{}` is enabled, and it requires \
14783 the `{}` extension to be also enabled, but the device \
14784 does not support the required extension. \
14785 This is a bug in the Vulkan driver for this device.",
14786 "khr_video_encode_queue", "khr_synchronization2",
14787 );
14788 self.khr_synchronization2 = true;
14789 }
14790 }
14791 if self.khr_video_maintenance1 {
14792 if !(self.khr_video_queue) {
14793 assert!(
14794 supported.khr_video_queue,
14795 "The device extension `{}` is enabled, and it requires \
14796 the `{}` extension to be also enabled, but the device \
14797 does not support the required extension. \
14798 This is a bug in the Vulkan driver for this device.",
14799 "khr_video_maintenance1", "khr_video_queue",
14800 );
14801 self.khr_video_queue = true;
14802 }
14803 }
14804 if self.khr_video_queue {
14805 if !(api_version >= crate::Version::V1_3 || self.khr_synchronization2) {
14806 assert!(
14807 supported.khr_synchronization2,
14808 "The device extension `{}` is enabled, and it requires \
14809 the `{}` extension to be also enabled, but the device \
14810 does not support the required extension. \
14811 This is a bug in the Vulkan driver for this device.",
14812 "khr_video_queue", "khr_synchronization2",
14813 );
14814 self.khr_synchronization2 = true;
14815 }
14816 }
14817 if self.khr_win32_keyed_mutex {
14818 if !(self.khr_external_memory_win32) {
14819 assert!(
14820 supported.khr_external_memory_win32,
14821 "The device extension `{}` is enabled, and it requires \
14822 the `{}` extension to be also enabled, but the device \
14823 does not support the required extension. \
14824 This is a bug in the Vulkan driver for this device.",
14825 "khr_win32_keyed_mutex", "khr_external_memory_win32",
14826 );
14827 self.khr_external_memory_win32 = true;
14828 }
14829 }
14830 if self.ext_attachment_feedback_loop_dynamic_state {
14831 if !(self.ext_attachment_feedback_loop_layout) {
14832 assert!(
14833 supported.ext_attachment_feedback_loop_layout,
14834 "The device extension `{}` is enabled, and it requires \
14835 the `{}` extension to be also enabled, but the device \
14836 does not support the required extension. \
14837 This is a bug in the Vulkan driver for this device.",
14838 "ext_attachment_feedback_loop_dynamic_state",
14839 "ext_attachment_feedback_loop_layout",
14840 );
14841 self.ext_attachment_feedback_loop_layout = true;
14842 }
14843 }
14844 if self.ext_border_color_swizzle {
14845 if !(self.ext_custom_border_color) {
14846 assert!(
14847 supported.ext_custom_border_color,
14848 "The device extension `{}` is enabled, and it requires \
14849 the `{}` extension to be also enabled, but the device \
14850 does not support the required extension. \
14851 This is a bug in the Vulkan driver for this device.",
14852 "ext_border_color_swizzle", "ext_custom_border_color",
14853 );
14854 self.ext_custom_border_color = true;
14855 }
14856 }
14857 if self.ext_descriptor_buffer {
14858 if !(api_version >= crate::Version::V1_2 || self.khr_buffer_device_address) {
14859 assert!(
14860 supported.khr_buffer_device_address,
14861 "The device extension `{}` is enabled, and it requires \
14862 the `{}` extension to be also enabled, but the device \
14863 does not support the required extension. \
14864 This is a bug in the Vulkan driver for this device.",
14865 "ext_descriptor_buffer", "khr_buffer_device_address",
14866 );
14867 self.khr_buffer_device_address = true;
14868 }
14869 if !(api_version >= crate::Version::V1_2 || self.ext_descriptor_indexing) {
14870 assert!(
14871 supported.ext_descriptor_indexing,
14872 "The device extension `{}` is enabled, and it requires \
14873 the `{}` extension to be also enabled, but the device \
14874 does not support the required extension. \
14875 This is a bug in the Vulkan driver for this device.",
14876 "ext_descriptor_buffer", "ext_descriptor_indexing",
14877 );
14878 self.ext_descriptor_indexing = true;
14879 }
14880 if !(api_version >= crate::Version::V1_3 || self.khr_synchronization2) {
14881 assert!(
14882 supported.khr_synchronization2,
14883 "The device extension `{}` is enabled, and it requires \
14884 the `{}` extension to be also enabled, but the device \
14885 does not support the required extension. \
14886 This is a bug in the Vulkan driver for this device.",
14887 "ext_descriptor_buffer", "khr_synchronization2",
14888 );
14889 self.khr_synchronization2 = true;
14890 }
14891 }
14892 if self.ext_descriptor_indexing {
14893 if !(api_version >= crate::Version::V1_1 || self.khr_maintenance3) {
14894 assert!(
14895 supported.khr_maintenance3,
14896 "The device extension `{}` is enabled, and it requires \
14897 the `{}` extension to be also enabled, but the device \
14898 does not support the required extension. \
14899 This is a bug in the Vulkan driver for this device.",
14900 "ext_descriptor_indexing", "khr_maintenance3",
14901 );
14902 self.khr_maintenance3 = true;
14903 }
14904 }
14905 if self.ext_display_control {
14906 if !(self.khr_swapchain) {
14907 assert!(
14908 supported.khr_swapchain,
14909 "The device extension `{}` is enabled, and it requires \
14910 the `{}` extension to be also enabled, but the device \
14911 does not support the required extension. \
14912 This is a bug in the Vulkan driver for this device.",
14913 "ext_display_control", "khr_swapchain",
14914 );
14915 self.khr_swapchain = true;
14916 }
14917 }
14918 if self.ext_dynamic_rendering_unused_attachments {
14919 if !(api_version >= crate::Version::V1_3 || self.khr_dynamic_rendering) {
14920 assert!(
14921 supported.khr_dynamic_rendering,
14922 "The device extension `{}` is enabled, and it requires \
14923 the `{}` extension to be also enabled, but the device \
14924 does not support the required extension. \
14925 This is a bug in the Vulkan driver for this device.",
14926 "ext_dynamic_rendering_unused_attachments", "khr_dynamic_rendering",
14927 );
14928 self.khr_dynamic_rendering = true;
14929 }
14930 }
14931 if self.ext_external_memory_acquire_unmodified {
14932 if !(api_version >= crate::Version::V1_1 || self.khr_external_memory) {
14933 assert!(
14934 supported.khr_external_memory,
14935 "The device extension `{}` is enabled, and it requires \
14936 the `{}` extension to be also enabled, but the device \
14937 does not support the required extension. \
14938 This is a bug in the Vulkan driver for this device.",
14939 "ext_external_memory_acquire_unmodified", "khr_external_memory",
14940 );
14941 self.khr_external_memory = true;
14942 }
14943 }
14944 if self.ext_external_memory_dma_buf {
14945 if !(self.khr_external_memory_fd) {
14946 assert!(
14947 supported.khr_external_memory_fd,
14948 "The device extension `{}` is enabled, and it requires \
14949 the `{}` extension to be also enabled, but the device \
14950 does not support the required extension. \
14951 This is a bug in the Vulkan driver for this device.",
14952 "ext_external_memory_dma_buf", "khr_external_memory_fd",
14953 );
14954 self.khr_external_memory_fd = true;
14955 }
14956 }
14957 if self.ext_external_memory_host {
14958 if !(api_version >= crate::Version::V1_1 || self.khr_external_memory) {
14959 assert!(
14960 supported.khr_external_memory,
14961 "The device extension `{}` is enabled, and it requires \
14962 the `{}` extension to be also enabled, but the device \
14963 does not support the required extension. \
14964 This is a bug in the Vulkan driver for this device.",
14965 "ext_external_memory_host", "khr_external_memory",
14966 );
14967 self.khr_external_memory = true;
14968 }
14969 }
14970 if self.ext_fragment_density_map2 {
14971 if !(self.ext_fragment_density_map) {
14972 assert!(
14973 supported.ext_fragment_density_map,
14974 "The device extension `{}` is enabled, and it requires \
14975 the `{}` extension to be also enabled, but the device \
14976 does not support the required extension. \
14977 This is a bug in the Vulkan driver for this device.",
14978 "ext_fragment_density_map2", "ext_fragment_density_map",
14979 );
14980 self.ext_fragment_density_map = true;
14981 }
14982 }
14983 if self.ext_full_screen_exclusive {
14984 if !(self.khr_swapchain) {
14985 assert!(
14986 supported.khr_swapchain,
14987 "The device extension `{}` is enabled, and it requires \
14988 the `{}` extension to be also enabled, but the device \
14989 does not support the required extension. \
14990 This is a bug in the Vulkan driver for this device.",
14991 "ext_full_screen_exclusive", "khr_swapchain",
14992 );
14993 self.khr_swapchain = true;
14994 }
14995 }
14996 if self.ext_global_priority_query {
14997 if !(self.khr_global_priority || self.ext_global_priority) {
14998 if supported.khr_global_priority {
14999 self.khr_global_priority = true;
15000 } else {
15001 assert!(
15002 supported.ext_global_priority,
15003 "The device extension `{}` is enabled, and it requires \
15004 the `{}` extension to be also enabled, but the device \
15005 does not support the required extension. \
15006 This is a bug in the Vulkan driver for this device.",
15007 "ext_global_priority_query", "ext_global_priority",
15008 );
15009 self.ext_global_priority = true;
15010 }
15011 }
15012 }
15013 if self.ext_graphics_pipeline_library {
15014 if !(self.khr_pipeline_library) {
15015 assert!(
15016 supported.khr_pipeline_library,
15017 "The device extension `{}` is enabled, and it requires \
15018 the `{}` extension to be also enabled, but the device \
15019 does not support the required extension. \
15020 This is a bug in the Vulkan driver for this device.",
15021 "ext_graphics_pipeline_library", "khr_pipeline_library",
15022 );
15023 self.khr_pipeline_library = true;
15024 }
15025 }
15026 if self.ext_hdr_metadata {
15027 if !(self.khr_swapchain) {
15028 assert!(
15029 supported.khr_swapchain,
15030 "The device extension `{}` is enabled, and it requires \
15031 the `{}` extension to be also enabled, but the device \
15032 does not support the required extension. \
15033 This is a bug in the Vulkan driver for this device.",
15034 "ext_hdr_metadata", "khr_swapchain",
15035 );
15036 self.khr_swapchain = true;
15037 }
15038 }
15039 if self.ext_host_image_copy {
15040 if !(api_version >= crate::Version::V1_3 || self.khr_copy_commands2) {
15041 assert!(
15042 supported.khr_copy_commands2,
15043 "The device extension `{}` is enabled, and it requires \
15044 the `{}` extension to be also enabled, but the device \
15045 does not support the required extension. \
15046 This is a bug in the Vulkan driver for this device.",
15047 "ext_host_image_copy", "khr_copy_commands2",
15048 );
15049 self.khr_copy_commands2 = true;
15050 }
15051 if !(api_version >= crate::Version::V1_3 || self.khr_format_feature_flags2) {
15052 assert!(
15053 supported.khr_format_feature_flags2,
15054 "The device extension `{}` is enabled, and it requires \
15055 the `{}` extension to be also enabled, but the device \
15056 does not support the required extension. \
15057 This is a bug in the Vulkan driver for this device.",
15058 "ext_host_image_copy", "khr_format_feature_flags2",
15059 );
15060 self.khr_format_feature_flags2 = true;
15061 }
15062 }
15063 if self.ext_image_2d_view_of_3d {
15064 if !(api_version >= crate::Version::V1_1 || self.khr_maintenance1) {
15065 assert!(
15066 supported.khr_maintenance1,
15067 "The device extension `{}` is enabled, and it requires \
15068 the `{}` extension to be also enabled, but the device \
15069 does not support the required extension. \
15070 This is a bug in the Vulkan driver for this device.",
15071 "ext_image_2d_view_of_3d", "khr_maintenance1",
15072 );
15073 self.khr_maintenance1 = true;
15074 }
15075 }
15076 if self.ext_image_compression_control_swapchain {
15077 if !(self.ext_image_compression_control) {
15078 assert!(
15079 supported.ext_image_compression_control,
15080 "The device extension `{}` is enabled, and it requires \
15081 the `{}` extension to be also enabled, but the device \
15082 does not support the required extension. \
15083 This is a bug in the Vulkan driver for this device.",
15084 "ext_image_compression_control_swapchain", "ext_image_compression_control",
15085 );
15086 self.ext_image_compression_control = true;
15087 }
15088 }
15089 if self.ext_image_drm_format_modifier {
15090 if !(api_version >= crate::Version::V1_1 || self.khr_bind_memory2) {
15091 assert!(
15092 supported.khr_bind_memory2,
15093 "The device extension `{}` is enabled, and it requires \
15094 the `{}` extension to be also enabled, but the device \
15095 does not support the required extension. \
15096 This is a bug in the Vulkan driver for this device.",
15097 "ext_image_drm_format_modifier", "khr_bind_memory2",
15098 );
15099 self.khr_bind_memory2 = true;
15100 }
15101 if !(api_version >= crate::Version::V1_1 || self.khr_sampler_ycbcr_conversion) {
15102 assert!(
15103 supported.khr_sampler_ycbcr_conversion,
15104 "The device extension `{}` is enabled, and it requires \
15105 the `{}` extension to be also enabled, but the device \
15106 does not support the required extension. \
15107 This is a bug in the Vulkan driver for this device.",
15108 "ext_image_drm_format_modifier", "khr_sampler_ycbcr_conversion",
15109 );
15110 self.khr_sampler_ycbcr_conversion = true;
15111 }
15112 if !(api_version >= crate::Version::V1_2 || self.khr_image_format_list) {
15113 assert!(
15114 supported.khr_image_format_list,
15115 "The device extension `{}` is enabled, and it requires \
15116 the `{}` extension to be also enabled, but the device \
15117 does not support the required extension. \
15118 This is a bug in the Vulkan driver for this device.",
15119 "ext_image_drm_format_modifier", "khr_image_format_list",
15120 );
15121 self.khr_image_format_list = true;
15122 }
15123 }
15124 if self.ext_image_sliced_view_of_3d {
15125 if !(api_version >= crate::Version::V1_1 || self.khr_maintenance1) {
15126 assert!(
15127 supported.khr_maintenance1,
15128 "The device extension `{}` is enabled, and it requires \
15129 the `{}` extension to be also enabled, but the device \
15130 does not support the required extension. \
15131 This is a bug in the Vulkan driver for this device.",
15132 "ext_image_sliced_view_of_3d", "khr_maintenance1",
15133 );
15134 self.khr_maintenance1 = true;
15135 }
15136 }
15137 if self.ext_inline_uniform_block {
15138 if !(api_version >= crate::Version::V1_1 || self.khr_maintenance1) {
15139 assert!(
15140 supported.khr_maintenance1,
15141 "The device extension `{}` is enabled, and it requires \
15142 the `{}` extension to be also enabled, but the device \
15143 does not support the required extension. \
15144 This is a bug in the Vulkan driver for this device.",
15145 "ext_inline_uniform_block", "khr_maintenance1",
15146 );
15147 self.khr_maintenance1 = true;
15148 }
15149 }
15150 if self.ext_map_memory_placed {
15151 if !(self.khr_map_memory2) {
15152 assert!(
15153 supported.khr_map_memory2,
15154 "The device extension `{}` is enabled, and it requires \
15155 the `{}` extension to be also enabled, but the device \
15156 does not support the required extension. \
15157 This is a bug in the Vulkan driver for this device.",
15158 "ext_map_memory_placed", "khr_map_memory2",
15159 );
15160 self.khr_map_memory2 = true;
15161 }
15162 }
15163 if self.ext_mesh_shader {
15164 if !(api_version >= crate::Version::V1_2 || self.khr_spirv_1_4) {
15165 assert!(
15166 supported.khr_spirv_1_4,
15167 "The device extension `{}` is enabled, and it requires \
15168 the `{}` extension to be also enabled, but the device \
15169 does not support the required extension. \
15170 This is a bug in the Vulkan driver for this device.",
15171 "ext_mesh_shader", "khr_spirv_1_4",
15172 );
15173 self.khr_spirv_1_4 = true;
15174 }
15175 }
15176 if self.ext_multisampled_render_to_single_sampled {
15177 if !(api_version >= crate::Version::V1_2 || self.khr_create_renderpass2) {
15178 assert!(
15179 supported.khr_create_renderpass2,
15180 "The device extension `{}` is enabled, and it requires \
15181 the `{}` extension to be also enabled, but the device \
15182 does not support the required extension. \
15183 This is a bug in the Vulkan driver for this device.",
15184 "ext_multisampled_render_to_single_sampled", "khr_create_renderpass2",
15185 );
15186 self.khr_create_renderpass2 = true;
15187 }
15188 if !(api_version >= crate::Version::V1_2 || self.khr_depth_stencil_resolve) {
15189 assert!(
15190 supported.khr_depth_stencil_resolve,
15191 "The device extension `{}` is enabled, and it requires \
15192 the `{}` extension to be also enabled, but the device \
15193 does not support the required extension. \
15194 This is a bug in the Vulkan driver for this device.",
15195 "ext_multisampled_render_to_single_sampled", "khr_depth_stencil_resolve",
15196 );
15197 self.khr_depth_stencil_resolve = true;
15198 }
15199 }
15200 if self.ext_mutable_descriptor_type {
15201 if !(api_version >= crate::Version::V1_1 || self.khr_maintenance3) {
15202 assert!(
15203 supported.khr_maintenance3,
15204 "The device extension `{}` is enabled, and it requires \
15205 the `{}` extension to be also enabled, but the device \
15206 does not support the required extension. \
15207 This is a bug in the Vulkan driver for this device.",
15208 "ext_mutable_descriptor_type", "khr_maintenance3",
15209 );
15210 self.khr_maintenance3 = true;
15211 }
15212 }
15213 if self.ext_opacity_micromap {
15214 if !(self.khr_acceleration_structure) {
15215 assert!(
15216 supported.khr_acceleration_structure,
15217 "The device extension `{}` is enabled, and it requires \
15218 the `{}` extension to be also enabled, but the device \
15219 does not support the required extension. \
15220 This is a bug in the Vulkan driver for this device.",
15221 "ext_opacity_micromap", "khr_acceleration_structure",
15222 );
15223 self.khr_acceleration_structure = true;
15224 }
15225 if !(api_version >= crate::Version::V1_3 || self.khr_synchronization2) {
15226 assert!(
15227 supported.khr_synchronization2,
15228 "The device extension `{}` is enabled, and it requires \
15229 the `{}` extension to be also enabled, but the device \
15230 does not support the required extension. \
15231 This is a bug in the Vulkan driver for this device.",
15232 "ext_opacity_micromap", "khr_synchronization2",
15233 );
15234 self.khr_synchronization2 = true;
15235 }
15236 }
15237 if self.ext_pageable_device_local_memory {
15238 if !(self.ext_memory_priority) {
15239 assert!(
15240 supported.ext_memory_priority,
15241 "The device extension `{}` is enabled, and it requires \
15242 the `{}` extension to be also enabled, but the device \
15243 does not support the required extension. \
15244 This is a bug in the Vulkan driver for this device.",
15245 "ext_pageable_device_local_memory", "ext_memory_priority",
15246 );
15247 self.ext_memory_priority = true;
15248 }
15249 }
15250 if self.ext_pipeline_library_group_handles {
15251 if !(self.khr_ray_tracing_pipeline) {
15252 assert!(
15253 supported.khr_ray_tracing_pipeline,
15254 "The device extension `{}` is enabled, and it requires \
15255 the `{}` extension to be also enabled, but the device \
15256 does not support the required extension. \
15257 This is a bug in the Vulkan driver for this device.",
15258 "ext_pipeline_library_group_handles", "khr_ray_tracing_pipeline",
15259 );
15260 self.khr_ray_tracing_pipeline = true;
15261 }
15262 if !(self.khr_pipeline_library) {
15263 assert!(
15264 supported.khr_pipeline_library,
15265 "The device extension `{}` is enabled, and it requires \
15266 the `{}` extension to be also enabled, but the device \
15267 does not support the required extension. \
15268 This is a bug in the Vulkan driver for this device.",
15269 "ext_pipeline_library_group_handles", "khr_pipeline_library",
15270 );
15271 self.khr_pipeline_library = true;
15272 }
15273 }
15274 if self.ext_primitives_generated_query {
15275 if !(self.ext_transform_feedback) {
15276 assert!(
15277 supported.ext_transform_feedback,
15278 "The device extension `{}` is enabled, and it requires \
15279 the `{}` extension to be also enabled, but the device \
15280 does not support the required extension. \
15281 This is a bug in the Vulkan driver for this device.",
15282 "ext_primitives_generated_query", "ext_transform_feedback",
15283 );
15284 self.ext_transform_feedback = true;
15285 }
15286 }
15287 if self.ext_queue_family_foreign {
15288 if !(api_version >= crate::Version::V1_1 || self.khr_external_memory) {
15289 assert!(
15290 supported.khr_external_memory,
15291 "The device extension `{}` is enabled, and it requires \
15292 the `{}` extension to be also enabled, but the device \
15293 does not support the required extension. \
15294 This is a bug in the Vulkan driver for this device.",
15295 "ext_queue_family_foreign", "khr_external_memory",
15296 );
15297 self.khr_external_memory = true;
15298 }
15299 }
15300 if self.ext_rgba10x6_formats {
15301 if !(api_version >= crate::Version::V1_1 || self.khr_sampler_ycbcr_conversion) {
15302 assert!(
15303 supported.khr_sampler_ycbcr_conversion,
15304 "The device extension `{}` is enabled, and it requires \
15305 the `{}` extension to be also enabled, but the device \
15306 does not support the required extension. \
15307 This is a bug in the Vulkan driver for this device.",
15308 "ext_rgba10x6_formats", "khr_sampler_ycbcr_conversion",
15309 );
15310 self.khr_sampler_ycbcr_conversion = true;
15311 }
15312 }
15313 if self.ext_shader_atomic_float2 {
15314 if !(self.ext_shader_atomic_float) {
15315 assert!(
15316 supported.ext_shader_atomic_float,
15317 "The device extension `{}` is enabled, and it requires \
15318 the `{}` extension to be also enabled, but the device \
15319 does not support the required extension. \
15320 This is a bug in the Vulkan driver for this device.",
15321 "ext_shader_atomic_float2", "ext_shader_atomic_float",
15322 );
15323 self.ext_shader_atomic_float = true;
15324 }
15325 }
15326 if self.ext_shader_module_identifier {
15327 if !(api_version >= crate::Version::V1_3 || self.ext_pipeline_creation_cache_control) {
15328 assert!(
15329 supported.ext_pipeline_creation_cache_control,
15330 "The device extension `{}` is enabled, and it requires \
15331 the `{}` extension to be also enabled, but the device \
15332 does not support the required extension. \
15333 This is a bug in the Vulkan driver for this device.",
15334 "ext_shader_module_identifier", "ext_pipeline_creation_cache_control",
15335 );
15336 self.ext_pipeline_creation_cache_control = true;
15337 }
15338 }
15339 if self.ext_shader_object {
15340 if !(api_version >= crate::Version::V1_3 || self.khr_dynamic_rendering) {
15341 assert!(
15342 supported.khr_dynamic_rendering,
15343 "The device extension `{}` is enabled, and it requires \
15344 the `{}` extension to be also enabled, but the device \
15345 does not support the required extension. \
15346 This is a bug in the Vulkan driver for this device.",
15347 "ext_shader_object", "khr_dynamic_rendering",
15348 );
15349 self.khr_dynamic_rendering = true;
15350 }
15351 }
15352 if self.ext_swapchain_maintenance1 {
15353 if !(self.khr_swapchain) {
15354 assert!(
15355 supported.khr_swapchain,
15356 "The device extension `{}` is enabled, and it requires \
15357 the `{}` extension to be also enabled, but the device \
15358 does not support the required extension. \
15359 This is a bug in the Vulkan driver for this device.",
15360 "ext_swapchain_maintenance1", "khr_swapchain",
15361 );
15362 self.khr_swapchain = true;
15363 }
15364 }
15365 if self.ext_ycbcr_2plane_444_formats {
15366 if !(api_version >= crate::Version::V1_1 || self.khr_sampler_ycbcr_conversion) {
15367 assert!(
15368 supported.khr_sampler_ycbcr_conversion,
15369 "The device extension `{}` is enabled, and it requires \
15370 the `{}` extension to be also enabled, but the device \
15371 does not support the required extension. \
15372 This is a bug in the Vulkan driver for this device.",
15373 "ext_ycbcr_2plane_444_formats", "khr_sampler_ycbcr_conversion",
15374 );
15375 self.khr_sampler_ycbcr_conversion = true;
15376 }
15377 }
15378 if self.ext_ycbcr_image_arrays {
15379 if !(api_version >= crate::Version::V1_1 || self.khr_sampler_ycbcr_conversion) {
15380 assert!(
15381 supported.khr_sampler_ycbcr_conversion,
15382 "The device extension `{}` is enabled, and it requires \
15383 the `{}` extension to be also enabled, but the device \
15384 does not support the required extension. \
15385 This is a bug in the Vulkan driver for this device.",
15386 "ext_ycbcr_image_arrays", "khr_sampler_ycbcr_conversion",
15387 );
15388 self.khr_sampler_ycbcr_conversion = true;
15389 }
15390 }
15391 if self.amdx_shader_enqueue {
15392 if !(api_version >= crate::Version::V1_3 || self.khr_synchronization2) {
15393 assert!(
15394 supported.khr_synchronization2,
15395 "The device extension `{}` is enabled, and it requires \
15396 the `{}` extension to be also enabled, but the device \
15397 does not support the required extension. \
15398 This is a bug in the Vulkan driver for this device.",
15399 "amdx_shader_enqueue", "khr_synchronization2",
15400 );
15401 self.khr_synchronization2 = true;
15402 }
15403 if !(self.khr_pipeline_library) {
15404 assert!(
15405 supported.khr_pipeline_library,
15406 "The device extension `{}` is enabled, and it requires \
15407 the `{}` extension to be also enabled, but the device \
15408 does not support the required extension. \
15409 This is a bug in the Vulkan driver for this device.",
15410 "amdx_shader_enqueue", "khr_pipeline_library",
15411 );
15412 self.khr_pipeline_library = true;
15413 }
15414 if !(api_version >= crate::Version::V1_2 || self.khr_spirv_1_4) {
15415 assert!(
15416 supported.khr_spirv_1_4,
15417 "The device extension `{}` is enabled, and it requires \
15418 the `{}` extension to be also enabled, but the device \
15419 does not support the required extension. \
15420 This is a bug in the Vulkan driver for this device.",
15421 "amdx_shader_enqueue", "khr_spirv_1_4",
15422 );
15423 self.khr_spirv_1_4 = true;
15424 }
15425 }
15426 if self.amd_display_native_hdr {
15427 if !(self.khr_swapchain) {
15428 assert!(
15429 supported.khr_swapchain,
15430 "The device extension `{}` is enabled, and it requires \
15431 the `{}` extension to be also enabled, but the device \
15432 does not support the required extension. \
15433 This is a bug in the Vulkan driver for this device.",
15434 "amd_display_native_hdr", "khr_swapchain",
15435 );
15436 self.khr_swapchain = true;
15437 }
15438 }
15439 if self.amd_shader_core_properties2 {
15440 if !(self.amd_shader_core_properties) {
15441 assert!(
15442 supported.amd_shader_core_properties,
15443 "The device extension `{}` is enabled, and it requires \
15444 the `{}` extension to be also enabled, but the device \
15445 does not support the required extension. \
15446 This is a bug in the Vulkan driver for this device.",
15447 "amd_shader_core_properties2", "amd_shader_core_properties",
15448 );
15449 self.amd_shader_core_properties = true;
15450 }
15451 }
15452 if self.android_external_format_resolve {
15453 if !(self.android_external_memory_android_hardware_buffer) {
15454 assert!(
15455 supported.android_external_memory_android_hardware_buffer,
15456 "The device extension `{}` is enabled, and it requires \
15457 the `{}` extension to be also enabled, but the device \
15458 does not support the required extension. \
15459 This is a bug in the Vulkan driver for this device.",
15460 "android_external_format_resolve",
15461 "android_external_memory_android_hardware_buffer",
15462 );
15463 self.android_external_memory_android_hardware_buffer = true;
15464 }
15465 }
15466 if self.android_external_memory_android_hardware_buffer {
15467 if !(api_version >= crate::Version::V1_1 || self.khr_sampler_ycbcr_conversion) {
15468 assert!(
15469 supported.khr_sampler_ycbcr_conversion,
15470 "The device extension `{}` is enabled, and it requires \
15471 the `{}` extension to be also enabled, but the device \
15472 does not support the required extension. \
15473 This is a bug in the Vulkan driver for this device.",
15474 "android_external_memory_android_hardware_buffer",
15475 "khr_sampler_ycbcr_conversion",
15476 );
15477 self.khr_sampler_ycbcr_conversion = true;
15478 }
15479 if !(api_version >= crate::Version::V1_1 || self.khr_external_memory) {
15480 assert!(
15481 supported.khr_external_memory,
15482 "The device extension `{}` is enabled, and it requires \
15483 the `{}` extension to be also enabled, but the device \
15484 does not support the required extension. \
15485 This is a bug in the Vulkan driver for this device.",
15486 "android_external_memory_android_hardware_buffer", "khr_external_memory",
15487 );
15488 self.khr_external_memory = true;
15489 }
15490 if !(api_version >= crate::Version::V1_1 || self.khr_dedicated_allocation) {
15491 assert!(
15492 supported.khr_dedicated_allocation,
15493 "The device extension `{}` is enabled, and it requires \
15494 the `{}` extension to be also enabled, but the device \
15495 does not support the required extension. \
15496 This is a bug in the Vulkan driver for this device.",
15497 "android_external_memory_android_hardware_buffer", "khr_dedicated_allocation",
15498 );
15499 self.khr_dedicated_allocation = true;
15500 }
15501 if !(self.ext_queue_family_foreign) {
15502 assert!(
15503 supported.ext_queue_family_foreign,
15504 "The device extension `{}` is enabled, and it requires \
15505 the `{}` extension to be also enabled, but the device \
15506 does not support the required extension. \
15507 This is a bug in the Vulkan driver for this device.",
15508 "android_external_memory_android_hardware_buffer", "ext_queue_family_foreign",
15509 );
15510 self.ext_queue_family_foreign = true;
15511 }
15512 }
15513 if self.arm_render_pass_striped {
15514 if !(api_version >= crate::Version::V1_3 || self.khr_synchronization2) {
15515 assert!(
15516 supported.khr_synchronization2,
15517 "The device extension `{}` is enabled, and it requires \
15518 the `{}` extension to be also enabled, but the device \
15519 does not support the required extension. \
15520 This is a bug in the Vulkan driver for this device.",
15521 "arm_render_pass_striped", "khr_synchronization2",
15522 );
15523 self.khr_synchronization2 = true;
15524 }
15525 }
15526 if self.arm_scheduling_controls {
15527 if !(self.arm_shader_core_builtins) {
15528 assert!(
15529 supported.arm_shader_core_builtins,
15530 "The device extension `{}` is enabled, and it requires \
15531 the `{}` extension to be also enabled, but the device \
15532 does not support the required extension. \
15533 This is a bug in the Vulkan driver for this device.",
15534 "arm_scheduling_controls", "arm_shader_core_builtins",
15535 );
15536 self.arm_shader_core_builtins = true;
15537 }
15538 }
15539 if self.fuchsia_buffer_collection {
15540 if !(self.fuchsia_external_memory) {
15541 assert!(
15542 supported.fuchsia_external_memory,
15543 "The device extension `{}` is enabled, and it requires \
15544 the `{}` extension to be also enabled, but the device \
15545 does not support the required extension. \
15546 This is a bug in the Vulkan driver for this device.",
15547 "fuchsia_buffer_collection", "fuchsia_external_memory",
15548 );
15549 self.fuchsia_external_memory = true;
15550 }
15551 if !(api_version >= crate::Version::V1_1 || self.khr_sampler_ycbcr_conversion) {
15552 assert!(
15553 supported.khr_sampler_ycbcr_conversion,
15554 "The device extension `{}` is enabled, and it requires \
15555 the `{}` extension to be also enabled, but the device \
15556 does not support the required extension. \
15557 This is a bug in the Vulkan driver for this device.",
15558 "fuchsia_buffer_collection", "khr_sampler_ycbcr_conversion",
15559 );
15560 self.khr_sampler_ycbcr_conversion = true;
15561 }
15562 }
15563 if self.fuchsia_external_memory {
15564 if !(api_version >= crate::Version::V1_1 || self.khr_external_memory) {
15565 assert!(
15566 supported.khr_external_memory,
15567 "The device extension `{}` is enabled, and it requires \
15568 the `{}` extension to be also enabled, but the device \
15569 does not support the required extension. \
15570 This is a bug in the Vulkan driver for this device.",
15571 "fuchsia_external_memory", "khr_external_memory",
15572 );
15573 self.khr_external_memory = true;
15574 }
15575 }
15576 if self.fuchsia_external_semaphore {
15577 if !(api_version >= crate::Version::V1_1 || self.khr_external_semaphore) {
15578 assert!(
15579 supported.khr_external_semaphore,
15580 "The device extension `{}` is enabled, and it requires \
15581 the `{}` extension to be also enabled, but the device \
15582 does not support the required extension. \
15583 This is a bug in the Vulkan driver for this device.",
15584 "fuchsia_external_semaphore", "khr_external_semaphore",
15585 );
15586 self.khr_external_semaphore = true;
15587 }
15588 }
15589 if self.ggp_frame_token {
15590 if !(self.khr_swapchain) {
15591 assert!(
15592 supported.khr_swapchain,
15593 "The device extension `{}` is enabled, and it requires \
15594 the `{}` extension to be also enabled, but the device \
15595 does not support the required extension. \
15596 This is a bug in the Vulkan driver for this device.",
15597 "ggp_frame_token", "khr_swapchain",
15598 );
15599 self.khr_swapchain = true;
15600 }
15601 }
15602 if self.google_display_timing {
15603 if !(self.khr_swapchain) {
15604 assert!(
15605 supported.khr_swapchain,
15606 "The device extension `{}` is enabled, and it requires \
15607 the `{}` extension to be also enabled, but the device \
15608 does not support the required extension. \
15609 This is a bug in the Vulkan driver for this device.",
15610 "google_display_timing", "khr_swapchain",
15611 );
15612 self.khr_swapchain = true;
15613 }
15614 }
15615 if self.huawei_invocation_mask {
15616 if !(self.khr_ray_tracing_pipeline) {
15617 assert!(
15618 supported.khr_ray_tracing_pipeline,
15619 "The device extension `{}` is enabled, and it requires \
15620 the `{}` extension to be also enabled, but the device \
15621 does not support the required extension. \
15622 This is a bug in the Vulkan driver for this device.",
15623 "huawei_invocation_mask", "khr_ray_tracing_pipeline",
15624 );
15625 self.khr_ray_tracing_pipeline = true;
15626 }
15627 if !(api_version >= crate::Version::V1_3 || self.khr_synchronization2) {
15628 assert!(
15629 supported.khr_synchronization2,
15630 "The device extension `{}` is enabled, and it requires \
15631 the `{}` extension to be also enabled, but the device \
15632 does not support the required extension. \
15633 This is a bug in the Vulkan driver for this device.",
15634 "huawei_invocation_mask", "khr_synchronization2",
15635 );
15636 self.khr_synchronization2 = true;
15637 }
15638 }
15639 if self.huawei_subpass_shading {
15640 if !(api_version >= crate::Version::V1_2 || self.khr_create_renderpass2) {
15641 assert!(
15642 supported.khr_create_renderpass2,
15643 "The device extension `{}` is enabled, and it requires \
15644 the `{}` extension to be also enabled, but the device \
15645 does not support the required extension. \
15646 This is a bug in the Vulkan driver for this device.",
15647 "huawei_subpass_shading", "khr_create_renderpass2",
15648 );
15649 self.khr_create_renderpass2 = true;
15650 }
15651 if !(api_version >= crate::Version::V1_3 || self.khr_synchronization2) {
15652 assert!(
15653 supported.khr_synchronization2,
15654 "The device extension `{}` is enabled, and it requires \
15655 the `{}` extension to be also enabled, but the device \
15656 does not support the required extension. \
15657 This is a bug in the Vulkan driver for this device.",
15658 "huawei_subpass_shading", "khr_synchronization2",
15659 );
15660 self.khr_synchronization2 = true;
15661 }
15662 }
15663 if self.nvx_multiview_per_view_attributes {
15664 if !(api_version >= crate::Version::V1_1 || self.khr_multiview) {
15665 assert!(
15666 supported.khr_multiview,
15667 "The device extension `{}` is enabled, and it requires \
15668 the `{}` extension to be also enabled, but the device \
15669 does not support the required extension. \
15670 This is a bug in the Vulkan driver for this device.",
15671 "nvx_multiview_per_view_attributes", "khr_multiview",
15672 );
15673 self.khr_multiview = true;
15674 }
15675 }
15676 if self.nv_copy_memory_indirect {
15677 if !(api_version >= crate::Version::V1_2 || self.khr_buffer_device_address) {
15678 assert!(
15679 supported.khr_buffer_device_address,
15680 "The device extension `{}` is enabled, and it requires \
15681 the `{}` extension to be also enabled, but the device \
15682 does not support the required extension. \
15683 This is a bug in the Vulkan driver for this device.",
15684 "nv_copy_memory_indirect", "khr_buffer_device_address",
15685 );
15686 self.khr_buffer_device_address = true;
15687 }
15688 }
15689 if self.nv_coverage_reduction_mode {
15690 if !(self.nv_framebuffer_mixed_samples) {
15691 assert!(
15692 supported.nv_framebuffer_mixed_samples,
15693 "The device extension `{}` is enabled, and it requires \
15694 the `{}` extension to be also enabled, but the device \
15695 does not support the required extension. \
15696 This is a bug in the Vulkan driver for this device.",
15697 "nv_coverage_reduction_mode", "nv_framebuffer_mixed_samples",
15698 );
15699 self.nv_framebuffer_mixed_samples = true;
15700 }
15701 }
15702 if self.nv_dedicated_allocation_image_aliasing {
15703 if !(api_version >= crate::Version::V1_1 || self.khr_dedicated_allocation) {
15704 assert!(
15705 supported.khr_dedicated_allocation,
15706 "The device extension `{}` is enabled, and it requires \
15707 the `{}` extension to be also enabled, but the device \
15708 does not support the required extension. \
15709 This is a bug in the Vulkan driver for this device.",
15710 "nv_dedicated_allocation_image_aliasing", "khr_dedicated_allocation",
15711 );
15712 self.khr_dedicated_allocation = true;
15713 }
15714 }
15715 if self.nv_device_generated_commands {
15716 if !(api_version >= crate::Version::V1_2 || self.khr_buffer_device_address) {
15717 assert!(
15718 supported.khr_buffer_device_address,
15719 "The device extension `{}` is enabled, and it requires \
15720 the `{}` extension to be also enabled, but the device \
15721 does not support the required extension. \
15722 This is a bug in the Vulkan driver for this device.",
15723 "nv_device_generated_commands", "khr_buffer_device_address",
15724 );
15725 self.khr_buffer_device_address = true;
15726 }
15727 }
15728 if self.nv_device_generated_commands_compute {
15729 if !(self.nv_device_generated_commands) {
15730 assert!(
15731 supported.nv_device_generated_commands,
15732 "The device extension `{}` is enabled, and it requires \
15733 the `{}` extension to be also enabled, but the device \
15734 does not support the required extension. \
15735 This is a bug in the Vulkan driver for this device.",
15736 "nv_device_generated_commands_compute", "nv_device_generated_commands",
15737 );
15738 self.nv_device_generated_commands = true;
15739 }
15740 }
15741 if self.nv_displacement_micromap {
15742 if !(self.ext_opacity_micromap) {
15743 assert!(
15744 supported.ext_opacity_micromap,
15745 "The device extension `{}` is enabled, and it requires \
15746 the `{}` extension to be also enabled, but the device \
15747 does not support the required extension. \
15748 This is a bug in the Vulkan driver for this device.",
15749 "nv_displacement_micromap", "ext_opacity_micromap",
15750 );
15751 self.ext_opacity_micromap = true;
15752 }
15753 }
15754 if self.nv_external_memory_rdma {
15755 if !(api_version >= crate::Version::V1_1 || self.khr_external_memory) {
15756 assert!(
15757 supported.khr_external_memory,
15758 "The device extension `{}` is enabled, and it requires \
15759 the `{}` extension to be also enabled, but the device \
15760 does not support the required extension. \
15761 This is a bug in the Vulkan driver for this device.",
15762 "nv_external_memory_rdma", "khr_external_memory",
15763 );
15764 self.khr_external_memory = true;
15765 }
15766 }
15767 if self.nv_external_memory_win32 {
15768 if !(self.nv_external_memory) {
15769 assert!(
15770 supported.nv_external_memory,
15771 "The device extension `{}` is enabled, and it requires \
15772 the `{}` extension to be also enabled, but the device \
15773 does not support the required extension. \
15774 This is a bug in the Vulkan driver for this device.",
15775 "nv_external_memory_win32", "nv_external_memory",
15776 );
15777 self.nv_external_memory = true;
15778 }
15779 }
15780 if self.nv_fragment_shading_rate_enums {
15781 if !(self.khr_fragment_shading_rate) {
15782 assert!(
15783 supported.khr_fragment_shading_rate,
15784 "The device extension `{}` is enabled, and it requires \
15785 the `{}` extension to be also enabled, but the device \
15786 does not support the required extension. \
15787 This is a bug in the Vulkan driver for this device.",
15788 "nv_fragment_shading_rate_enums", "khr_fragment_shading_rate",
15789 );
15790 self.khr_fragment_shading_rate = true;
15791 }
15792 }
15793 if self.nv_low_latency2 {
15794 if !(api_version >= crate::Version::V1_2 || self.khr_timeline_semaphore) {
15795 assert!(
15796 supported.khr_timeline_semaphore,
15797 "The device extension `{}` is enabled, and it requires \
15798 the `{}` extension to be also enabled, but the device \
15799 does not support the required extension. \
15800 This is a bug in the Vulkan driver for this device.",
15801 "nv_low_latency2", "khr_timeline_semaphore",
15802 );
15803 self.khr_timeline_semaphore = true;
15804 }
15805 }
15806 if self.nv_memory_decompression {
15807 if !(api_version >= crate::Version::V1_2 || self.khr_buffer_device_address) {
15808 assert!(
15809 supported.khr_buffer_device_address,
15810 "The device extension `{}` is enabled, and it requires \
15811 the `{}` extension to be also enabled, but the device \
15812 does not support the required extension. \
15813 This is a bug in the Vulkan driver for this device.",
15814 "nv_memory_decompression", "khr_buffer_device_address",
15815 );
15816 self.khr_buffer_device_address = true;
15817 }
15818 }
15819 if self.nv_optical_flow {
15820 if !(api_version >= crate::Version::V1_3 || self.khr_format_feature_flags2) {
15821 assert!(
15822 supported.khr_format_feature_flags2,
15823 "The device extension `{}` is enabled, and it requires \
15824 the `{}` extension to be also enabled, but the device \
15825 does not support the required extension. \
15826 This is a bug in the Vulkan driver for this device.",
15827 "nv_optical_flow", "khr_format_feature_flags2",
15828 );
15829 self.khr_format_feature_flags2 = true;
15830 }
15831 if !(api_version >= crate::Version::V1_3 || self.khr_synchronization2) {
15832 assert!(
15833 supported.khr_synchronization2,
15834 "The device extension `{}` is enabled, and it requires \
15835 the `{}` extension to be also enabled, but the device \
15836 does not support the required extension. \
15837 This is a bug in the Vulkan driver for this device.",
15838 "nv_optical_flow", "khr_synchronization2",
15839 );
15840 self.khr_synchronization2 = true;
15841 }
15842 }
15843 if self.nv_per_stage_descriptor_set {
15844 if !(self.khr_maintenance6) {
15845 assert!(
15846 supported.khr_maintenance6,
15847 "The device extension `{}` is enabled, and it requires \
15848 the `{}` extension to be also enabled, but the device \
15849 does not support the required extension. \
15850 This is a bug in the Vulkan driver for this device.",
15851 "nv_per_stage_descriptor_set", "khr_maintenance6",
15852 );
15853 self.khr_maintenance6 = true;
15854 }
15855 }
15856 if self.nv_present_barrier {
15857 if !(self.khr_swapchain) {
15858 assert!(
15859 supported.khr_swapchain,
15860 "The device extension `{}` is enabled, and it requires \
15861 the `{}` extension to be also enabled, but the device \
15862 does not support the required extension. \
15863 This is a bug in the Vulkan driver for this device.",
15864 "nv_present_barrier", "khr_swapchain",
15865 );
15866 self.khr_swapchain = true;
15867 }
15868 }
15869 if self.nv_ray_tracing {
15870 if !(api_version >= crate::Version::V1_1 || self.khr_get_memory_requirements2) {
15871 assert!(
15872 supported.khr_get_memory_requirements2,
15873 "The device extension `{}` is enabled, and it requires \
15874 the `{}` extension to be also enabled, but the device \
15875 does not support the required extension. \
15876 This is a bug in the Vulkan driver for this device.",
15877 "nv_ray_tracing", "khr_get_memory_requirements2",
15878 );
15879 self.khr_get_memory_requirements2 = true;
15880 }
15881 }
15882 if self.nv_ray_tracing_invocation_reorder {
15883 if !(self.khr_ray_tracing_pipeline) {
15884 assert!(
15885 supported.khr_ray_tracing_pipeline,
15886 "The device extension `{}` is enabled, and it requires \
15887 the `{}` extension to be also enabled, but the device \
15888 does not support the required extension. \
15889 This is a bug in the Vulkan driver for this device.",
15890 "nv_ray_tracing_invocation_reorder", "khr_ray_tracing_pipeline",
15891 );
15892 self.khr_ray_tracing_pipeline = true;
15893 }
15894 }
15895 if self.nv_ray_tracing_motion_blur {
15896 if !(self.khr_ray_tracing_pipeline) {
15897 assert!(
15898 supported.khr_ray_tracing_pipeline,
15899 "The device extension `{}` is enabled, and it requires \
15900 the `{}` extension to be also enabled, but the device \
15901 does not support the required extension. \
15902 This is a bug in the Vulkan driver for this device.",
15903 "nv_ray_tracing_motion_blur", "khr_ray_tracing_pipeline",
15904 );
15905 self.khr_ray_tracing_pipeline = true;
15906 }
15907 }
15908 if self.nv_win32_keyed_mutex {
15909 if !(self.nv_external_memory_win32) {
15910 assert!(
15911 supported.nv_external_memory_win32,
15912 "The device extension `{}` is enabled, and it requires \
15913 the `{}` extension to be also enabled, but the device \
15914 does not support the required extension. \
15915 This is a bug in the Vulkan driver for this device.",
15916 "nv_win32_keyed_mutex", "nv_external_memory_win32",
15917 );
15918 self.nv_external_memory_win32 = true;
15919 }
15920 }
15921 if self.qcom_filter_cubic_clamp {
15922 if !(self.ext_filter_cubic) {
15923 assert!(
15924 supported.ext_filter_cubic,
15925 "The device extension `{}` is enabled, and it requires \
15926 the `{}` extension to be also enabled, but the device \
15927 does not support the required extension. \
15928 This is a bug in the Vulkan driver for this device.",
15929 "qcom_filter_cubic_clamp", "ext_filter_cubic",
15930 );
15931 self.ext_filter_cubic = true;
15932 }
15933 if !(api_version >= crate::Version::V1_2 || self.ext_sampler_filter_minmax) {
15934 assert!(
15935 supported.ext_sampler_filter_minmax,
15936 "The device extension `{}` is enabled, and it requires \
15937 the `{}` extension to be also enabled, but the device \
15938 does not support the required extension. \
15939 This is a bug in the Vulkan driver for this device.",
15940 "qcom_filter_cubic_clamp", "ext_sampler_filter_minmax",
15941 );
15942 self.ext_sampler_filter_minmax = true;
15943 }
15944 }
15945 if self.qcom_filter_cubic_weights {
15946 if !(self.ext_filter_cubic) {
15947 assert!(
15948 supported.ext_filter_cubic,
15949 "The device extension `{}` is enabled, and it requires \
15950 the `{}` extension to be also enabled, but the device \
15951 does not support the required extension. \
15952 This is a bug in the Vulkan driver for this device.",
15953 "qcom_filter_cubic_weights", "ext_filter_cubic",
15954 );
15955 self.ext_filter_cubic = true;
15956 }
15957 }
15958 if self.qcom_fragment_density_map_offset {
15959 if !(self.ext_fragment_density_map) {
15960 assert!(
15961 supported.ext_fragment_density_map,
15962 "The device extension `{}` is enabled, and it requires \
15963 the `{}` extension to be also enabled, but the device \
15964 does not support the required extension. \
15965 This is a bug in the Vulkan driver for this device.",
15966 "qcom_fragment_density_map_offset", "ext_fragment_density_map",
15967 );
15968 self.ext_fragment_density_map = true;
15969 }
15970 }
15971 if self.qcom_image_processing {
15972 if !(api_version >= crate::Version::V1_3 || self.khr_format_feature_flags2) {
15973 assert!(
15974 supported.khr_format_feature_flags2,
15975 "The device extension `{}` is enabled, and it requires \
15976 the `{}` extension to be also enabled, but the device \
15977 does not support the required extension. \
15978 This is a bug in the Vulkan driver for this device.",
15979 "qcom_image_processing", "khr_format_feature_flags2",
15980 );
15981 self.khr_format_feature_flags2 = true;
15982 }
15983 }
15984 if self.qcom_image_processing2 {
15985 if !(self.qcom_image_processing) {
15986 assert!(
15987 supported.qcom_image_processing,
15988 "The device extension `{}` is enabled, and it requires \
15989 the `{}` extension to be also enabled, but the device \
15990 does not support the required extension. \
15991 This is a bug in the Vulkan driver for this device.",
15992 "qcom_image_processing2", "qcom_image_processing",
15993 );
15994 self.qcom_image_processing = true;
15995 }
15996 }
15997 if self.qcom_rotated_copy_commands {
15998 if !(api_version >= crate::Version::V1_3 || self.khr_copy_commands2) {
15999 assert!(
16000 supported.khr_copy_commands2,
16001 "The device extension `{}` is enabled, and it requires \
16002 the `{}` extension to be also enabled, but the device \
16003 does not support the required extension. \
16004 This is a bug in the Vulkan driver for this device.",
16005 "qcom_rotated_copy_commands", "khr_copy_commands2",
16006 );
16007 self.khr_copy_commands2 = true;
16008 }
16009 }
16010 if self.qnx_external_memory_screen_buffer {
16011 if !(api_version >= crate::Version::V1_1 || self.khr_sampler_ycbcr_conversion) {
16012 assert!(
16013 supported.khr_sampler_ycbcr_conversion,
16014 "The device extension `{}` is enabled, and it requires \
16015 the `{}` extension to be also enabled, but the device \
16016 does not support the required extension. \
16017 This is a bug in the Vulkan driver for this device.",
16018 "qnx_external_memory_screen_buffer", "khr_sampler_ycbcr_conversion",
16019 );
16020 self.khr_sampler_ycbcr_conversion = true;
16021 }
16022 if !(api_version >= crate::Version::V1_1 || self.khr_external_memory) {
16023 assert!(
16024 supported.khr_external_memory,
16025 "The device extension `{}` is enabled, and it requires \
16026 the `{}` extension to be also enabled, but the device \
16027 does not support the required extension. \
16028 This is a bug in the Vulkan driver for this device.",
16029 "qnx_external_memory_screen_buffer", "khr_external_memory",
16030 );
16031 self.khr_external_memory = true;
16032 }
16033 if !(api_version >= crate::Version::V1_1 || self.khr_dedicated_allocation) {
16034 assert!(
16035 supported.khr_dedicated_allocation,
16036 "The device extension `{}` is enabled, and it requires \
16037 the `{}` extension to be also enabled, but the device \
16038 does not support the required extension. \
16039 This is a bug in the Vulkan driver for this device.",
16040 "qnx_external_memory_screen_buffer", "khr_dedicated_allocation",
16041 );
16042 self.khr_dedicated_allocation = true;
16043 }
16044 if !(self.ext_queue_family_foreign) {
16045 assert!(
16046 supported.ext_queue_family_foreign,
16047 "The device extension `{}` is enabled, and it requires \
16048 the `{}` extension to be also enabled, but the device \
16049 does not support the required extension. \
16050 This is a bug in the Vulkan driver for this device.",
16051 "qnx_external_memory_screen_buffer", "ext_queue_family_foreign",
16052 );
16053 self.ext_queue_family_foreign = true;
16054 }
16055 }
16056 if self.valve_mutable_descriptor_type {
16057 if !(api_version >= crate::Version::V1_1 || self.khr_maintenance3) {
16058 assert!(
16059 supported.khr_maintenance3,
16060 "The device extension `{}` is enabled, and it requires \
16061 the `{}` extension to be also enabled, but the device \
16062 does not support the required extension. \
16063 This is a bug in the Vulkan driver for this device.",
16064 "valve_mutable_descriptor_type", "khr_maintenance3",
16065 );
16066 self.khr_maintenance3 = true;
16067 }
16068 }
16069 }
16070}