Vulkan-Hpp
vulkan_hash.hpp
Go to the documentation of this file.
1 // Copyright 2015-2024 The Khronos Group Inc.
2 //
3 // SPDX-License-Identifier: Apache-2.0 OR MIT
4 //
5 
6 // This header is generated from the Khronos Vulkan XML API Registry.
7 
8 #ifndef VULKAN_HASH_HPP
9 #define VULKAN_HASH_HPP
10 
11 #include <vulkan/vulkan.hpp>
12 
13 namespace std
14 {
15  //=======================================
16  //=== HASH structures for Flags types ===
17  //=======================================
18 
19  template <typename BitType>
20  struct hash<VULKAN_HPP_NAMESPACE::Flags<BitType>>
21  {
22  std::size_t operator()( VULKAN_HPP_NAMESPACE::Flags<BitType> const & flags ) const VULKAN_HPP_NOEXCEPT
23  {
24  return std::hash<typename std::underlying_type<BitType>::type>{}( static_cast<typename std::underlying_type<BitType>::type>( flags ) );
25  }
26  };
27 
28  //===================================
29  //=== HASH structures for handles ===
30  //===================================
31 
32  //=== VK_VERSION_1_0 ===
33 
34  template <>
35  struct hash<VULKAN_HPP_NAMESPACE::Instance>
36  {
37  std::size_t operator()( VULKAN_HPP_NAMESPACE::Instance const & instance ) const VULKAN_HPP_NOEXCEPT
38  {
39  return std::hash<VkInstance>{}( static_cast<VkInstance>( instance ) );
40  }
41  };
42 
43  template <>
44  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevice>
45  {
46  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevice const & physicalDevice ) const VULKAN_HPP_NOEXCEPT
47  {
48  return std::hash<VkPhysicalDevice>{}( static_cast<VkPhysicalDevice>( physicalDevice ) );
49  }
50  };
51 
52  template <>
53  struct hash<VULKAN_HPP_NAMESPACE::Device>
54  {
55  std::size_t operator()( VULKAN_HPP_NAMESPACE::Device const & device ) const VULKAN_HPP_NOEXCEPT
56  {
57  return std::hash<VkDevice>{}( static_cast<VkDevice>( device ) );
58  }
59  };
60 
61  template <>
62  struct hash<VULKAN_HPP_NAMESPACE::Queue>
63  {
64  std::size_t operator()( VULKAN_HPP_NAMESPACE::Queue const & queue ) const VULKAN_HPP_NOEXCEPT
65  {
66  return std::hash<VkQueue>{}( static_cast<VkQueue>( queue ) );
67  }
68  };
69 
70  template <>
71  struct hash<VULKAN_HPP_NAMESPACE::DeviceMemory>
72  {
73  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceMemory const & deviceMemory ) const VULKAN_HPP_NOEXCEPT
74  {
75  return std::hash<VkDeviceMemory>{}( static_cast<VkDeviceMemory>( deviceMemory ) );
76  }
77  };
78 
79  template <>
80  struct hash<VULKAN_HPP_NAMESPACE::Fence>
81  {
82  std::size_t operator()( VULKAN_HPP_NAMESPACE::Fence const & fence ) const VULKAN_HPP_NOEXCEPT
83  {
84  return std::hash<VkFence>{}( static_cast<VkFence>( fence ) );
85  }
86  };
87 
88  template <>
89  struct hash<VULKAN_HPP_NAMESPACE::Semaphore>
90  {
91  std::size_t operator()( VULKAN_HPP_NAMESPACE::Semaphore const & semaphore ) const VULKAN_HPP_NOEXCEPT
92  {
93  return std::hash<VkSemaphore>{}( static_cast<VkSemaphore>( semaphore ) );
94  }
95  };
96 
97  template <>
98  struct hash<VULKAN_HPP_NAMESPACE::Event>
99  {
100  std::size_t operator()( VULKAN_HPP_NAMESPACE::Event const & event ) const VULKAN_HPP_NOEXCEPT
101  {
102  return std::hash<VkEvent>{}( static_cast<VkEvent>( event ) );
103  }
104  };
105 
106  template <>
107  struct hash<VULKAN_HPP_NAMESPACE::QueryPool>
108  {
109  std::size_t operator()( VULKAN_HPP_NAMESPACE::QueryPool const & queryPool ) const VULKAN_HPP_NOEXCEPT
110  {
111  return std::hash<VkQueryPool>{}( static_cast<VkQueryPool>( queryPool ) );
112  }
113  };
114 
115  template <>
116  struct hash<VULKAN_HPP_NAMESPACE::Buffer>
117  {
118  std::size_t operator()( VULKAN_HPP_NAMESPACE::Buffer const & buffer ) const VULKAN_HPP_NOEXCEPT
119  {
120  return std::hash<VkBuffer>{}( static_cast<VkBuffer>( buffer ) );
121  }
122  };
123 
124  template <>
125  struct hash<VULKAN_HPP_NAMESPACE::BufferView>
126  {
127  std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferView const & bufferView ) const VULKAN_HPP_NOEXCEPT
128  {
129  return std::hash<VkBufferView>{}( static_cast<VkBufferView>( bufferView ) );
130  }
131  };
132 
133  template <>
134  struct hash<VULKAN_HPP_NAMESPACE::Image>
135  {
136  std::size_t operator()( VULKAN_HPP_NAMESPACE::Image const & image ) const VULKAN_HPP_NOEXCEPT
137  {
138  return std::hash<VkImage>{}( static_cast<VkImage>( image ) );
139  }
140  };
141 
142  template <>
143  struct hash<VULKAN_HPP_NAMESPACE::ImageView>
144  {
145  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageView const & imageView ) const VULKAN_HPP_NOEXCEPT
146  {
147  return std::hash<VkImageView>{}( static_cast<VkImageView>( imageView ) );
148  }
149  };
150 
151  template <>
152  struct hash<VULKAN_HPP_NAMESPACE::ShaderModule>
153  {
154  std::size_t operator()( VULKAN_HPP_NAMESPACE::ShaderModule const & shaderModule ) const VULKAN_HPP_NOEXCEPT
155  {
156  return std::hash<VkShaderModule>{}( static_cast<VkShaderModule>( shaderModule ) );
157  }
158  };
159 
160  template <>
161  struct hash<VULKAN_HPP_NAMESPACE::PipelineCache>
162  {
163  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCache const & pipelineCache ) const VULKAN_HPP_NOEXCEPT
164  {
165  return std::hash<VkPipelineCache>{}( static_cast<VkPipelineCache>( pipelineCache ) );
166  }
167  };
168 
169  template <>
170  struct hash<VULKAN_HPP_NAMESPACE::Pipeline>
171  {
172  std::size_t operator()( VULKAN_HPP_NAMESPACE::Pipeline const & pipeline ) const VULKAN_HPP_NOEXCEPT
173  {
174  return std::hash<VkPipeline>{}( static_cast<VkPipeline>( pipeline ) );
175  }
176  };
177 
178  template <>
179  struct hash<VULKAN_HPP_NAMESPACE::PipelineLayout>
180  {
181  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineLayout const & pipelineLayout ) const VULKAN_HPP_NOEXCEPT
182  {
183  return std::hash<VkPipelineLayout>{}( static_cast<VkPipelineLayout>( pipelineLayout ) );
184  }
185  };
186 
187  template <>
188  struct hash<VULKAN_HPP_NAMESPACE::Sampler>
189  {
190  std::size_t operator()( VULKAN_HPP_NAMESPACE::Sampler const & sampler ) const VULKAN_HPP_NOEXCEPT
191  {
192  return std::hash<VkSampler>{}( static_cast<VkSampler>( sampler ) );
193  }
194  };
195 
196  template <>
197  struct hash<VULKAN_HPP_NAMESPACE::DescriptorPool>
198  {
199  std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorPool const & descriptorPool ) const VULKAN_HPP_NOEXCEPT
200  {
201  return std::hash<VkDescriptorPool>{}( static_cast<VkDescriptorPool>( descriptorPool ) );
202  }
203  };
204 
205  template <>
206  struct hash<VULKAN_HPP_NAMESPACE::DescriptorSet>
207  {
208  std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorSet const & descriptorSet ) const VULKAN_HPP_NOEXCEPT
209  {
210  return std::hash<VkDescriptorSet>{}( static_cast<VkDescriptorSet>( descriptorSet ) );
211  }
212  };
213 
214  template <>
215  struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetLayout>
216  {
217  std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorSetLayout const & descriptorSetLayout ) const VULKAN_HPP_NOEXCEPT
218  {
219  return std::hash<VkDescriptorSetLayout>{}( static_cast<VkDescriptorSetLayout>( descriptorSetLayout ) );
220  }
221  };
222 
223  template <>
224  struct hash<VULKAN_HPP_NAMESPACE::Framebuffer>
225  {
226  std::size_t operator()( VULKAN_HPP_NAMESPACE::Framebuffer const & framebuffer ) const VULKAN_HPP_NOEXCEPT
227  {
228  return std::hash<VkFramebuffer>{}( static_cast<VkFramebuffer>( framebuffer ) );
229  }
230  };
231 
232  template <>
233  struct hash<VULKAN_HPP_NAMESPACE::RenderPass>
234  {
235  std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPass const & renderPass ) const VULKAN_HPP_NOEXCEPT
236  {
237  return std::hash<VkRenderPass>{}( static_cast<VkRenderPass>( renderPass ) );
238  }
239  };
240 
241  template <>
242  struct hash<VULKAN_HPP_NAMESPACE::CommandPool>
243  {
244  std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandPool const & commandPool ) const VULKAN_HPP_NOEXCEPT
245  {
246  return std::hash<VkCommandPool>{}( static_cast<VkCommandPool>( commandPool ) );
247  }
248  };
249 
250  template <>
251  struct hash<VULKAN_HPP_NAMESPACE::CommandBuffer>
252  {
253  std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandBuffer const & commandBuffer ) const VULKAN_HPP_NOEXCEPT
254  {
255  return std::hash<VkCommandBuffer>{}( static_cast<VkCommandBuffer>( commandBuffer ) );
256  }
257  };
258 
259  //=== VK_VERSION_1_1 ===
260 
261  template <>
262  struct hash<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>
263  {
264  std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion const & samplerYcbcrConversion ) const VULKAN_HPP_NOEXCEPT
265  {
266  return std::hash<VkSamplerYcbcrConversion>{}( static_cast<VkSamplerYcbcrConversion>( samplerYcbcrConversion ) );
267  }
268  };
269 
270  template <>
271  struct hash<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>
272  {
273  std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate const & descriptorUpdateTemplate ) const VULKAN_HPP_NOEXCEPT
274  {
275  return std::hash<VkDescriptorUpdateTemplate>{}( static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ) );
276  }
277  };
278 
279  //=== VK_VERSION_1_3 ===
280 
281  template <>
282  struct hash<VULKAN_HPP_NAMESPACE::PrivateDataSlot>
283  {
284  std::size_t operator()( VULKAN_HPP_NAMESPACE::PrivateDataSlot const & privateDataSlot ) const VULKAN_HPP_NOEXCEPT
285  {
286  return std::hash<VkPrivateDataSlot>{}( static_cast<VkPrivateDataSlot>( privateDataSlot ) );
287  }
288  };
289 
290  //=== VK_KHR_surface ===
291 
292  template <>
293  struct hash<VULKAN_HPP_NAMESPACE::SurfaceKHR>
294  {
295  std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfaceKHR const & surfaceKHR ) const VULKAN_HPP_NOEXCEPT
296  {
297  return std::hash<VkSurfaceKHR>{}( static_cast<VkSurfaceKHR>( surfaceKHR ) );
298  }
299  };
300 
301  //=== VK_KHR_swapchain ===
302 
303  template <>
304  struct hash<VULKAN_HPP_NAMESPACE::SwapchainKHR>
305  {
306  std::size_t operator()( VULKAN_HPP_NAMESPACE::SwapchainKHR const & swapchainKHR ) const VULKAN_HPP_NOEXCEPT
307  {
308  return std::hash<VkSwapchainKHR>{}( static_cast<VkSwapchainKHR>( swapchainKHR ) );
309  }
310  };
311 
312  //=== VK_KHR_display ===
313 
314  template <>
315  struct hash<VULKAN_HPP_NAMESPACE::DisplayKHR>
316  {
317  std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayKHR const & displayKHR ) const VULKAN_HPP_NOEXCEPT
318  {
319  return std::hash<VkDisplayKHR>{}( static_cast<VkDisplayKHR>( displayKHR ) );
320  }
321  };
322 
323  template <>
324  struct hash<VULKAN_HPP_NAMESPACE::DisplayModeKHR>
325  {
326  std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayModeKHR const & displayModeKHR ) const VULKAN_HPP_NOEXCEPT
327  {
328  return std::hash<VkDisplayModeKHR>{}( static_cast<VkDisplayModeKHR>( displayModeKHR ) );
329  }
330  };
331 
332  //=== VK_EXT_debug_report ===
333 
334  template <>
335  struct hash<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT>
336  {
337  std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT const & debugReportCallbackEXT ) const VULKAN_HPP_NOEXCEPT
338  {
339  return std::hash<VkDebugReportCallbackEXT>{}( static_cast<VkDebugReportCallbackEXT>( debugReportCallbackEXT ) );
340  }
341  };
342 
343  //=== VK_KHR_video_queue ===
344 
345  template <>
346  struct hash<VULKAN_HPP_NAMESPACE::VideoSessionKHR>
347  {
348  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoSessionKHR const & videoSessionKHR ) const VULKAN_HPP_NOEXCEPT
349  {
350  return std::hash<VkVideoSessionKHR>{}( static_cast<VkVideoSessionKHR>( videoSessionKHR ) );
351  }
352  };
353 
354  template <>
355  struct hash<VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR>
356  {
357  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR const & videoSessionParametersKHR ) const VULKAN_HPP_NOEXCEPT
358  {
359  return std::hash<VkVideoSessionParametersKHR>{}( static_cast<VkVideoSessionParametersKHR>( videoSessionParametersKHR ) );
360  }
361  };
362 
363  //=== VK_NVX_binary_import ===
364 
365  template <>
366  struct hash<VULKAN_HPP_NAMESPACE::CuModuleNVX>
367  {
368  std::size_t operator()( VULKAN_HPP_NAMESPACE::CuModuleNVX const & cuModuleNVX ) const VULKAN_HPP_NOEXCEPT
369  {
370  return std::hash<VkCuModuleNVX>{}( static_cast<VkCuModuleNVX>( cuModuleNVX ) );
371  }
372  };
373 
374  template <>
375  struct hash<VULKAN_HPP_NAMESPACE::CuFunctionNVX>
376  {
377  std::size_t operator()( VULKAN_HPP_NAMESPACE::CuFunctionNVX const & cuFunctionNVX ) const VULKAN_HPP_NOEXCEPT
378  {
379  return std::hash<VkCuFunctionNVX>{}( static_cast<VkCuFunctionNVX>( cuFunctionNVX ) );
380  }
381  };
382 
383  //=== VK_EXT_debug_utils ===
384 
385  template <>
386  struct hash<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT>
387  {
388  std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT const & debugUtilsMessengerEXT ) const VULKAN_HPP_NOEXCEPT
389  {
390  return std::hash<VkDebugUtilsMessengerEXT>{}( static_cast<VkDebugUtilsMessengerEXT>( debugUtilsMessengerEXT ) );
391  }
392  };
393 
394  //=== VK_KHR_acceleration_structure ===
395 
396  template <>
397  struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR>
398  {
399  std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR const & accelerationStructureKHR ) const VULKAN_HPP_NOEXCEPT
400  {
401  return std::hash<VkAccelerationStructureKHR>{}( static_cast<VkAccelerationStructureKHR>( accelerationStructureKHR ) );
402  }
403  };
404 
405  //=== VK_EXT_validation_cache ===
406 
407  template <>
408  struct hash<VULKAN_HPP_NAMESPACE::ValidationCacheEXT>
409  {
410  std::size_t operator()( VULKAN_HPP_NAMESPACE::ValidationCacheEXT const & validationCacheEXT ) const VULKAN_HPP_NOEXCEPT
411  {
412  return std::hash<VkValidationCacheEXT>{}( static_cast<VkValidationCacheEXT>( validationCacheEXT ) );
413  }
414  };
415 
416  //=== VK_NV_ray_tracing ===
417 
418  template <>
419  struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureNV>
420  {
421  std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureNV const & accelerationStructureNV ) const VULKAN_HPP_NOEXCEPT
422  {
423  return std::hash<VkAccelerationStructureNV>{}( static_cast<VkAccelerationStructureNV>( accelerationStructureNV ) );
424  }
425  };
426 
427  //=== VK_INTEL_performance_query ===
428 
429  template <>
430  struct hash<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL>
431  {
432  std::size_t operator()( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL const & performanceConfigurationINTEL ) const VULKAN_HPP_NOEXCEPT
433  {
434  return std::hash<VkPerformanceConfigurationINTEL>{}( static_cast<VkPerformanceConfigurationINTEL>( performanceConfigurationINTEL ) );
435  }
436  };
437 
438  //=== VK_KHR_deferred_host_operations ===
439 
440  template <>
441  struct hash<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>
442  {
443  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeferredOperationKHR const & deferredOperationKHR ) const VULKAN_HPP_NOEXCEPT
444  {
445  return std::hash<VkDeferredOperationKHR>{}( static_cast<VkDeferredOperationKHR>( deferredOperationKHR ) );
446  }
447  };
448 
449  //=== VK_NV_device_generated_commands ===
450 
451  template <>
452  struct hash<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV>
453  {
454  std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV const & indirectCommandsLayoutNV ) const VULKAN_HPP_NOEXCEPT
455  {
456  return std::hash<VkIndirectCommandsLayoutNV>{}( static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayoutNV ) );
457  }
458  };
459 
460 #if defined( VK_ENABLE_BETA_EXTENSIONS )
461  //=== VK_NV_cuda_kernel_launch ===
462 
463  template <>
464  struct hash<VULKAN_HPP_NAMESPACE::CudaModuleNV>
465  {
466  std::size_t operator()( VULKAN_HPP_NAMESPACE::CudaModuleNV const & cudaModuleNV ) const VULKAN_HPP_NOEXCEPT
467  {
468  return std::hash<VkCudaModuleNV>{}( static_cast<VkCudaModuleNV>( cudaModuleNV ) );
469  }
470  };
471 
472  template <>
473  struct hash<VULKAN_HPP_NAMESPACE::CudaFunctionNV>
474  {
475  std::size_t operator()( VULKAN_HPP_NAMESPACE::CudaFunctionNV const & cudaFunctionNV ) const VULKAN_HPP_NOEXCEPT
476  {
477  return std::hash<VkCudaFunctionNV>{}( static_cast<VkCudaFunctionNV>( cudaFunctionNV ) );
478  }
479  };
480 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
481 
482 #if defined( VK_USE_PLATFORM_FUCHSIA )
483  //=== VK_FUCHSIA_buffer_collection ===
484 
485  template <>
486  struct hash<VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA>
487  {
488  std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA const & bufferCollectionFUCHSIA ) const VULKAN_HPP_NOEXCEPT
489  {
490  return std::hash<VkBufferCollectionFUCHSIA>{}( static_cast<VkBufferCollectionFUCHSIA>( bufferCollectionFUCHSIA ) );
491  }
492  };
493 #endif /*VK_USE_PLATFORM_FUCHSIA*/
494 
495  //=== VK_EXT_opacity_micromap ===
496 
497  template <>
498  struct hash<VULKAN_HPP_NAMESPACE::MicromapEXT>
499  {
500  std::size_t operator()( VULKAN_HPP_NAMESPACE::MicromapEXT const & micromapEXT ) const VULKAN_HPP_NOEXCEPT
501  {
502  return std::hash<VkMicromapEXT>{}( static_cast<VkMicromapEXT>( micromapEXT ) );
503  }
504  };
505 
506  //=== VK_NV_optical_flow ===
507 
508  template <>
509  struct hash<VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV>
510  {
511  std::size_t operator()( VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV const & opticalFlowSessionNV ) const VULKAN_HPP_NOEXCEPT
512  {
513  return std::hash<VkOpticalFlowSessionNV>{}( static_cast<VkOpticalFlowSessionNV>( opticalFlowSessionNV ) );
514  }
515  };
516 
517  //=== VK_EXT_shader_object ===
518 
519  template <>
520  struct hash<VULKAN_HPP_NAMESPACE::ShaderEXT>
521  {
522  std::size_t operator()( VULKAN_HPP_NAMESPACE::ShaderEXT const & shaderEXT ) const VULKAN_HPP_NOEXCEPT
523  {
524  return std::hash<VkShaderEXT>{}( static_cast<VkShaderEXT>( shaderEXT ) );
525  }
526  };
527 
528 #if 14 <= VULKAN_HPP_CPP_VERSION
529  //======================================
530  //=== HASH structures for structures ===
531  //======================================
532 
533 # if !defined( VULKAN_HPP_HASH_COMBINE )
534 # define VULKAN_HPP_HASH_COMBINE( seed, value ) \
535  seed ^= std::hash<std::decay<decltype( value )>::type>{}( value ) + 0x9e3779b9 + ( seed << 6 ) + ( seed >> 2 )
536 # endif
537 
538  template <>
539  struct hash<VULKAN_HPP_NAMESPACE::AabbPositionsKHR>
540  {
541  std::size_t operator()( VULKAN_HPP_NAMESPACE::AabbPositionsKHR const & aabbPositionsKHR ) const VULKAN_HPP_NOEXCEPT
542  {
543  std::size_t seed = 0;
544  VULKAN_HPP_HASH_COMBINE( seed, aabbPositionsKHR.minX );
545  VULKAN_HPP_HASH_COMBINE( seed, aabbPositionsKHR.minY );
546  VULKAN_HPP_HASH_COMBINE( seed, aabbPositionsKHR.minZ );
547  VULKAN_HPP_HASH_COMBINE( seed, aabbPositionsKHR.maxX );
548  VULKAN_HPP_HASH_COMBINE( seed, aabbPositionsKHR.maxY );
549  VULKAN_HPP_HASH_COMBINE( seed, aabbPositionsKHR.maxZ );
550  return seed;
551  }
552  };
553 
554  template <>
555  struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR>
556  {
557  std::size_t
558  operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR const & accelerationStructureBuildRangeInfoKHR ) const VULKAN_HPP_NOEXCEPT
559  {
560  std::size_t seed = 0;
561  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureBuildRangeInfoKHR.primitiveCount );
562  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureBuildRangeInfoKHR.primitiveOffset );
563  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureBuildRangeInfoKHR.firstVertex );
564  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureBuildRangeInfoKHR.transformOffset );
565  return seed;
566  }
567  };
568 
569  template <>
570  struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR>
571  {
572  std::size_t
573  operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR const & accelerationStructureBuildSizesInfoKHR ) const VULKAN_HPP_NOEXCEPT
574  {
575  std::size_t seed = 0;
576  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureBuildSizesInfoKHR.sType );
577  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureBuildSizesInfoKHR.pNext );
578  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureBuildSizesInfoKHR.accelerationStructureSize );
579  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureBuildSizesInfoKHR.updateScratchSize );
580  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureBuildSizesInfoKHR.buildScratchSize );
581  return seed;
582  }
583  };
584 
585  template <>
586  struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT>
587  {
588  std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT const & accelerationStructureCaptureDescriptorDataInfoEXT )
589  const VULKAN_HPP_NOEXCEPT
590  {
591  std::size_t seed = 0;
592  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCaptureDescriptorDataInfoEXT.sType );
593  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCaptureDescriptorDataInfoEXT.pNext );
594  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCaptureDescriptorDataInfoEXT.accelerationStructure );
595  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCaptureDescriptorDataInfoEXT.accelerationStructureNV );
596  return seed;
597  }
598  };
599 
600  template <>
601  struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR>
602  {
603  std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR const & accelerationStructureCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
604  {
605  std::size_t seed = 0;
606  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoKHR.sType );
607  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoKHR.pNext );
608  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoKHR.createFlags );
609  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoKHR.buffer );
610  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoKHR.offset );
611  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoKHR.size );
612  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoKHR.type );
613  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoKHR.deviceAddress );
614  return seed;
615  }
616  };
617 
618  template <>
619  struct hash<VULKAN_HPP_NAMESPACE::GeometryTrianglesNV>
620  {
621  std::size_t operator()( VULKAN_HPP_NAMESPACE::GeometryTrianglesNV const & geometryTrianglesNV ) const VULKAN_HPP_NOEXCEPT
622  {
623  std::size_t seed = 0;
624  VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.sType );
625  VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.pNext );
626  VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.vertexData );
627  VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.vertexOffset );
628  VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.vertexCount );
629  VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.vertexStride );
630  VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.vertexFormat );
631  VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.indexData );
632  VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.indexOffset );
633  VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.indexCount );
634  VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.indexType );
635  VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.transformData );
636  VULKAN_HPP_HASH_COMBINE( seed, geometryTrianglesNV.transformOffset );
637  return seed;
638  }
639  };
640 
641  template <>
642  struct hash<VULKAN_HPP_NAMESPACE::GeometryAABBNV>
643  {
644  std::size_t operator()( VULKAN_HPP_NAMESPACE::GeometryAABBNV const & geometryAABBNV ) const VULKAN_HPP_NOEXCEPT
645  {
646  std::size_t seed = 0;
647  VULKAN_HPP_HASH_COMBINE( seed, geometryAABBNV.sType );
648  VULKAN_HPP_HASH_COMBINE( seed, geometryAABBNV.pNext );
649  VULKAN_HPP_HASH_COMBINE( seed, geometryAABBNV.aabbData );
650  VULKAN_HPP_HASH_COMBINE( seed, geometryAABBNV.numAABBs );
651  VULKAN_HPP_HASH_COMBINE( seed, geometryAABBNV.stride );
652  VULKAN_HPP_HASH_COMBINE( seed, geometryAABBNV.offset );
653  return seed;
654  }
655  };
656 
657  template <>
658  struct hash<VULKAN_HPP_NAMESPACE::GeometryDataNV>
659  {
660  std::size_t operator()( VULKAN_HPP_NAMESPACE::GeometryDataNV const & geometryDataNV ) const VULKAN_HPP_NOEXCEPT
661  {
662  std::size_t seed = 0;
663  VULKAN_HPP_HASH_COMBINE( seed, geometryDataNV.triangles );
664  VULKAN_HPP_HASH_COMBINE( seed, geometryDataNV.aabbs );
665  return seed;
666  }
667  };
668 
669  template <>
670  struct hash<VULKAN_HPP_NAMESPACE::GeometryNV>
671  {
672  std::size_t operator()( VULKAN_HPP_NAMESPACE::GeometryNV const & geometryNV ) const VULKAN_HPP_NOEXCEPT
673  {
674  std::size_t seed = 0;
675  VULKAN_HPP_HASH_COMBINE( seed, geometryNV.sType );
676  VULKAN_HPP_HASH_COMBINE( seed, geometryNV.pNext );
677  VULKAN_HPP_HASH_COMBINE( seed, geometryNV.geometryType );
678  VULKAN_HPP_HASH_COMBINE( seed, geometryNV.geometry );
679  VULKAN_HPP_HASH_COMBINE( seed, geometryNV.flags );
680  return seed;
681  }
682  };
683 
684  template <>
685  struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV>
686  {
687  std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV const & accelerationStructureInfoNV ) const VULKAN_HPP_NOEXCEPT
688  {
689  std::size_t seed = 0;
690  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInfoNV.sType );
691  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInfoNV.pNext );
692  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInfoNV.type );
693  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInfoNV.flags );
694  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInfoNV.instanceCount );
695  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInfoNV.geometryCount );
696  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInfoNV.pGeometries );
697  return seed;
698  }
699  };
700 
701  template <>
702  struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV>
703  {
704  std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV const & accelerationStructureCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
705  {
706  std::size_t seed = 0;
707  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoNV.sType );
708  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoNV.pNext );
709  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoNV.compactedSize );
710  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureCreateInfoNV.info );
711  return seed;
712  }
713  };
714 
715  template <>
716  struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR>
717  {
718  std::size_t
719  operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR const & accelerationStructureDeviceAddressInfoKHR ) const VULKAN_HPP_NOEXCEPT
720  {
721  std::size_t seed = 0;
722  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureDeviceAddressInfoKHR.sType );
723  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureDeviceAddressInfoKHR.pNext );
724  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureDeviceAddressInfoKHR.accelerationStructure );
725  return seed;
726  }
727  };
728 
729  template <>
730  struct hash<VULKAN_HPP_NAMESPACE::TransformMatrixKHR>
731  {
732  std::size_t operator()( VULKAN_HPP_NAMESPACE::TransformMatrixKHR const & transformMatrixKHR ) const VULKAN_HPP_NOEXCEPT
733  {
734  std::size_t seed = 0;
735  for ( size_t i = 0; i < 3; ++i )
736  {
737  for ( size_t j = 0; j < 4; ++j )
738  {
739  VULKAN_HPP_HASH_COMBINE( seed, transformMatrixKHR.matrix[i][j] );
740  }
741  }
742  return seed;
743  }
744  };
745 
746  template <>
747  struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR>
748  {
749  std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureInstanceKHR const & accelerationStructureInstanceKHR ) const VULKAN_HPP_NOEXCEPT
750  {
751  std::size_t seed = 0;
752  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInstanceKHR.transform );
753  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInstanceKHR.instanceCustomIndex );
754  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInstanceKHR.mask );
755  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInstanceKHR.instanceShaderBindingTableRecordOffset );
756  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInstanceKHR.flags );
757  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureInstanceKHR.accelerationStructureReference );
758  return seed;
759  }
760  };
761 
762  template <>
763  struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV>
764  {
765  std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureMatrixMotionInstanceNV const & accelerationStructureMatrixMotionInstanceNV ) const
767  {
768  std::size_t seed = 0;
769  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMatrixMotionInstanceNV.transformT0 );
770  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMatrixMotionInstanceNV.transformT1 );
771  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMatrixMotionInstanceNV.instanceCustomIndex );
772  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMatrixMotionInstanceNV.mask );
773  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMatrixMotionInstanceNV.instanceShaderBindingTableRecordOffset );
774  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMatrixMotionInstanceNV.flags );
775  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMatrixMotionInstanceNV.accelerationStructureReference );
776  return seed;
777  }
778  };
779 
780  template <>
781  struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV>
782  {
783  std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV const & accelerationStructureMemoryRequirementsInfoNV ) const
785  {
786  std::size_t seed = 0;
787  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMemoryRequirementsInfoNV.sType );
788  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMemoryRequirementsInfoNV.pNext );
789  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMemoryRequirementsInfoNV.type );
790  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMemoryRequirementsInfoNV.accelerationStructure );
791  return seed;
792  }
793  };
794 
795  template <>
796  struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoNV>
797  {
798  std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureMotionInfoNV const & accelerationStructureMotionInfoNV ) const VULKAN_HPP_NOEXCEPT
799  {
800  std::size_t seed = 0;
801  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMotionInfoNV.sType );
802  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMotionInfoNV.pNext );
803  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMotionInfoNV.maxInstances );
804  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureMotionInfoNV.flags );
805  return seed;
806  }
807  };
808 
809  template <>
810  struct hash<VULKAN_HPP_NAMESPACE::SRTDataNV>
811  {
812  std::size_t operator()( VULKAN_HPP_NAMESPACE::SRTDataNV const & sRTDataNV ) const VULKAN_HPP_NOEXCEPT
813  {
814  std::size_t seed = 0;
815  VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.sx );
816  VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.a );
817  VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.b );
818  VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.pvx );
819  VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.sy );
820  VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.c );
821  VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.pvy );
822  VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.sz );
823  VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.pvz );
824  VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.qx );
825  VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.qy );
826  VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.qz );
827  VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.qw );
828  VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.tx );
829  VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.ty );
830  VULKAN_HPP_HASH_COMBINE( seed, sRTDataNV.tz );
831  return seed;
832  }
833  };
834 
835  template <>
836  struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV>
837  {
838  std::size_t
839  operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureSRTMotionInstanceNV const & accelerationStructureSRTMotionInstanceNV ) const VULKAN_HPP_NOEXCEPT
840  {
841  std::size_t seed = 0;
842  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureSRTMotionInstanceNV.transformT0 );
843  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureSRTMotionInstanceNV.transformT1 );
844  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureSRTMotionInstanceNV.instanceCustomIndex );
845  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureSRTMotionInstanceNV.mask );
846  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureSRTMotionInstanceNV.instanceShaderBindingTableRecordOffset );
847  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureSRTMotionInstanceNV.flags );
848  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureSRTMotionInstanceNV.accelerationStructureReference );
849  return seed;
850  }
851  };
852 
853  template <>
854  struct hash<VULKAN_HPP_NAMESPACE::MicromapUsageEXT>
855  {
856  std::size_t operator()( VULKAN_HPP_NAMESPACE::MicromapUsageEXT const & micromapUsageEXT ) const VULKAN_HPP_NOEXCEPT
857  {
858  std::size_t seed = 0;
859  VULKAN_HPP_HASH_COMBINE( seed, micromapUsageEXT.count );
860  VULKAN_HPP_HASH_COMBINE( seed, micromapUsageEXT.subdivisionLevel );
861  VULKAN_HPP_HASH_COMBINE( seed, micromapUsageEXT.format );
862  return seed;
863  }
864  };
865 
866  template <>
867  struct hash<VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR>
868  {
869  std::size_t operator()( VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR const & accelerationStructureVersionInfoKHR ) const VULKAN_HPP_NOEXCEPT
870  {
871  std::size_t seed = 0;
872  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureVersionInfoKHR.sType );
873  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureVersionInfoKHR.pNext );
874  VULKAN_HPP_HASH_COMBINE( seed, accelerationStructureVersionInfoKHR.pVersionData );
875  return seed;
876  }
877  };
878 
879  template <>
880  struct hash<VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR>
881  {
882  std::size_t operator()( VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR const & acquireNextImageInfoKHR ) const VULKAN_HPP_NOEXCEPT
883  {
884  std::size_t seed = 0;
885  VULKAN_HPP_HASH_COMBINE( seed, acquireNextImageInfoKHR.sType );
886  VULKAN_HPP_HASH_COMBINE( seed, acquireNextImageInfoKHR.pNext );
887  VULKAN_HPP_HASH_COMBINE( seed, acquireNextImageInfoKHR.swapchain );
888  VULKAN_HPP_HASH_COMBINE( seed, acquireNextImageInfoKHR.timeout );
889  VULKAN_HPP_HASH_COMBINE( seed, acquireNextImageInfoKHR.semaphore );
890  VULKAN_HPP_HASH_COMBINE( seed, acquireNextImageInfoKHR.fence );
891  VULKAN_HPP_HASH_COMBINE( seed, acquireNextImageInfoKHR.deviceMask );
892  return seed;
893  }
894  };
895 
896  template <>
897  struct hash<VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR>
898  {
899  std::size_t operator()( VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR const & acquireProfilingLockInfoKHR ) const VULKAN_HPP_NOEXCEPT
900  {
901  std::size_t seed = 0;
902  VULKAN_HPP_HASH_COMBINE( seed, acquireProfilingLockInfoKHR.sType );
903  VULKAN_HPP_HASH_COMBINE( seed, acquireProfilingLockInfoKHR.pNext );
904  VULKAN_HPP_HASH_COMBINE( seed, acquireProfilingLockInfoKHR.flags );
905  VULKAN_HPP_HASH_COMBINE( seed, acquireProfilingLockInfoKHR.timeout );
906  return seed;
907  }
908  };
909 
910  template <>
911  struct hash<VULKAN_HPP_NAMESPACE::AllocationCallbacks>
912  {
913  std::size_t operator()( VULKAN_HPP_NAMESPACE::AllocationCallbacks const & allocationCallbacks ) const VULKAN_HPP_NOEXCEPT
914  {
915  std::size_t seed = 0;
916  VULKAN_HPP_HASH_COMBINE( seed, allocationCallbacks.pUserData );
917  VULKAN_HPP_HASH_COMBINE( seed, allocationCallbacks.pfnAllocation );
918  VULKAN_HPP_HASH_COMBINE( seed, allocationCallbacks.pfnReallocation );
919  VULKAN_HPP_HASH_COMBINE( seed, allocationCallbacks.pfnFree );
920  VULKAN_HPP_HASH_COMBINE( seed, allocationCallbacks.pfnInternalAllocation );
921  VULKAN_HPP_HASH_COMBINE( seed, allocationCallbacks.pfnInternalFree );
922  return seed;
923  }
924  };
925 
926  template <>
927  struct hash<VULKAN_HPP_NAMESPACE::AmigoProfilingSubmitInfoSEC>
928  {
929  std::size_t operator()( VULKAN_HPP_NAMESPACE::AmigoProfilingSubmitInfoSEC const & amigoProfilingSubmitInfoSEC ) const VULKAN_HPP_NOEXCEPT
930  {
931  std::size_t seed = 0;
932  VULKAN_HPP_HASH_COMBINE( seed, amigoProfilingSubmitInfoSEC.sType );
933  VULKAN_HPP_HASH_COMBINE( seed, amigoProfilingSubmitInfoSEC.pNext );
934  VULKAN_HPP_HASH_COMBINE( seed, amigoProfilingSubmitInfoSEC.firstDrawTimestamp );
935  VULKAN_HPP_HASH_COMBINE( seed, amigoProfilingSubmitInfoSEC.swapBufferTimestamp );
936  return seed;
937  }
938  };
939 
940  template <>
941  struct hash<VULKAN_HPP_NAMESPACE::ComponentMapping>
942  {
943  std::size_t operator()( VULKAN_HPP_NAMESPACE::ComponentMapping const & componentMapping ) const VULKAN_HPP_NOEXCEPT
944  {
945  std::size_t seed = 0;
946  VULKAN_HPP_HASH_COMBINE( seed, componentMapping.r );
947  VULKAN_HPP_HASH_COMBINE( seed, componentMapping.g );
948  VULKAN_HPP_HASH_COMBINE( seed, componentMapping.b );
949  VULKAN_HPP_HASH_COMBINE( seed, componentMapping.a );
950  return seed;
951  }
952  };
953 
954 # if defined( VK_USE_PLATFORM_ANDROID_KHR )
955  template <>
956  struct hash<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatProperties2ANDROID>
957  {
958  std::size_t operator()( VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatProperties2ANDROID const & androidHardwareBufferFormatProperties2ANDROID ) const
960  {
961  std::size_t seed = 0;
962  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatProperties2ANDROID.sType );
963  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatProperties2ANDROID.pNext );
964  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatProperties2ANDROID.format );
965  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatProperties2ANDROID.externalFormat );
966  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatProperties2ANDROID.formatFeatures );
967  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatProperties2ANDROID.samplerYcbcrConversionComponents );
968  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatProperties2ANDROID.suggestedYcbcrModel );
969  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatProperties2ANDROID.suggestedYcbcrRange );
970  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatProperties2ANDROID.suggestedXChromaOffset );
971  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatProperties2ANDROID.suggestedYChromaOffset );
972  return seed;
973  }
974  };
975 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
976 
977 # if defined( VK_USE_PLATFORM_ANDROID_KHR )
978  template <>
979  struct hash<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID>
980  {
981  std::size_t operator()( VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatPropertiesANDROID const & androidHardwareBufferFormatPropertiesANDROID ) const
983  {
984  std::size_t seed = 0;
985  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatPropertiesANDROID.sType );
986  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatPropertiesANDROID.pNext );
987  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatPropertiesANDROID.format );
988  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatPropertiesANDROID.externalFormat );
989  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatPropertiesANDROID.formatFeatures );
990  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatPropertiesANDROID.samplerYcbcrConversionComponents );
991  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatPropertiesANDROID.suggestedYcbcrModel );
992  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatPropertiesANDROID.suggestedYcbcrRange );
993  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatPropertiesANDROID.suggestedXChromaOffset );
994  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatPropertiesANDROID.suggestedYChromaOffset );
995  return seed;
996  }
997  };
998 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
999 
1000 # if defined( VK_USE_PLATFORM_ANDROID_KHR )
1001  template <>
1002  struct hash<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID>
1003  {
1004  std::size_t
1005  operator()( VULKAN_HPP_NAMESPACE::AndroidHardwareBufferFormatResolvePropertiesANDROID const & androidHardwareBufferFormatResolvePropertiesANDROID ) const
1007  {
1008  std::size_t seed = 0;
1009  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatResolvePropertiesANDROID.sType );
1010  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatResolvePropertiesANDROID.pNext );
1011  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferFormatResolvePropertiesANDROID.colorAttachmentFormat );
1012  return seed;
1013  }
1014  };
1015 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
1016 
1017 # if defined( VK_USE_PLATFORM_ANDROID_KHR )
1018  template <>
1019  struct hash<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID>
1020  {
1021  std::size_t
1022  operator()( VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID const & androidHardwareBufferPropertiesANDROID ) const VULKAN_HPP_NOEXCEPT
1023  {
1024  std::size_t seed = 0;
1025  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferPropertiesANDROID.sType );
1026  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferPropertiesANDROID.pNext );
1027  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferPropertiesANDROID.allocationSize );
1028  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferPropertiesANDROID.memoryTypeBits );
1029  return seed;
1030  }
1031  };
1032 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
1033 
1034 # if defined( VK_USE_PLATFORM_ANDROID_KHR )
1035  template <>
1036  struct hash<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID>
1037  {
1038  std::size_t operator()( VULKAN_HPP_NAMESPACE::AndroidHardwareBufferUsageANDROID const & androidHardwareBufferUsageANDROID ) const VULKAN_HPP_NOEXCEPT
1039  {
1040  std::size_t seed = 0;
1041  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferUsageANDROID.sType );
1042  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferUsageANDROID.pNext );
1043  VULKAN_HPP_HASH_COMBINE( seed, androidHardwareBufferUsageANDROID.androidHardwareBufferUsage );
1044  return seed;
1045  }
1046  };
1047 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
1048 
1049 # if defined( VK_USE_PLATFORM_ANDROID_KHR )
1050  template <>
1051  struct hash<VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR>
1052  {
1053  std::size_t operator()( VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR const & androidSurfaceCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
1054  {
1055  std::size_t seed = 0;
1056  VULKAN_HPP_HASH_COMBINE( seed, androidSurfaceCreateInfoKHR.sType );
1057  VULKAN_HPP_HASH_COMBINE( seed, androidSurfaceCreateInfoKHR.pNext );
1058  VULKAN_HPP_HASH_COMBINE( seed, androidSurfaceCreateInfoKHR.flags );
1059  VULKAN_HPP_HASH_COMBINE( seed, androidSurfaceCreateInfoKHR.window );
1060  return seed;
1061  }
1062  };
1063 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
1064 
1065  template <>
1066  struct hash<VULKAN_HPP_NAMESPACE::ApplicationInfo>
1067  {
1068  std::size_t operator()( VULKAN_HPP_NAMESPACE::ApplicationInfo const & applicationInfo ) const VULKAN_HPP_NOEXCEPT
1069  {
1070  std::size_t seed = 0;
1071  VULKAN_HPP_HASH_COMBINE( seed, applicationInfo.sType );
1072  VULKAN_HPP_HASH_COMBINE( seed, applicationInfo.pNext );
1073  for ( const char * p = applicationInfo.pApplicationName; *p != '\0'; ++p )
1074  {
1075  VULKAN_HPP_HASH_COMBINE( seed, *p );
1076  }
1077  VULKAN_HPP_HASH_COMBINE( seed, applicationInfo.applicationVersion );
1078  for ( const char * p = applicationInfo.pEngineName; *p != '\0'; ++p )
1079  {
1080  VULKAN_HPP_HASH_COMBINE( seed, *p );
1081  }
1082  VULKAN_HPP_HASH_COMBINE( seed, applicationInfo.engineVersion );
1083  VULKAN_HPP_HASH_COMBINE( seed, applicationInfo.apiVersion );
1084  return seed;
1085  }
1086  };
1087 
1088  template <>
1089  struct hash<VULKAN_HPP_NAMESPACE::AttachmentDescription>
1090  {
1091  std::size_t operator()( VULKAN_HPP_NAMESPACE::AttachmentDescription const & attachmentDescription ) const VULKAN_HPP_NOEXCEPT
1092  {
1093  std::size_t seed = 0;
1094  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription.flags );
1095  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription.format );
1096  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription.samples );
1097  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription.loadOp );
1098  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription.storeOp );
1099  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription.stencilLoadOp );
1100  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription.stencilStoreOp );
1101  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription.initialLayout );
1102  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription.finalLayout );
1103  return seed;
1104  }
1105  };
1106 
1107  template <>
1108  struct hash<VULKAN_HPP_NAMESPACE::AttachmentDescription2>
1109  {
1110  std::size_t operator()( VULKAN_HPP_NAMESPACE::AttachmentDescription2 const & attachmentDescription2 ) const VULKAN_HPP_NOEXCEPT
1111  {
1112  std::size_t seed = 0;
1113  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription2.sType );
1114  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription2.pNext );
1115  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription2.flags );
1116  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription2.format );
1117  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription2.samples );
1118  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription2.loadOp );
1119  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription2.storeOp );
1120  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription2.stencilLoadOp );
1121  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription2.stencilStoreOp );
1122  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription2.initialLayout );
1123  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescription2.finalLayout );
1124  return seed;
1125  }
1126  };
1127 
1128  template <>
1129  struct hash<VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout>
1130  {
1131  std::size_t operator()( VULKAN_HPP_NAMESPACE::AttachmentDescriptionStencilLayout const & attachmentDescriptionStencilLayout ) const VULKAN_HPP_NOEXCEPT
1132  {
1133  std::size_t seed = 0;
1134  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescriptionStencilLayout.sType );
1135  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescriptionStencilLayout.pNext );
1136  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescriptionStencilLayout.stencilInitialLayout );
1137  VULKAN_HPP_HASH_COMBINE( seed, attachmentDescriptionStencilLayout.stencilFinalLayout );
1138  return seed;
1139  }
1140  };
1141 
1142  template <>
1143  struct hash<VULKAN_HPP_NAMESPACE::AttachmentReference>
1144  {
1145  std::size_t operator()( VULKAN_HPP_NAMESPACE::AttachmentReference const & attachmentReference ) const VULKAN_HPP_NOEXCEPT
1146  {
1147  std::size_t seed = 0;
1148  VULKAN_HPP_HASH_COMBINE( seed, attachmentReference.attachment );
1149  VULKAN_HPP_HASH_COMBINE( seed, attachmentReference.layout );
1150  return seed;
1151  }
1152  };
1153 
1154  template <>
1155  struct hash<VULKAN_HPP_NAMESPACE::AttachmentReference2>
1156  {
1157  std::size_t operator()( VULKAN_HPP_NAMESPACE::AttachmentReference2 const & attachmentReference2 ) const VULKAN_HPP_NOEXCEPT
1158  {
1159  std::size_t seed = 0;
1160  VULKAN_HPP_HASH_COMBINE( seed, attachmentReference2.sType );
1161  VULKAN_HPP_HASH_COMBINE( seed, attachmentReference2.pNext );
1162  VULKAN_HPP_HASH_COMBINE( seed, attachmentReference2.attachment );
1163  VULKAN_HPP_HASH_COMBINE( seed, attachmentReference2.layout );
1164  VULKAN_HPP_HASH_COMBINE( seed, attachmentReference2.aspectMask );
1165  return seed;
1166  }
1167  };
1168 
1169  template <>
1170  struct hash<VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout>
1171  {
1172  std::size_t operator()( VULKAN_HPP_NAMESPACE::AttachmentReferenceStencilLayout const & attachmentReferenceStencilLayout ) const VULKAN_HPP_NOEXCEPT
1173  {
1174  std::size_t seed = 0;
1175  VULKAN_HPP_HASH_COMBINE( seed, attachmentReferenceStencilLayout.sType );
1176  VULKAN_HPP_HASH_COMBINE( seed, attachmentReferenceStencilLayout.pNext );
1177  VULKAN_HPP_HASH_COMBINE( seed, attachmentReferenceStencilLayout.stencilLayout );
1178  return seed;
1179  }
1180  };
1181 
1182  template <>
1183  struct hash<VULKAN_HPP_NAMESPACE::AttachmentSampleCountInfoAMD>
1184  {
1185  std::size_t operator()( VULKAN_HPP_NAMESPACE::AttachmentSampleCountInfoAMD const & attachmentSampleCountInfoAMD ) const VULKAN_HPP_NOEXCEPT
1186  {
1187  std::size_t seed = 0;
1188  VULKAN_HPP_HASH_COMBINE( seed, attachmentSampleCountInfoAMD.sType );
1189  VULKAN_HPP_HASH_COMBINE( seed, attachmentSampleCountInfoAMD.pNext );
1190  VULKAN_HPP_HASH_COMBINE( seed, attachmentSampleCountInfoAMD.colorAttachmentCount );
1191  VULKAN_HPP_HASH_COMBINE( seed, attachmentSampleCountInfoAMD.pColorAttachmentSamples );
1192  VULKAN_HPP_HASH_COMBINE( seed, attachmentSampleCountInfoAMD.depthStencilAttachmentSamples );
1193  return seed;
1194  }
1195  };
1196 
1197  template <>
1198  struct hash<VULKAN_HPP_NAMESPACE::Extent2D>
1199  {
1200  std::size_t operator()( VULKAN_HPP_NAMESPACE::Extent2D const & extent2D ) const VULKAN_HPP_NOEXCEPT
1201  {
1202  std::size_t seed = 0;
1203  VULKAN_HPP_HASH_COMBINE( seed, extent2D.width );
1204  VULKAN_HPP_HASH_COMBINE( seed, extent2D.height );
1205  return seed;
1206  }
1207  };
1208 
1209  template <>
1210  struct hash<VULKAN_HPP_NAMESPACE::SampleLocationEXT>
1211  {
1212  std::size_t operator()( VULKAN_HPP_NAMESPACE::SampleLocationEXT const & sampleLocationEXT ) const VULKAN_HPP_NOEXCEPT
1213  {
1214  std::size_t seed = 0;
1215  VULKAN_HPP_HASH_COMBINE( seed, sampleLocationEXT.x );
1216  VULKAN_HPP_HASH_COMBINE( seed, sampleLocationEXT.y );
1217  return seed;
1218  }
1219  };
1220 
1221  template <>
1222  struct hash<VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT>
1223  {
1224  std::size_t operator()( VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT const & sampleLocationsInfoEXT ) const VULKAN_HPP_NOEXCEPT
1225  {
1226  std::size_t seed = 0;
1227  VULKAN_HPP_HASH_COMBINE( seed, sampleLocationsInfoEXT.sType );
1228  VULKAN_HPP_HASH_COMBINE( seed, sampleLocationsInfoEXT.pNext );
1229  VULKAN_HPP_HASH_COMBINE( seed, sampleLocationsInfoEXT.sampleLocationsPerPixel );
1230  VULKAN_HPP_HASH_COMBINE( seed, sampleLocationsInfoEXT.sampleLocationGridSize );
1231  VULKAN_HPP_HASH_COMBINE( seed, sampleLocationsInfoEXT.sampleLocationsCount );
1232  VULKAN_HPP_HASH_COMBINE( seed, sampleLocationsInfoEXT.pSampleLocations );
1233  return seed;
1234  }
1235  };
1236 
1237  template <>
1238  struct hash<VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT>
1239  {
1240  std::size_t operator()( VULKAN_HPP_NAMESPACE::AttachmentSampleLocationsEXT const & attachmentSampleLocationsEXT ) const VULKAN_HPP_NOEXCEPT
1241  {
1242  std::size_t seed = 0;
1243  VULKAN_HPP_HASH_COMBINE( seed, attachmentSampleLocationsEXT.attachmentIndex );
1244  VULKAN_HPP_HASH_COMBINE( seed, attachmentSampleLocationsEXT.sampleLocationsInfo );
1245  return seed;
1246  }
1247  };
1248 
1249  template <>
1250  struct hash<VULKAN_HPP_NAMESPACE::BaseInStructure>
1251  {
1252  std::size_t operator()( VULKAN_HPP_NAMESPACE::BaseInStructure const & baseInStructure ) const VULKAN_HPP_NOEXCEPT
1253  {
1254  std::size_t seed = 0;
1255  VULKAN_HPP_HASH_COMBINE( seed, baseInStructure.sType );
1256  VULKAN_HPP_HASH_COMBINE( seed, baseInStructure.pNext );
1257  return seed;
1258  }
1259  };
1260 
1261  template <>
1262  struct hash<VULKAN_HPP_NAMESPACE::BaseOutStructure>
1263  {
1264  std::size_t operator()( VULKAN_HPP_NAMESPACE::BaseOutStructure const & baseOutStructure ) const VULKAN_HPP_NOEXCEPT
1265  {
1266  std::size_t seed = 0;
1267  VULKAN_HPP_HASH_COMBINE( seed, baseOutStructure.sType );
1268  VULKAN_HPP_HASH_COMBINE( seed, baseOutStructure.pNext );
1269  return seed;
1270  }
1271  };
1272 
1273  template <>
1274  struct hash<VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV>
1275  {
1276  std::size_t
1277  operator()( VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV const & bindAccelerationStructureMemoryInfoNV ) const VULKAN_HPP_NOEXCEPT
1278  {
1279  std::size_t seed = 0;
1280  VULKAN_HPP_HASH_COMBINE( seed, bindAccelerationStructureMemoryInfoNV.sType );
1281  VULKAN_HPP_HASH_COMBINE( seed, bindAccelerationStructureMemoryInfoNV.pNext );
1282  VULKAN_HPP_HASH_COMBINE( seed, bindAccelerationStructureMemoryInfoNV.accelerationStructure );
1283  VULKAN_HPP_HASH_COMBINE( seed, bindAccelerationStructureMemoryInfoNV.memory );
1284  VULKAN_HPP_HASH_COMBINE( seed, bindAccelerationStructureMemoryInfoNV.memoryOffset );
1285  VULKAN_HPP_HASH_COMBINE( seed, bindAccelerationStructureMemoryInfoNV.deviceIndexCount );
1286  VULKAN_HPP_HASH_COMBINE( seed, bindAccelerationStructureMemoryInfoNV.pDeviceIndices );
1287  return seed;
1288  }
1289  };
1290 
1291  template <>
1292  struct hash<VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo>
1293  {
1294  std::size_t operator()( VULKAN_HPP_NAMESPACE::BindBufferMemoryDeviceGroupInfo const & bindBufferMemoryDeviceGroupInfo ) const VULKAN_HPP_NOEXCEPT
1295  {
1296  std::size_t seed = 0;
1297  VULKAN_HPP_HASH_COMBINE( seed, bindBufferMemoryDeviceGroupInfo.sType );
1298  VULKAN_HPP_HASH_COMBINE( seed, bindBufferMemoryDeviceGroupInfo.pNext );
1299  VULKAN_HPP_HASH_COMBINE( seed, bindBufferMemoryDeviceGroupInfo.deviceIndexCount );
1300  VULKAN_HPP_HASH_COMBINE( seed, bindBufferMemoryDeviceGroupInfo.pDeviceIndices );
1301  return seed;
1302  }
1303  };
1304 
1305  template <>
1306  struct hash<VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo>
1307  {
1308  std::size_t operator()( VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo const & bindBufferMemoryInfo ) const VULKAN_HPP_NOEXCEPT
1309  {
1310  std::size_t seed = 0;
1311  VULKAN_HPP_HASH_COMBINE( seed, bindBufferMemoryInfo.sType );
1312  VULKAN_HPP_HASH_COMBINE( seed, bindBufferMemoryInfo.pNext );
1313  VULKAN_HPP_HASH_COMBINE( seed, bindBufferMemoryInfo.buffer );
1314  VULKAN_HPP_HASH_COMBINE( seed, bindBufferMemoryInfo.memory );
1315  VULKAN_HPP_HASH_COMBINE( seed, bindBufferMemoryInfo.memoryOffset );
1316  return seed;
1317  }
1318  };
1319 
1320  template <>
1321  struct hash<VULKAN_HPP_NAMESPACE::BindDescriptorBufferEmbeddedSamplersInfoEXT>
1322  {
1323  std::size_t operator()( VULKAN_HPP_NAMESPACE::BindDescriptorBufferEmbeddedSamplersInfoEXT const & bindDescriptorBufferEmbeddedSamplersInfoEXT ) const
1325  {
1326  std::size_t seed = 0;
1327  VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorBufferEmbeddedSamplersInfoEXT.sType );
1328  VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorBufferEmbeddedSamplersInfoEXT.pNext );
1329  VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorBufferEmbeddedSamplersInfoEXT.stageFlags );
1330  VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorBufferEmbeddedSamplersInfoEXT.layout );
1331  VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorBufferEmbeddedSamplersInfoEXT.set );
1332  return seed;
1333  }
1334  };
1335 
1336  template <>
1337  struct hash<VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfoKHR>
1338  {
1339  std::size_t operator()( VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfoKHR const & bindDescriptorSetsInfoKHR ) const VULKAN_HPP_NOEXCEPT
1340  {
1341  std::size_t seed = 0;
1342  VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorSetsInfoKHR.sType );
1343  VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorSetsInfoKHR.pNext );
1344  VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorSetsInfoKHR.stageFlags );
1345  VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorSetsInfoKHR.layout );
1346  VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorSetsInfoKHR.firstSet );
1347  VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorSetsInfoKHR.descriptorSetCount );
1348  VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorSetsInfoKHR.pDescriptorSets );
1349  VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorSetsInfoKHR.dynamicOffsetCount );
1350  VULKAN_HPP_HASH_COMBINE( seed, bindDescriptorSetsInfoKHR.pDynamicOffsets );
1351  return seed;
1352  }
1353  };
1354 
1355  template <>
1356  struct hash<VULKAN_HPP_NAMESPACE::Offset2D>
1357  {
1358  std::size_t operator()( VULKAN_HPP_NAMESPACE::Offset2D const & offset2D ) const VULKAN_HPP_NOEXCEPT
1359  {
1360  std::size_t seed = 0;
1361  VULKAN_HPP_HASH_COMBINE( seed, offset2D.x );
1362  VULKAN_HPP_HASH_COMBINE( seed, offset2D.y );
1363  return seed;
1364  }
1365  };
1366 
1367  template <>
1368  struct hash<VULKAN_HPP_NAMESPACE::Rect2D>
1369  {
1370  std::size_t operator()( VULKAN_HPP_NAMESPACE::Rect2D const & rect2D ) const VULKAN_HPP_NOEXCEPT
1371  {
1372  std::size_t seed = 0;
1373  VULKAN_HPP_HASH_COMBINE( seed, rect2D.offset );
1374  VULKAN_HPP_HASH_COMBINE( seed, rect2D.extent );
1375  return seed;
1376  }
1377  };
1378 
1379  template <>
1380  struct hash<VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo>
1381  {
1382  std::size_t operator()( VULKAN_HPP_NAMESPACE::BindImageMemoryDeviceGroupInfo const & bindImageMemoryDeviceGroupInfo ) const VULKAN_HPP_NOEXCEPT
1383  {
1384  std::size_t seed = 0;
1385  VULKAN_HPP_HASH_COMBINE( seed, bindImageMemoryDeviceGroupInfo.sType );
1386  VULKAN_HPP_HASH_COMBINE( seed, bindImageMemoryDeviceGroupInfo.pNext );
1387  VULKAN_HPP_HASH_COMBINE( seed, bindImageMemoryDeviceGroupInfo.deviceIndexCount );
1388  VULKAN_HPP_HASH_COMBINE( seed, bindImageMemoryDeviceGroupInfo.pDeviceIndices );
1389  VULKAN_HPP_HASH_COMBINE( seed, bindImageMemoryDeviceGroupInfo.splitInstanceBindRegionCount );
1390  VULKAN_HPP_HASH_COMBINE( seed, bindImageMemoryDeviceGroupInfo.pSplitInstanceBindRegions );
1391  return seed;
1392  }
1393  };
1394 
1395  template <>
1396  struct hash<VULKAN_HPP_NAMESPACE::BindImageMemoryInfo>
1397  {
1398  std::size_t operator()( VULKAN_HPP_NAMESPACE::BindImageMemoryInfo const & bindImageMemoryInfo ) const VULKAN_HPP_NOEXCEPT
1399  {
1400  std::size_t seed = 0;
1401  VULKAN_HPP_HASH_COMBINE( seed, bindImageMemoryInfo.sType );
1402  VULKAN_HPP_HASH_COMBINE( seed, bindImageMemoryInfo.pNext );
1403  VULKAN_HPP_HASH_COMBINE( seed, bindImageMemoryInfo.image );
1404  VULKAN_HPP_HASH_COMBINE( seed, bindImageMemoryInfo.memory );
1405  VULKAN_HPP_HASH_COMBINE( seed, bindImageMemoryInfo.memoryOffset );
1406  return seed;
1407  }
1408  };
1409 
1410  template <>
1411  struct hash<VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR>
1412  {
1413  std::size_t operator()( VULKAN_HPP_NAMESPACE::BindImageMemorySwapchainInfoKHR const & bindImageMemorySwapchainInfoKHR ) const VULKAN_HPP_NOEXCEPT
1414  {
1415  std::size_t seed = 0;
1416  VULKAN_HPP_HASH_COMBINE( seed, bindImageMemorySwapchainInfoKHR.sType );
1417  VULKAN_HPP_HASH_COMBINE( seed, bindImageMemorySwapchainInfoKHR.pNext );
1418  VULKAN_HPP_HASH_COMBINE( seed, bindImageMemorySwapchainInfoKHR.swapchain );
1419  VULKAN_HPP_HASH_COMBINE( seed, bindImageMemorySwapchainInfoKHR.imageIndex );
1420  return seed;
1421  }
1422  };
1423 
1424  template <>
1425  struct hash<VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo>
1426  {
1427  std::size_t operator()( VULKAN_HPP_NAMESPACE::BindImagePlaneMemoryInfo const & bindImagePlaneMemoryInfo ) const VULKAN_HPP_NOEXCEPT
1428  {
1429  std::size_t seed = 0;
1430  VULKAN_HPP_HASH_COMBINE( seed, bindImagePlaneMemoryInfo.sType );
1431  VULKAN_HPP_HASH_COMBINE( seed, bindImagePlaneMemoryInfo.pNext );
1432  VULKAN_HPP_HASH_COMBINE( seed, bindImagePlaneMemoryInfo.planeAspect );
1433  return seed;
1434  }
1435  };
1436 
1437  template <>
1438  struct hash<VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV>
1439  {
1440  std::size_t operator()( VULKAN_HPP_NAMESPACE::BindIndexBufferIndirectCommandNV const & bindIndexBufferIndirectCommandNV ) const VULKAN_HPP_NOEXCEPT
1441  {
1442  std::size_t seed = 0;
1443  VULKAN_HPP_HASH_COMBINE( seed, bindIndexBufferIndirectCommandNV.bufferAddress );
1444  VULKAN_HPP_HASH_COMBINE( seed, bindIndexBufferIndirectCommandNV.size );
1445  VULKAN_HPP_HASH_COMBINE( seed, bindIndexBufferIndirectCommandNV.indexType );
1446  return seed;
1447  }
1448  };
1449 
1450  template <>
1451  struct hash<VULKAN_HPP_NAMESPACE::BindMemoryStatusKHR>
1452  {
1453  std::size_t operator()( VULKAN_HPP_NAMESPACE::BindMemoryStatusKHR const & bindMemoryStatusKHR ) const VULKAN_HPP_NOEXCEPT
1454  {
1455  std::size_t seed = 0;
1456  VULKAN_HPP_HASH_COMBINE( seed, bindMemoryStatusKHR.sType );
1457  VULKAN_HPP_HASH_COMBINE( seed, bindMemoryStatusKHR.pNext );
1458  VULKAN_HPP_HASH_COMBINE( seed, bindMemoryStatusKHR.pResult );
1459  return seed;
1460  }
1461  };
1462 
1463  template <>
1464  struct hash<VULKAN_HPP_NAMESPACE::BindPipelineIndirectCommandNV>
1465  {
1466  std::size_t operator()( VULKAN_HPP_NAMESPACE::BindPipelineIndirectCommandNV const & bindPipelineIndirectCommandNV ) const VULKAN_HPP_NOEXCEPT
1467  {
1468  std::size_t seed = 0;
1469  VULKAN_HPP_HASH_COMBINE( seed, bindPipelineIndirectCommandNV.pipelineAddress );
1470  return seed;
1471  }
1472  };
1473 
1474  template <>
1475  struct hash<VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV>
1476  {
1477  std::size_t operator()( VULKAN_HPP_NAMESPACE::BindShaderGroupIndirectCommandNV const & bindShaderGroupIndirectCommandNV ) const VULKAN_HPP_NOEXCEPT
1478  {
1479  std::size_t seed = 0;
1480  VULKAN_HPP_HASH_COMBINE( seed, bindShaderGroupIndirectCommandNV.groupIndex );
1481  return seed;
1482  }
1483  };
1484 
1485  template <>
1486  struct hash<VULKAN_HPP_NAMESPACE::SparseMemoryBind>
1487  {
1488  std::size_t operator()( VULKAN_HPP_NAMESPACE::SparseMemoryBind const & sparseMemoryBind ) const VULKAN_HPP_NOEXCEPT
1489  {
1490  std::size_t seed = 0;
1491  VULKAN_HPP_HASH_COMBINE( seed, sparseMemoryBind.resourceOffset );
1492  VULKAN_HPP_HASH_COMBINE( seed, sparseMemoryBind.size );
1493  VULKAN_HPP_HASH_COMBINE( seed, sparseMemoryBind.memory );
1494  VULKAN_HPP_HASH_COMBINE( seed, sparseMemoryBind.memoryOffset );
1495  VULKAN_HPP_HASH_COMBINE( seed, sparseMemoryBind.flags );
1496  return seed;
1497  }
1498  };
1499 
1500  template <>
1501  struct hash<VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo>
1502  {
1503  std::size_t operator()( VULKAN_HPP_NAMESPACE::SparseBufferMemoryBindInfo const & sparseBufferMemoryBindInfo ) const VULKAN_HPP_NOEXCEPT
1504  {
1505  std::size_t seed = 0;
1506  VULKAN_HPP_HASH_COMBINE( seed, sparseBufferMemoryBindInfo.buffer );
1507  VULKAN_HPP_HASH_COMBINE( seed, sparseBufferMemoryBindInfo.bindCount );
1508  VULKAN_HPP_HASH_COMBINE( seed, sparseBufferMemoryBindInfo.pBinds );
1509  return seed;
1510  }
1511  };
1512 
1513  template <>
1514  struct hash<VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo>
1515  {
1516  std::size_t operator()( VULKAN_HPP_NAMESPACE::SparseImageOpaqueMemoryBindInfo const & sparseImageOpaqueMemoryBindInfo ) const VULKAN_HPP_NOEXCEPT
1517  {
1518  std::size_t seed = 0;
1519  VULKAN_HPP_HASH_COMBINE( seed, sparseImageOpaqueMemoryBindInfo.image );
1520  VULKAN_HPP_HASH_COMBINE( seed, sparseImageOpaqueMemoryBindInfo.bindCount );
1521  VULKAN_HPP_HASH_COMBINE( seed, sparseImageOpaqueMemoryBindInfo.pBinds );
1522  return seed;
1523  }
1524  };
1525 
1526  template <>
1527  struct hash<VULKAN_HPP_NAMESPACE::ImageSubresource>
1528  {
1529  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageSubresource const & imageSubresource ) const VULKAN_HPP_NOEXCEPT
1530  {
1531  std::size_t seed = 0;
1532  VULKAN_HPP_HASH_COMBINE( seed, imageSubresource.aspectMask );
1533  VULKAN_HPP_HASH_COMBINE( seed, imageSubresource.mipLevel );
1534  VULKAN_HPP_HASH_COMBINE( seed, imageSubresource.arrayLayer );
1535  return seed;
1536  }
1537  };
1538 
1539  template <>
1540  struct hash<VULKAN_HPP_NAMESPACE::Offset3D>
1541  {
1542  std::size_t operator()( VULKAN_HPP_NAMESPACE::Offset3D const & offset3D ) const VULKAN_HPP_NOEXCEPT
1543  {
1544  std::size_t seed = 0;
1545  VULKAN_HPP_HASH_COMBINE( seed, offset3D.x );
1546  VULKAN_HPP_HASH_COMBINE( seed, offset3D.y );
1547  VULKAN_HPP_HASH_COMBINE( seed, offset3D.z );
1548  return seed;
1549  }
1550  };
1551 
1552  template <>
1553  struct hash<VULKAN_HPP_NAMESPACE::Extent3D>
1554  {
1555  std::size_t operator()( VULKAN_HPP_NAMESPACE::Extent3D const & extent3D ) const VULKAN_HPP_NOEXCEPT
1556  {
1557  std::size_t seed = 0;
1558  VULKAN_HPP_HASH_COMBINE( seed, extent3D.width );
1559  VULKAN_HPP_HASH_COMBINE( seed, extent3D.height );
1560  VULKAN_HPP_HASH_COMBINE( seed, extent3D.depth );
1561  return seed;
1562  }
1563  };
1564 
1565  template <>
1566  struct hash<VULKAN_HPP_NAMESPACE::SparseImageMemoryBind>
1567  {
1568  std::size_t operator()( VULKAN_HPP_NAMESPACE::SparseImageMemoryBind const & sparseImageMemoryBind ) const VULKAN_HPP_NOEXCEPT
1569  {
1570  std::size_t seed = 0;
1571  VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryBind.subresource );
1572  VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryBind.offset );
1573  VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryBind.extent );
1574  VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryBind.memory );
1575  VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryBind.memoryOffset );
1576  VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryBind.flags );
1577  return seed;
1578  }
1579  };
1580 
1581  template <>
1582  struct hash<VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo>
1583  {
1584  std::size_t operator()( VULKAN_HPP_NAMESPACE::SparseImageMemoryBindInfo const & sparseImageMemoryBindInfo ) const VULKAN_HPP_NOEXCEPT
1585  {
1586  std::size_t seed = 0;
1587  VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryBindInfo.image );
1588  VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryBindInfo.bindCount );
1589  VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryBindInfo.pBinds );
1590  return seed;
1591  }
1592  };
1593 
1594  template <>
1595  struct hash<VULKAN_HPP_NAMESPACE::BindSparseInfo>
1596  {
1597  std::size_t operator()( VULKAN_HPP_NAMESPACE::BindSparseInfo const & bindSparseInfo ) const VULKAN_HPP_NOEXCEPT
1598  {
1599  std::size_t seed = 0;
1600  VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.sType );
1601  VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.pNext );
1602  VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.waitSemaphoreCount );
1603  VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.pWaitSemaphores );
1604  VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.bufferBindCount );
1605  VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.pBufferBinds );
1606  VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.imageOpaqueBindCount );
1607  VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.pImageOpaqueBinds );
1608  VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.imageBindCount );
1609  VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.pImageBinds );
1610  VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.signalSemaphoreCount );
1611  VULKAN_HPP_HASH_COMBINE( seed, bindSparseInfo.pSignalSemaphores );
1612  return seed;
1613  }
1614  };
1615 
1616  template <>
1617  struct hash<VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV>
1618  {
1619  std::size_t operator()( VULKAN_HPP_NAMESPACE::BindVertexBufferIndirectCommandNV const & bindVertexBufferIndirectCommandNV ) const VULKAN_HPP_NOEXCEPT
1620  {
1621  std::size_t seed = 0;
1622  VULKAN_HPP_HASH_COMBINE( seed, bindVertexBufferIndirectCommandNV.bufferAddress );
1623  VULKAN_HPP_HASH_COMBINE( seed, bindVertexBufferIndirectCommandNV.size );
1624  VULKAN_HPP_HASH_COMBINE( seed, bindVertexBufferIndirectCommandNV.stride );
1625  return seed;
1626  }
1627  };
1628 
1629  template <>
1630  struct hash<VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR>
1631  {
1632  std::size_t operator()( VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR const & bindVideoSessionMemoryInfoKHR ) const VULKAN_HPP_NOEXCEPT
1633  {
1634  std::size_t seed = 0;
1635  VULKAN_HPP_HASH_COMBINE( seed, bindVideoSessionMemoryInfoKHR.sType );
1636  VULKAN_HPP_HASH_COMBINE( seed, bindVideoSessionMemoryInfoKHR.pNext );
1637  VULKAN_HPP_HASH_COMBINE( seed, bindVideoSessionMemoryInfoKHR.memoryBindIndex );
1638  VULKAN_HPP_HASH_COMBINE( seed, bindVideoSessionMemoryInfoKHR.memory );
1639  VULKAN_HPP_HASH_COMBINE( seed, bindVideoSessionMemoryInfoKHR.memoryOffset );
1640  VULKAN_HPP_HASH_COMBINE( seed, bindVideoSessionMemoryInfoKHR.memorySize );
1641  return seed;
1642  }
1643  };
1644 
1645  template <>
1646  struct hash<VULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM>
1647  {
1648  std::size_t operator()( VULKAN_HPP_NAMESPACE::BlitImageCubicWeightsInfoQCOM const & blitImageCubicWeightsInfoQCOM ) const VULKAN_HPP_NOEXCEPT
1649  {
1650  std::size_t seed = 0;
1651  VULKAN_HPP_HASH_COMBINE( seed, blitImageCubicWeightsInfoQCOM.sType );
1652  VULKAN_HPP_HASH_COMBINE( seed, blitImageCubicWeightsInfoQCOM.pNext );
1653  VULKAN_HPP_HASH_COMBINE( seed, blitImageCubicWeightsInfoQCOM.cubicWeights );
1654  return seed;
1655  }
1656  };
1657 
1658  template <>
1659  struct hash<VULKAN_HPP_NAMESPACE::ImageSubresourceLayers>
1660  {
1661  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageSubresourceLayers const & imageSubresourceLayers ) const VULKAN_HPP_NOEXCEPT
1662  {
1663  std::size_t seed = 0;
1664  VULKAN_HPP_HASH_COMBINE( seed, imageSubresourceLayers.aspectMask );
1665  VULKAN_HPP_HASH_COMBINE( seed, imageSubresourceLayers.mipLevel );
1666  VULKAN_HPP_HASH_COMBINE( seed, imageSubresourceLayers.baseArrayLayer );
1667  VULKAN_HPP_HASH_COMBINE( seed, imageSubresourceLayers.layerCount );
1668  return seed;
1669  }
1670  };
1671 
1672  template <>
1673  struct hash<VULKAN_HPP_NAMESPACE::ImageBlit2>
1674  {
1675  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageBlit2 const & imageBlit2 ) const VULKAN_HPP_NOEXCEPT
1676  {
1677  std::size_t seed = 0;
1678  VULKAN_HPP_HASH_COMBINE( seed, imageBlit2.sType );
1679  VULKAN_HPP_HASH_COMBINE( seed, imageBlit2.pNext );
1680  VULKAN_HPP_HASH_COMBINE( seed, imageBlit2.srcSubresource );
1681  for ( size_t i = 0; i < 2; ++i )
1682  {
1683  VULKAN_HPP_HASH_COMBINE( seed, imageBlit2.srcOffsets[i] );
1684  }
1685  VULKAN_HPP_HASH_COMBINE( seed, imageBlit2.dstSubresource );
1686  for ( size_t i = 0; i < 2; ++i )
1687  {
1688  VULKAN_HPP_HASH_COMBINE( seed, imageBlit2.dstOffsets[i] );
1689  }
1690  return seed;
1691  }
1692  };
1693 
1694  template <>
1695  struct hash<VULKAN_HPP_NAMESPACE::BlitImageInfo2>
1696  {
1697  std::size_t operator()( VULKAN_HPP_NAMESPACE::BlitImageInfo2 const & blitImageInfo2 ) const VULKAN_HPP_NOEXCEPT
1698  {
1699  std::size_t seed = 0;
1700  VULKAN_HPP_HASH_COMBINE( seed, blitImageInfo2.sType );
1701  VULKAN_HPP_HASH_COMBINE( seed, blitImageInfo2.pNext );
1702  VULKAN_HPP_HASH_COMBINE( seed, blitImageInfo2.srcImage );
1703  VULKAN_HPP_HASH_COMBINE( seed, blitImageInfo2.srcImageLayout );
1704  VULKAN_HPP_HASH_COMBINE( seed, blitImageInfo2.dstImage );
1705  VULKAN_HPP_HASH_COMBINE( seed, blitImageInfo2.dstImageLayout );
1706  VULKAN_HPP_HASH_COMBINE( seed, blitImageInfo2.regionCount );
1707  VULKAN_HPP_HASH_COMBINE( seed, blitImageInfo2.pRegions );
1708  VULKAN_HPP_HASH_COMBINE( seed, blitImageInfo2.filter );
1709  return seed;
1710  }
1711  };
1712 
1713  template <>
1714  struct hash<VULKAN_HPP_NAMESPACE::BufferCaptureDescriptorDataInfoEXT>
1715  {
1716  std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferCaptureDescriptorDataInfoEXT const & bufferCaptureDescriptorDataInfoEXT ) const VULKAN_HPP_NOEXCEPT
1717  {
1718  std::size_t seed = 0;
1719  VULKAN_HPP_HASH_COMBINE( seed, bufferCaptureDescriptorDataInfoEXT.sType );
1720  VULKAN_HPP_HASH_COMBINE( seed, bufferCaptureDescriptorDataInfoEXT.pNext );
1721  VULKAN_HPP_HASH_COMBINE( seed, bufferCaptureDescriptorDataInfoEXT.buffer );
1722  return seed;
1723  }
1724  };
1725 
1726 # if defined( VK_USE_PLATFORM_FUCHSIA )
1727  template <>
1728  struct hash<VULKAN_HPP_NAMESPACE::BufferCollectionBufferCreateInfoFUCHSIA>
1729  {
1730  std::size_t
1731  operator()( VULKAN_HPP_NAMESPACE::BufferCollectionBufferCreateInfoFUCHSIA const & bufferCollectionBufferCreateInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
1732  {
1733  std::size_t seed = 0;
1734  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionBufferCreateInfoFUCHSIA.sType );
1735  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionBufferCreateInfoFUCHSIA.pNext );
1736  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionBufferCreateInfoFUCHSIA.collection );
1737  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionBufferCreateInfoFUCHSIA.index );
1738  return seed;
1739  }
1740  };
1741 # endif /*VK_USE_PLATFORM_FUCHSIA*/
1742 
1743 # if defined( VK_USE_PLATFORM_FUCHSIA )
1744  template <>
1745  struct hash<VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA>
1746  {
1747  std::size_t
1748  operator()( VULKAN_HPP_NAMESPACE::BufferCollectionConstraintsInfoFUCHSIA const & bufferCollectionConstraintsInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
1749  {
1750  std::size_t seed = 0;
1751  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionConstraintsInfoFUCHSIA.sType );
1752  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionConstraintsInfoFUCHSIA.pNext );
1753  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionConstraintsInfoFUCHSIA.minBufferCount );
1754  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionConstraintsInfoFUCHSIA.maxBufferCount );
1755  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionConstraintsInfoFUCHSIA.minBufferCountForCamping );
1756  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionConstraintsInfoFUCHSIA.minBufferCountForDedicatedSlack );
1757  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionConstraintsInfoFUCHSIA.minBufferCountForSharedSlack );
1758  return seed;
1759  }
1760  };
1761 # endif /*VK_USE_PLATFORM_FUCHSIA*/
1762 
1763 # if defined( VK_USE_PLATFORM_FUCHSIA )
1764  template <>
1765  struct hash<VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA>
1766  {
1767  std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA const & bufferCollectionCreateInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
1768  {
1769  std::size_t seed = 0;
1770  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionCreateInfoFUCHSIA.sType );
1771  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionCreateInfoFUCHSIA.pNext );
1772  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionCreateInfoFUCHSIA.collectionToken );
1773  return seed;
1774  }
1775  };
1776 # endif /*VK_USE_PLATFORM_FUCHSIA*/
1777 
1778 # if defined( VK_USE_PLATFORM_FUCHSIA )
1779  template <>
1780  struct hash<VULKAN_HPP_NAMESPACE::BufferCollectionImageCreateInfoFUCHSIA>
1781  {
1782  std::size_t
1783  operator()( VULKAN_HPP_NAMESPACE::BufferCollectionImageCreateInfoFUCHSIA const & bufferCollectionImageCreateInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
1784  {
1785  std::size_t seed = 0;
1786  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionImageCreateInfoFUCHSIA.sType );
1787  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionImageCreateInfoFUCHSIA.pNext );
1788  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionImageCreateInfoFUCHSIA.collection );
1789  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionImageCreateInfoFUCHSIA.index );
1790  return seed;
1791  }
1792  };
1793 # endif /*VK_USE_PLATFORM_FUCHSIA*/
1794 
1795 # if defined( VK_USE_PLATFORM_FUCHSIA )
1796  template <>
1797  struct hash<VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA>
1798  {
1799  std::size_t operator()( VULKAN_HPP_NAMESPACE::SysmemColorSpaceFUCHSIA const & sysmemColorSpaceFUCHSIA ) const VULKAN_HPP_NOEXCEPT
1800  {
1801  std::size_t seed = 0;
1802  VULKAN_HPP_HASH_COMBINE( seed, sysmemColorSpaceFUCHSIA.sType );
1803  VULKAN_HPP_HASH_COMBINE( seed, sysmemColorSpaceFUCHSIA.pNext );
1804  VULKAN_HPP_HASH_COMBINE( seed, sysmemColorSpaceFUCHSIA.colorSpace );
1805  return seed;
1806  }
1807  };
1808 # endif /*VK_USE_PLATFORM_FUCHSIA*/
1809 
1810 # if defined( VK_USE_PLATFORM_FUCHSIA )
1811  template <>
1812  struct hash<VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA>
1813  {
1814  std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA const & bufferCollectionPropertiesFUCHSIA ) const VULKAN_HPP_NOEXCEPT
1815  {
1816  std::size_t seed = 0;
1817  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.sType );
1818  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.pNext );
1819  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.memoryTypeBits );
1820  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.bufferCount );
1821  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.createInfoIndex );
1822  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.sysmemPixelFormat );
1823  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.formatFeatures );
1824  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.sysmemColorSpaceIndex );
1825  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.samplerYcbcrConversionComponents );
1826  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.suggestedYcbcrModel );
1827  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.suggestedYcbcrRange );
1828  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.suggestedXChromaOffset );
1829  VULKAN_HPP_HASH_COMBINE( seed, bufferCollectionPropertiesFUCHSIA.suggestedYChromaOffset );
1830  return seed;
1831  }
1832  };
1833 # endif /*VK_USE_PLATFORM_FUCHSIA*/
1834 
1835  template <>
1836  struct hash<VULKAN_HPP_NAMESPACE::BufferCreateInfo>
1837  {
1838  std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferCreateInfo const & bufferCreateInfo ) const VULKAN_HPP_NOEXCEPT
1839  {
1840  std::size_t seed = 0;
1841  VULKAN_HPP_HASH_COMBINE( seed, bufferCreateInfo.sType );
1842  VULKAN_HPP_HASH_COMBINE( seed, bufferCreateInfo.pNext );
1843  VULKAN_HPP_HASH_COMBINE( seed, bufferCreateInfo.flags );
1844  VULKAN_HPP_HASH_COMBINE( seed, bufferCreateInfo.size );
1845  VULKAN_HPP_HASH_COMBINE( seed, bufferCreateInfo.usage );
1846  VULKAN_HPP_HASH_COMBINE( seed, bufferCreateInfo.sharingMode );
1847  VULKAN_HPP_HASH_COMBINE( seed, bufferCreateInfo.queueFamilyIndexCount );
1848  VULKAN_HPP_HASH_COMBINE( seed, bufferCreateInfo.pQueueFamilyIndices );
1849  return seed;
1850  }
1851  };
1852 
1853 # if defined( VK_USE_PLATFORM_FUCHSIA )
1854  template <>
1855  struct hash<VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA>
1856  {
1857  std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA const & bufferConstraintsInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
1858  {
1859  std::size_t seed = 0;
1860  VULKAN_HPP_HASH_COMBINE( seed, bufferConstraintsInfoFUCHSIA.sType );
1861  VULKAN_HPP_HASH_COMBINE( seed, bufferConstraintsInfoFUCHSIA.pNext );
1862  VULKAN_HPP_HASH_COMBINE( seed, bufferConstraintsInfoFUCHSIA.createInfo );
1863  VULKAN_HPP_HASH_COMBINE( seed, bufferConstraintsInfoFUCHSIA.requiredFormatFeatures );
1864  VULKAN_HPP_HASH_COMBINE( seed, bufferConstraintsInfoFUCHSIA.bufferCollectionConstraints );
1865  return seed;
1866  }
1867  };
1868 # endif /*VK_USE_PLATFORM_FUCHSIA*/
1869 
1870  template <>
1871  struct hash<VULKAN_HPP_NAMESPACE::BufferCopy>
1872  {
1873  std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferCopy const & bufferCopy ) const VULKAN_HPP_NOEXCEPT
1874  {
1875  std::size_t seed = 0;
1876  VULKAN_HPP_HASH_COMBINE( seed, bufferCopy.srcOffset );
1877  VULKAN_HPP_HASH_COMBINE( seed, bufferCopy.dstOffset );
1878  VULKAN_HPP_HASH_COMBINE( seed, bufferCopy.size );
1879  return seed;
1880  }
1881  };
1882 
1883  template <>
1884  struct hash<VULKAN_HPP_NAMESPACE::BufferCopy2>
1885  {
1886  std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferCopy2 const & bufferCopy2 ) const VULKAN_HPP_NOEXCEPT
1887  {
1888  std::size_t seed = 0;
1889  VULKAN_HPP_HASH_COMBINE( seed, bufferCopy2.sType );
1890  VULKAN_HPP_HASH_COMBINE( seed, bufferCopy2.pNext );
1891  VULKAN_HPP_HASH_COMBINE( seed, bufferCopy2.srcOffset );
1892  VULKAN_HPP_HASH_COMBINE( seed, bufferCopy2.dstOffset );
1893  VULKAN_HPP_HASH_COMBINE( seed, bufferCopy2.size );
1894  return seed;
1895  }
1896  };
1897 
1898  template <>
1899  struct hash<VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT>
1900  {
1901  std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferDeviceAddressCreateInfoEXT const & bufferDeviceAddressCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
1902  {
1903  std::size_t seed = 0;
1904  VULKAN_HPP_HASH_COMBINE( seed, bufferDeviceAddressCreateInfoEXT.sType );
1905  VULKAN_HPP_HASH_COMBINE( seed, bufferDeviceAddressCreateInfoEXT.pNext );
1906  VULKAN_HPP_HASH_COMBINE( seed, bufferDeviceAddressCreateInfoEXT.deviceAddress );
1907  return seed;
1908  }
1909  };
1910 
1911  template <>
1912  struct hash<VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo>
1913  {
1914  std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo const & bufferDeviceAddressInfo ) const VULKAN_HPP_NOEXCEPT
1915  {
1916  std::size_t seed = 0;
1917  VULKAN_HPP_HASH_COMBINE( seed, bufferDeviceAddressInfo.sType );
1918  VULKAN_HPP_HASH_COMBINE( seed, bufferDeviceAddressInfo.pNext );
1919  VULKAN_HPP_HASH_COMBINE( seed, bufferDeviceAddressInfo.buffer );
1920  return seed;
1921  }
1922  };
1923 
1924  template <>
1925  struct hash<VULKAN_HPP_NAMESPACE::BufferImageCopy>
1926  {
1927  std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferImageCopy const & bufferImageCopy ) const VULKAN_HPP_NOEXCEPT
1928  {
1929  std::size_t seed = 0;
1930  VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy.bufferOffset );
1931  VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy.bufferRowLength );
1932  VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy.bufferImageHeight );
1933  VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy.imageSubresource );
1934  VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy.imageOffset );
1935  VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy.imageExtent );
1936  return seed;
1937  }
1938  };
1939 
1940  template <>
1941  struct hash<VULKAN_HPP_NAMESPACE::BufferImageCopy2>
1942  {
1943  std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferImageCopy2 const & bufferImageCopy2 ) const VULKAN_HPP_NOEXCEPT
1944  {
1945  std::size_t seed = 0;
1946  VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy2.sType );
1947  VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy2.pNext );
1948  VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy2.bufferOffset );
1949  VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy2.bufferRowLength );
1950  VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy2.bufferImageHeight );
1951  VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy2.imageSubresource );
1952  VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy2.imageOffset );
1953  VULKAN_HPP_HASH_COMBINE( seed, bufferImageCopy2.imageExtent );
1954  return seed;
1955  }
1956  };
1957 
1958  template <>
1959  struct hash<VULKAN_HPP_NAMESPACE::BufferMemoryBarrier>
1960  {
1961  std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferMemoryBarrier const & bufferMemoryBarrier ) const VULKAN_HPP_NOEXCEPT
1962  {
1963  std::size_t seed = 0;
1964  VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier.sType );
1965  VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier.pNext );
1966  VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier.srcAccessMask );
1967  VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier.dstAccessMask );
1968  VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier.srcQueueFamilyIndex );
1969  VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier.dstQueueFamilyIndex );
1970  VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier.buffer );
1971  VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier.offset );
1972  VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier.size );
1973  return seed;
1974  }
1975  };
1976 
1977  template <>
1978  struct hash<VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2>
1979  {
1980  std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferMemoryBarrier2 const & bufferMemoryBarrier2 ) const VULKAN_HPP_NOEXCEPT
1981  {
1982  std::size_t seed = 0;
1983  VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier2.sType );
1984  VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier2.pNext );
1985  VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier2.srcStageMask );
1986  VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier2.srcAccessMask );
1987  VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier2.dstStageMask );
1988  VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier2.dstAccessMask );
1989  VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier2.srcQueueFamilyIndex );
1990  VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier2.dstQueueFamilyIndex );
1991  VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier2.buffer );
1992  VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier2.offset );
1993  VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryBarrier2.size );
1994  return seed;
1995  }
1996  };
1997 
1998  template <>
1999  struct hash<VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2>
2000  {
2001  std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 const & bufferMemoryRequirementsInfo2 ) const VULKAN_HPP_NOEXCEPT
2002  {
2003  std::size_t seed = 0;
2004  VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryRequirementsInfo2.sType );
2005  VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryRequirementsInfo2.pNext );
2006  VULKAN_HPP_HASH_COMBINE( seed, bufferMemoryRequirementsInfo2.buffer );
2007  return seed;
2008  }
2009  };
2010 
2011  template <>
2012  struct hash<VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo>
2013  {
2014  std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferOpaqueCaptureAddressCreateInfo const & bufferOpaqueCaptureAddressCreateInfo ) const VULKAN_HPP_NOEXCEPT
2015  {
2016  std::size_t seed = 0;
2017  VULKAN_HPP_HASH_COMBINE( seed, bufferOpaqueCaptureAddressCreateInfo.sType );
2018  VULKAN_HPP_HASH_COMBINE( seed, bufferOpaqueCaptureAddressCreateInfo.pNext );
2019  VULKAN_HPP_HASH_COMBINE( seed, bufferOpaqueCaptureAddressCreateInfo.opaqueCaptureAddress );
2020  return seed;
2021  }
2022  };
2023 
2024  template <>
2025  struct hash<VULKAN_HPP_NAMESPACE::BufferUsageFlags2CreateInfoKHR>
2026  {
2027  std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferUsageFlags2CreateInfoKHR const & bufferUsageFlags2CreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
2028  {
2029  std::size_t seed = 0;
2030  VULKAN_HPP_HASH_COMBINE( seed, bufferUsageFlags2CreateInfoKHR.sType );
2031  VULKAN_HPP_HASH_COMBINE( seed, bufferUsageFlags2CreateInfoKHR.pNext );
2032  VULKAN_HPP_HASH_COMBINE( seed, bufferUsageFlags2CreateInfoKHR.usage );
2033  return seed;
2034  }
2035  };
2036 
2037  template <>
2038  struct hash<VULKAN_HPP_NAMESPACE::BufferViewCreateInfo>
2039  {
2040  std::size_t operator()( VULKAN_HPP_NAMESPACE::BufferViewCreateInfo const & bufferViewCreateInfo ) const VULKAN_HPP_NOEXCEPT
2041  {
2042  std::size_t seed = 0;
2043  VULKAN_HPP_HASH_COMBINE( seed, bufferViewCreateInfo.sType );
2044  VULKAN_HPP_HASH_COMBINE( seed, bufferViewCreateInfo.pNext );
2045  VULKAN_HPP_HASH_COMBINE( seed, bufferViewCreateInfo.flags );
2046  VULKAN_HPP_HASH_COMBINE( seed, bufferViewCreateInfo.buffer );
2047  VULKAN_HPP_HASH_COMBINE( seed, bufferViewCreateInfo.format );
2048  VULKAN_HPP_HASH_COMBINE( seed, bufferViewCreateInfo.offset );
2049  VULKAN_HPP_HASH_COMBINE( seed, bufferViewCreateInfo.range );
2050  return seed;
2051  }
2052  };
2053 
2054  template <>
2055  struct hash<VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR>
2056  {
2057  std::size_t operator()( VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR const & calibratedTimestampInfoKHR ) const VULKAN_HPP_NOEXCEPT
2058  {
2059  std::size_t seed = 0;
2060  VULKAN_HPP_HASH_COMBINE( seed, calibratedTimestampInfoKHR.sType );
2061  VULKAN_HPP_HASH_COMBINE( seed, calibratedTimestampInfoKHR.pNext );
2062  VULKAN_HPP_HASH_COMBINE( seed, calibratedTimestampInfoKHR.timeDomain );
2063  return seed;
2064  }
2065  };
2066 
2067  template <>
2068  struct hash<VULKAN_HPP_NAMESPACE::CheckpointData2NV>
2069  {
2070  std::size_t operator()( VULKAN_HPP_NAMESPACE::CheckpointData2NV const & checkpointData2NV ) const VULKAN_HPP_NOEXCEPT
2071  {
2072  std::size_t seed = 0;
2073  VULKAN_HPP_HASH_COMBINE( seed, checkpointData2NV.sType );
2074  VULKAN_HPP_HASH_COMBINE( seed, checkpointData2NV.pNext );
2075  VULKAN_HPP_HASH_COMBINE( seed, checkpointData2NV.stage );
2076  VULKAN_HPP_HASH_COMBINE( seed, checkpointData2NV.pCheckpointMarker );
2077  return seed;
2078  }
2079  };
2080 
2081  template <>
2082  struct hash<VULKAN_HPP_NAMESPACE::CheckpointDataNV>
2083  {
2084  std::size_t operator()( VULKAN_HPP_NAMESPACE::CheckpointDataNV const & checkpointDataNV ) const VULKAN_HPP_NOEXCEPT
2085  {
2086  std::size_t seed = 0;
2087  VULKAN_HPP_HASH_COMBINE( seed, checkpointDataNV.sType );
2088  VULKAN_HPP_HASH_COMBINE( seed, checkpointDataNV.pNext );
2089  VULKAN_HPP_HASH_COMBINE( seed, checkpointDataNV.stage );
2090  VULKAN_HPP_HASH_COMBINE( seed, checkpointDataNV.pCheckpointMarker );
2091  return seed;
2092  }
2093  };
2094 
2095  template <>
2096  struct hash<VULKAN_HPP_NAMESPACE::ClearDepthStencilValue>
2097  {
2098  std::size_t operator()( VULKAN_HPP_NAMESPACE::ClearDepthStencilValue const & clearDepthStencilValue ) const VULKAN_HPP_NOEXCEPT
2099  {
2100  std::size_t seed = 0;
2101  VULKAN_HPP_HASH_COMBINE( seed, clearDepthStencilValue.depth );
2102  VULKAN_HPP_HASH_COMBINE( seed, clearDepthStencilValue.stencil );
2103  return seed;
2104  }
2105  };
2106 
2107  template <>
2108  struct hash<VULKAN_HPP_NAMESPACE::ClearRect>
2109  {
2110  std::size_t operator()( VULKAN_HPP_NAMESPACE::ClearRect const & clearRect ) const VULKAN_HPP_NOEXCEPT
2111  {
2112  std::size_t seed = 0;
2113  VULKAN_HPP_HASH_COMBINE( seed, clearRect.rect );
2114  VULKAN_HPP_HASH_COMBINE( seed, clearRect.baseArrayLayer );
2115  VULKAN_HPP_HASH_COMBINE( seed, clearRect.layerCount );
2116  return seed;
2117  }
2118  };
2119 
2120  template <>
2121  struct hash<VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV>
2122  {
2123  std::size_t operator()( VULKAN_HPP_NAMESPACE::CoarseSampleLocationNV const & coarseSampleLocationNV ) const VULKAN_HPP_NOEXCEPT
2124  {
2125  std::size_t seed = 0;
2126  VULKAN_HPP_HASH_COMBINE( seed, coarseSampleLocationNV.pixelX );
2127  VULKAN_HPP_HASH_COMBINE( seed, coarseSampleLocationNV.pixelY );
2128  VULKAN_HPP_HASH_COMBINE( seed, coarseSampleLocationNV.sample );
2129  return seed;
2130  }
2131  };
2132 
2133  template <>
2134  struct hash<VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV>
2135  {
2136  std::size_t operator()( VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV const & coarseSampleOrderCustomNV ) const VULKAN_HPP_NOEXCEPT
2137  {
2138  std::size_t seed = 0;
2139  VULKAN_HPP_HASH_COMBINE( seed, coarseSampleOrderCustomNV.shadingRate );
2140  VULKAN_HPP_HASH_COMBINE( seed, coarseSampleOrderCustomNV.sampleCount );
2141  VULKAN_HPP_HASH_COMBINE( seed, coarseSampleOrderCustomNV.sampleLocationCount );
2142  VULKAN_HPP_HASH_COMBINE( seed, coarseSampleOrderCustomNV.pSampleLocations );
2143  return seed;
2144  }
2145  };
2146 
2147  template <>
2148  struct hash<VULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT>
2149  {
2150  std::size_t operator()( VULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT const & colorBlendAdvancedEXT ) const VULKAN_HPP_NOEXCEPT
2151  {
2152  std::size_t seed = 0;
2153  VULKAN_HPP_HASH_COMBINE( seed, colorBlendAdvancedEXT.advancedBlendOp );
2154  VULKAN_HPP_HASH_COMBINE( seed, colorBlendAdvancedEXT.srcPremultiplied );
2155  VULKAN_HPP_HASH_COMBINE( seed, colorBlendAdvancedEXT.dstPremultiplied );
2156  VULKAN_HPP_HASH_COMBINE( seed, colorBlendAdvancedEXT.blendOverlap );
2157  VULKAN_HPP_HASH_COMBINE( seed, colorBlendAdvancedEXT.clampResults );
2158  return seed;
2159  }
2160  };
2161 
2162  template <>
2163  struct hash<VULKAN_HPP_NAMESPACE::ColorBlendEquationEXT>
2164  {
2165  std::size_t operator()( VULKAN_HPP_NAMESPACE::ColorBlendEquationEXT const & colorBlendEquationEXT ) const VULKAN_HPP_NOEXCEPT
2166  {
2167  std::size_t seed = 0;
2168  VULKAN_HPP_HASH_COMBINE( seed, colorBlendEquationEXT.srcColorBlendFactor );
2169  VULKAN_HPP_HASH_COMBINE( seed, colorBlendEquationEXT.dstColorBlendFactor );
2170  VULKAN_HPP_HASH_COMBINE( seed, colorBlendEquationEXT.colorBlendOp );
2171  VULKAN_HPP_HASH_COMBINE( seed, colorBlendEquationEXT.srcAlphaBlendFactor );
2172  VULKAN_HPP_HASH_COMBINE( seed, colorBlendEquationEXT.dstAlphaBlendFactor );
2173  VULKAN_HPP_HASH_COMBINE( seed, colorBlendEquationEXT.alphaBlendOp );
2174  return seed;
2175  }
2176  };
2177 
2178  template <>
2179  struct hash<VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo>
2180  {
2181  std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo const & commandBufferAllocateInfo ) const VULKAN_HPP_NOEXCEPT
2182  {
2183  std::size_t seed = 0;
2184  VULKAN_HPP_HASH_COMBINE( seed, commandBufferAllocateInfo.sType );
2185  VULKAN_HPP_HASH_COMBINE( seed, commandBufferAllocateInfo.pNext );
2186  VULKAN_HPP_HASH_COMBINE( seed, commandBufferAllocateInfo.commandPool );
2187  VULKAN_HPP_HASH_COMBINE( seed, commandBufferAllocateInfo.level );
2188  VULKAN_HPP_HASH_COMBINE( seed, commandBufferAllocateInfo.commandBufferCount );
2189  return seed;
2190  }
2191  };
2192 
2193  template <>
2194  struct hash<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo>
2195  {
2196  std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandBufferInheritanceInfo const & commandBufferInheritanceInfo ) const VULKAN_HPP_NOEXCEPT
2197  {
2198  std::size_t seed = 0;
2199  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceInfo.sType );
2200  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceInfo.pNext );
2201  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceInfo.renderPass );
2202  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceInfo.subpass );
2203  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceInfo.framebuffer );
2204  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceInfo.occlusionQueryEnable );
2205  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceInfo.queryFlags );
2206  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceInfo.pipelineStatistics );
2207  return seed;
2208  }
2209  };
2210 
2211  template <>
2212  struct hash<VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo>
2213  {
2214  std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo const & commandBufferBeginInfo ) const VULKAN_HPP_NOEXCEPT
2215  {
2216  std::size_t seed = 0;
2217  VULKAN_HPP_HASH_COMBINE( seed, commandBufferBeginInfo.sType );
2218  VULKAN_HPP_HASH_COMBINE( seed, commandBufferBeginInfo.pNext );
2219  VULKAN_HPP_HASH_COMBINE( seed, commandBufferBeginInfo.flags );
2220  VULKAN_HPP_HASH_COMBINE( seed, commandBufferBeginInfo.pInheritanceInfo );
2221  return seed;
2222  }
2223  };
2224 
2225  template <>
2226  struct hash<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT>
2227  {
2228  std::size_t
2229  operator()( VULKAN_HPP_NAMESPACE::CommandBufferInheritanceConditionalRenderingInfoEXT const & commandBufferInheritanceConditionalRenderingInfoEXT ) const
2231  {
2232  std::size_t seed = 0;
2233  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceConditionalRenderingInfoEXT.sType );
2234  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceConditionalRenderingInfoEXT.pNext );
2235  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceConditionalRenderingInfoEXT.conditionalRenderingEnable );
2236  return seed;
2237  }
2238  };
2239 
2240  template <>
2241  struct hash<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM>
2242  {
2243  std::size_t
2244  operator()( VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderPassTransformInfoQCOM const & commandBufferInheritanceRenderPassTransformInfoQCOM ) const
2246  {
2247  std::size_t seed = 0;
2248  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderPassTransformInfoQCOM.sType );
2249  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderPassTransformInfoQCOM.pNext );
2250  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderPassTransformInfoQCOM.transform );
2251  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderPassTransformInfoQCOM.renderArea );
2252  return seed;
2253  }
2254  };
2255 
2256  template <>
2257  struct hash<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo>
2258  {
2259  std::size_t
2260  operator()( VULKAN_HPP_NAMESPACE::CommandBufferInheritanceRenderingInfo const & commandBufferInheritanceRenderingInfo ) const VULKAN_HPP_NOEXCEPT
2261  {
2262  std::size_t seed = 0;
2263  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderingInfo.sType );
2264  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderingInfo.pNext );
2265  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderingInfo.flags );
2266  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderingInfo.viewMask );
2267  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderingInfo.colorAttachmentCount );
2268  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderingInfo.pColorAttachmentFormats );
2269  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderingInfo.depthAttachmentFormat );
2270  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderingInfo.stencilAttachmentFormat );
2271  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceRenderingInfo.rasterizationSamples );
2272  return seed;
2273  }
2274  };
2275 
2276  template <>
2277  struct hash<VULKAN_HPP_NAMESPACE::Viewport>
2278  {
2279  std::size_t operator()( VULKAN_HPP_NAMESPACE::Viewport const & viewport ) const VULKAN_HPP_NOEXCEPT
2280  {
2281  std::size_t seed = 0;
2282  VULKAN_HPP_HASH_COMBINE( seed, viewport.x );
2283  VULKAN_HPP_HASH_COMBINE( seed, viewport.y );
2284  VULKAN_HPP_HASH_COMBINE( seed, viewport.width );
2285  VULKAN_HPP_HASH_COMBINE( seed, viewport.height );
2286  VULKAN_HPP_HASH_COMBINE( seed, viewport.minDepth );
2287  VULKAN_HPP_HASH_COMBINE( seed, viewport.maxDepth );
2288  return seed;
2289  }
2290  };
2291 
2292  template <>
2293  struct hash<VULKAN_HPP_NAMESPACE::CommandBufferInheritanceViewportScissorInfoNV>
2294  {
2295  std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandBufferInheritanceViewportScissorInfoNV const & commandBufferInheritanceViewportScissorInfoNV ) const
2297  {
2298  std::size_t seed = 0;
2299  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceViewportScissorInfoNV.sType );
2300  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceViewportScissorInfoNV.pNext );
2301  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceViewportScissorInfoNV.viewportScissor2D );
2302  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceViewportScissorInfoNV.viewportDepthCount );
2303  VULKAN_HPP_HASH_COMBINE( seed, commandBufferInheritanceViewportScissorInfoNV.pViewportDepths );
2304  return seed;
2305  }
2306  };
2307 
2308  template <>
2309  struct hash<VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo>
2310  {
2311  std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandBufferSubmitInfo const & commandBufferSubmitInfo ) const VULKAN_HPP_NOEXCEPT
2312  {
2313  std::size_t seed = 0;
2314  VULKAN_HPP_HASH_COMBINE( seed, commandBufferSubmitInfo.sType );
2315  VULKAN_HPP_HASH_COMBINE( seed, commandBufferSubmitInfo.pNext );
2316  VULKAN_HPP_HASH_COMBINE( seed, commandBufferSubmitInfo.commandBuffer );
2317  VULKAN_HPP_HASH_COMBINE( seed, commandBufferSubmitInfo.deviceMask );
2318  return seed;
2319  }
2320  };
2321 
2322  template <>
2323  struct hash<VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo>
2324  {
2325  std::size_t operator()( VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo const & commandPoolCreateInfo ) const VULKAN_HPP_NOEXCEPT
2326  {
2327  std::size_t seed = 0;
2328  VULKAN_HPP_HASH_COMBINE( seed, commandPoolCreateInfo.sType );
2329  VULKAN_HPP_HASH_COMBINE( seed, commandPoolCreateInfo.pNext );
2330  VULKAN_HPP_HASH_COMBINE( seed, commandPoolCreateInfo.flags );
2331  VULKAN_HPP_HASH_COMBINE( seed, commandPoolCreateInfo.queueFamilyIndex );
2332  return seed;
2333  }
2334  };
2335 
2336  template <>
2337  struct hash<VULKAN_HPP_NAMESPACE::SpecializationMapEntry>
2338  {
2339  std::size_t operator()( VULKAN_HPP_NAMESPACE::SpecializationMapEntry const & specializationMapEntry ) const VULKAN_HPP_NOEXCEPT
2340  {
2341  std::size_t seed = 0;
2342  VULKAN_HPP_HASH_COMBINE( seed, specializationMapEntry.constantID );
2343  VULKAN_HPP_HASH_COMBINE( seed, specializationMapEntry.offset );
2344  VULKAN_HPP_HASH_COMBINE( seed, specializationMapEntry.size );
2345  return seed;
2346  }
2347  };
2348 
2349  template <>
2350  struct hash<VULKAN_HPP_NAMESPACE::SpecializationInfo>
2351  {
2352  std::size_t operator()( VULKAN_HPP_NAMESPACE::SpecializationInfo const & specializationInfo ) const VULKAN_HPP_NOEXCEPT
2353  {
2354  std::size_t seed = 0;
2355  VULKAN_HPP_HASH_COMBINE( seed, specializationInfo.mapEntryCount );
2356  VULKAN_HPP_HASH_COMBINE( seed, specializationInfo.pMapEntries );
2357  VULKAN_HPP_HASH_COMBINE( seed, specializationInfo.dataSize );
2358  VULKAN_HPP_HASH_COMBINE( seed, specializationInfo.pData );
2359  return seed;
2360  }
2361  };
2362 
2363  template <>
2364  struct hash<VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo>
2365  {
2366  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineShaderStageCreateInfo const & pipelineShaderStageCreateInfo ) const VULKAN_HPP_NOEXCEPT
2367  {
2368  std::size_t seed = 0;
2369  VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageCreateInfo.sType );
2370  VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageCreateInfo.pNext );
2371  VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageCreateInfo.flags );
2372  VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageCreateInfo.stage );
2373  VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageCreateInfo.module );
2374  for ( const char * p = pipelineShaderStageCreateInfo.pName; *p != '\0'; ++p )
2375  {
2376  VULKAN_HPP_HASH_COMBINE( seed, *p );
2377  }
2378  VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageCreateInfo.pSpecializationInfo );
2379  return seed;
2380  }
2381  };
2382 
2383  template <>
2384  struct hash<VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo>
2385  {
2386  std::size_t operator()( VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo const & computePipelineCreateInfo ) const VULKAN_HPP_NOEXCEPT
2387  {
2388  std::size_t seed = 0;
2389  VULKAN_HPP_HASH_COMBINE( seed, computePipelineCreateInfo.sType );
2390  VULKAN_HPP_HASH_COMBINE( seed, computePipelineCreateInfo.pNext );
2391  VULKAN_HPP_HASH_COMBINE( seed, computePipelineCreateInfo.flags );
2392  VULKAN_HPP_HASH_COMBINE( seed, computePipelineCreateInfo.stage );
2393  VULKAN_HPP_HASH_COMBINE( seed, computePipelineCreateInfo.layout );
2394  VULKAN_HPP_HASH_COMBINE( seed, computePipelineCreateInfo.basePipelineHandle );
2395  VULKAN_HPP_HASH_COMBINE( seed, computePipelineCreateInfo.basePipelineIndex );
2396  return seed;
2397  }
2398  };
2399 
2400  template <>
2401  struct hash<VULKAN_HPP_NAMESPACE::ComputePipelineIndirectBufferInfoNV>
2402  {
2403  std::size_t operator()( VULKAN_HPP_NAMESPACE::ComputePipelineIndirectBufferInfoNV const & computePipelineIndirectBufferInfoNV ) const VULKAN_HPP_NOEXCEPT
2404  {
2405  std::size_t seed = 0;
2406  VULKAN_HPP_HASH_COMBINE( seed, computePipelineIndirectBufferInfoNV.sType );
2407  VULKAN_HPP_HASH_COMBINE( seed, computePipelineIndirectBufferInfoNV.pNext );
2408  VULKAN_HPP_HASH_COMBINE( seed, computePipelineIndirectBufferInfoNV.deviceAddress );
2409  VULKAN_HPP_HASH_COMBINE( seed, computePipelineIndirectBufferInfoNV.size );
2410  VULKAN_HPP_HASH_COMBINE( seed, computePipelineIndirectBufferInfoNV.pipelineDeviceAddressCaptureReplay );
2411  return seed;
2412  }
2413  };
2414 
2415  template <>
2416  struct hash<VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT>
2417  {
2418  std::size_t operator()( VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT const & conditionalRenderingBeginInfoEXT ) const VULKAN_HPP_NOEXCEPT
2419  {
2420  std::size_t seed = 0;
2421  VULKAN_HPP_HASH_COMBINE( seed, conditionalRenderingBeginInfoEXT.sType );
2422  VULKAN_HPP_HASH_COMBINE( seed, conditionalRenderingBeginInfoEXT.pNext );
2423  VULKAN_HPP_HASH_COMBINE( seed, conditionalRenderingBeginInfoEXT.buffer );
2424  VULKAN_HPP_HASH_COMBINE( seed, conditionalRenderingBeginInfoEXT.offset );
2425  VULKAN_HPP_HASH_COMBINE( seed, conditionalRenderingBeginInfoEXT.flags );
2426  return seed;
2427  }
2428  };
2429 
2430  template <>
2431  struct hash<VULKAN_HPP_NAMESPACE::ConformanceVersion>
2432  {
2433  std::size_t operator()( VULKAN_HPP_NAMESPACE::ConformanceVersion const & conformanceVersion ) const VULKAN_HPP_NOEXCEPT
2434  {
2435  std::size_t seed = 0;
2436  VULKAN_HPP_HASH_COMBINE( seed, conformanceVersion.major );
2437  VULKAN_HPP_HASH_COMBINE( seed, conformanceVersion.minor );
2438  VULKAN_HPP_HASH_COMBINE( seed, conformanceVersion.subminor );
2439  VULKAN_HPP_HASH_COMBINE( seed, conformanceVersion.patch );
2440  return seed;
2441  }
2442  };
2443 
2444  template <>
2445  struct hash<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR>
2446  {
2447  std::size_t operator()( VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR const & cooperativeMatrixPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
2448  {
2449  std::size_t seed = 0;
2450  VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesKHR.sType );
2451  VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesKHR.pNext );
2452  VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesKHR.MSize );
2453  VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesKHR.NSize );
2454  VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesKHR.KSize );
2455  VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesKHR.AType );
2456  VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesKHR.BType );
2457  VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesKHR.CType );
2458  VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesKHR.ResultType );
2459  VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesKHR.saturatingAccumulation );
2460  VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesKHR.scope );
2461  return seed;
2462  }
2463  };
2464 
2465  template <>
2466  struct hash<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV>
2467  {
2468  std::size_t operator()( VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV const & cooperativeMatrixPropertiesNV ) const VULKAN_HPP_NOEXCEPT
2469  {
2470  std::size_t seed = 0;
2471  VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesNV.sType );
2472  VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesNV.pNext );
2473  VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesNV.MSize );
2474  VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesNV.NSize );
2475  VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesNV.KSize );
2476  VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesNV.AType );
2477  VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesNV.BType );
2478  VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesNV.CType );
2479  VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesNV.DType );
2480  VULKAN_HPP_HASH_COMBINE( seed, cooperativeMatrixPropertiesNV.scope );
2481  return seed;
2482  }
2483  };
2484 
2485  template <>
2486  struct hash<VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR>
2487  {
2488  std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR const & copyAccelerationStructureInfoKHR ) const VULKAN_HPP_NOEXCEPT
2489  {
2490  std::size_t seed = 0;
2491  VULKAN_HPP_HASH_COMBINE( seed, copyAccelerationStructureInfoKHR.sType );
2492  VULKAN_HPP_HASH_COMBINE( seed, copyAccelerationStructureInfoKHR.pNext );
2493  VULKAN_HPP_HASH_COMBINE( seed, copyAccelerationStructureInfoKHR.src );
2494  VULKAN_HPP_HASH_COMBINE( seed, copyAccelerationStructureInfoKHR.dst );
2495  VULKAN_HPP_HASH_COMBINE( seed, copyAccelerationStructureInfoKHR.mode );
2496  return seed;
2497  }
2498  };
2499 
2500  template <>
2501  struct hash<VULKAN_HPP_NAMESPACE::CopyBufferInfo2>
2502  {
2503  std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyBufferInfo2 const & copyBufferInfo2 ) const VULKAN_HPP_NOEXCEPT
2504  {
2505  std::size_t seed = 0;
2506  VULKAN_HPP_HASH_COMBINE( seed, copyBufferInfo2.sType );
2507  VULKAN_HPP_HASH_COMBINE( seed, copyBufferInfo2.pNext );
2508  VULKAN_HPP_HASH_COMBINE( seed, copyBufferInfo2.srcBuffer );
2509  VULKAN_HPP_HASH_COMBINE( seed, copyBufferInfo2.dstBuffer );
2510  VULKAN_HPP_HASH_COMBINE( seed, copyBufferInfo2.regionCount );
2511  VULKAN_HPP_HASH_COMBINE( seed, copyBufferInfo2.pRegions );
2512  return seed;
2513  }
2514  };
2515 
2516  template <>
2517  struct hash<VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2>
2518  {
2519  std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 const & copyBufferToImageInfo2 ) const VULKAN_HPP_NOEXCEPT
2520  {
2521  std::size_t seed = 0;
2522  VULKAN_HPP_HASH_COMBINE( seed, copyBufferToImageInfo2.sType );
2523  VULKAN_HPP_HASH_COMBINE( seed, copyBufferToImageInfo2.pNext );
2524  VULKAN_HPP_HASH_COMBINE( seed, copyBufferToImageInfo2.srcBuffer );
2525  VULKAN_HPP_HASH_COMBINE( seed, copyBufferToImageInfo2.dstImage );
2526  VULKAN_HPP_HASH_COMBINE( seed, copyBufferToImageInfo2.dstImageLayout );
2527  VULKAN_HPP_HASH_COMBINE( seed, copyBufferToImageInfo2.regionCount );
2528  VULKAN_HPP_HASH_COMBINE( seed, copyBufferToImageInfo2.pRegions );
2529  return seed;
2530  }
2531  };
2532 
2533  template <>
2534  struct hash<VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM>
2535  {
2536  std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyCommandTransformInfoQCOM const & copyCommandTransformInfoQCOM ) const VULKAN_HPP_NOEXCEPT
2537  {
2538  std::size_t seed = 0;
2539  VULKAN_HPP_HASH_COMBINE( seed, copyCommandTransformInfoQCOM.sType );
2540  VULKAN_HPP_HASH_COMBINE( seed, copyCommandTransformInfoQCOM.pNext );
2541  VULKAN_HPP_HASH_COMBINE( seed, copyCommandTransformInfoQCOM.transform );
2542  return seed;
2543  }
2544  };
2545 
2546  template <>
2547  struct hash<VULKAN_HPP_NAMESPACE::CopyDescriptorSet>
2548  {
2549  std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyDescriptorSet const & copyDescriptorSet ) const VULKAN_HPP_NOEXCEPT
2550  {
2551  std::size_t seed = 0;
2552  VULKAN_HPP_HASH_COMBINE( seed, copyDescriptorSet.sType );
2553  VULKAN_HPP_HASH_COMBINE( seed, copyDescriptorSet.pNext );
2554  VULKAN_HPP_HASH_COMBINE( seed, copyDescriptorSet.srcSet );
2555  VULKAN_HPP_HASH_COMBINE( seed, copyDescriptorSet.srcBinding );
2556  VULKAN_HPP_HASH_COMBINE( seed, copyDescriptorSet.srcArrayElement );
2557  VULKAN_HPP_HASH_COMBINE( seed, copyDescriptorSet.dstSet );
2558  VULKAN_HPP_HASH_COMBINE( seed, copyDescriptorSet.dstBinding );
2559  VULKAN_HPP_HASH_COMBINE( seed, copyDescriptorSet.dstArrayElement );
2560  VULKAN_HPP_HASH_COMBINE( seed, copyDescriptorSet.descriptorCount );
2561  return seed;
2562  }
2563  };
2564 
2565  template <>
2566  struct hash<VULKAN_HPP_NAMESPACE::ImageCopy2>
2567  {
2568  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageCopy2 const & imageCopy2 ) const VULKAN_HPP_NOEXCEPT
2569  {
2570  std::size_t seed = 0;
2571  VULKAN_HPP_HASH_COMBINE( seed, imageCopy2.sType );
2572  VULKAN_HPP_HASH_COMBINE( seed, imageCopy2.pNext );
2573  VULKAN_HPP_HASH_COMBINE( seed, imageCopy2.srcSubresource );
2574  VULKAN_HPP_HASH_COMBINE( seed, imageCopy2.srcOffset );
2575  VULKAN_HPP_HASH_COMBINE( seed, imageCopy2.dstSubresource );
2576  VULKAN_HPP_HASH_COMBINE( seed, imageCopy2.dstOffset );
2577  VULKAN_HPP_HASH_COMBINE( seed, imageCopy2.extent );
2578  return seed;
2579  }
2580  };
2581 
2582  template <>
2583  struct hash<VULKAN_HPP_NAMESPACE::CopyImageInfo2>
2584  {
2585  std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyImageInfo2 const & copyImageInfo2 ) const VULKAN_HPP_NOEXCEPT
2586  {
2587  std::size_t seed = 0;
2588  VULKAN_HPP_HASH_COMBINE( seed, copyImageInfo2.sType );
2589  VULKAN_HPP_HASH_COMBINE( seed, copyImageInfo2.pNext );
2590  VULKAN_HPP_HASH_COMBINE( seed, copyImageInfo2.srcImage );
2591  VULKAN_HPP_HASH_COMBINE( seed, copyImageInfo2.srcImageLayout );
2592  VULKAN_HPP_HASH_COMBINE( seed, copyImageInfo2.dstImage );
2593  VULKAN_HPP_HASH_COMBINE( seed, copyImageInfo2.dstImageLayout );
2594  VULKAN_HPP_HASH_COMBINE( seed, copyImageInfo2.regionCount );
2595  VULKAN_HPP_HASH_COMBINE( seed, copyImageInfo2.pRegions );
2596  return seed;
2597  }
2598  };
2599 
2600  template <>
2601  struct hash<VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2>
2602  {
2603  std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 const & copyImageToBufferInfo2 ) const VULKAN_HPP_NOEXCEPT
2604  {
2605  std::size_t seed = 0;
2606  VULKAN_HPP_HASH_COMBINE( seed, copyImageToBufferInfo2.sType );
2607  VULKAN_HPP_HASH_COMBINE( seed, copyImageToBufferInfo2.pNext );
2608  VULKAN_HPP_HASH_COMBINE( seed, copyImageToBufferInfo2.srcImage );
2609  VULKAN_HPP_HASH_COMBINE( seed, copyImageToBufferInfo2.srcImageLayout );
2610  VULKAN_HPP_HASH_COMBINE( seed, copyImageToBufferInfo2.dstBuffer );
2611  VULKAN_HPP_HASH_COMBINE( seed, copyImageToBufferInfo2.regionCount );
2612  VULKAN_HPP_HASH_COMBINE( seed, copyImageToBufferInfo2.pRegions );
2613  return seed;
2614  }
2615  };
2616 
2617  template <>
2618  struct hash<VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT>
2619  {
2620  std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyImageToImageInfoEXT const & copyImageToImageInfoEXT ) const VULKAN_HPP_NOEXCEPT
2621  {
2622  std::size_t seed = 0;
2623  VULKAN_HPP_HASH_COMBINE( seed, copyImageToImageInfoEXT.sType );
2624  VULKAN_HPP_HASH_COMBINE( seed, copyImageToImageInfoEXT.pNext );
2625  VULKAN_HPP_HASH_COMBINE( seed, copyImageToImageInfoEXT.flags );
2626  VULKAN_HPP_HASH_COMBINE( seed, copyImageToImageInfoEXT.srcImage );
2627  VULKAN_HPP_HASH_COMBINE( seed, copyImageToImageInfoEXT.srcImageLayout );
2628  VULKAN_HPP_HASH_COMBINE( seed, copyImageToImageInfoEXT.dstImage );
2629  VULKAN_HPP_HASH_COMBINE( seed, copyImageToImageInfoEXT.dstImageLayout );
2630  VULKAN_HPP_HASH_COMBINE( seed, copyImageToImageInfoEXT.regionCount );
2631  VULKAN_HPP_HASH_COMBINE( seed, copyImageToImageInfoEXT.pRegions );
2632  return seed;
2633  }
2634  };
2635 
2636  template <>
2637  struct hash<VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT>
2638  {
2639  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageToMemoryCopyEXT const & imageToMemoryCopyEXT ) const VULKAN_HPP_NOEXCEPT
2640  {
2641  std::size_t seed = 0;
2642  VULKAN_HPP_HASH_COMBINE( seed, imageToMemoryCopyEXT.sType );
2643  VULKAN_HPP_HASH_COMBINE( seed, imageToMemoryCopyEXT.pNext );
2644  VULKAN_HPP_HASH_COMBINE( seed, imageToMemoryCopyEXT.pHostPointer );
2645  VULKAN_HPP_HASH_COMBINE( seed, imageToMemoryCopyEXT.memoryRowLength );
2646  VULKAN_HPP_HASH_COMBINE( seed, imageToMemoryCopyEXT.memoryImageHeight );
2647  VULKAN_HPP_HASH_COMBINE( seed, imageToMemoryCopyEXT.imageSubresource );
2648  VULKAN_HPP_HASH_COMBINE( seed, imageToMemoryCopyEXT.imageOffset );
2649  VULKAN_HPP_HASH_COMBINE( seed, imageToMemoryCopyEXT.imageExtent );
2650  return seed;
2651  }
2652  };
2653 
2654  template <>
2655  struct hash<VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT>
2656  {
2657  std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfoEXT const & copyImageToMemoryInfoEXT ) const VULKAN_HPP_NOEXCEPT
2658  {
2659  std::size_t seed = 0;
2660  VULKAN_HPP_HASH_COMBINE( seed, copyImageToMemoryInfoEXT.sType );
2661  VULKAN_HPP_HASH_COMBINE( seed, copyImageToMemoryInfoEXT.pNext );
2662  VULKAN_HPP_HASH_COMBINE( seed, copyImageToMemoryInfoEXT.flags );
2663  VULKAN_HPP_HASH_COMBINE( seed, copyImageToMemoryInfoEXT.srcImage );
2664  VULKAN_HPP_HASH_COMBINE( seed, copyImageToMemoryInfoEXT.srcImageLayout );
2665  VULKAN_HPP_HASH_COMBINE( seed, copyImageToMemoryInfoEXT.regionCount );
2666  VULKAN_HPP_HASH_COMBINE( seed, copyImageToMemoryInfoEXT.pRegions );
2667  return seed;
2668  }
2669  };
2670 
2671  template <>
2672  struct hash<VULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandNV>
2673  {
2674  std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyMemoryIndirectCommandNV const & copyMemoryIndirectCommandNV ) const VULKAN_HPP_NOEXCEPT
2675  {
2676  std::size_t seed = 0;
2677  VULKAN_HPP_HASH_COMBINE( seed, copyMemoryIndirectCommandNV.srcAddress );
2678  VULKAN_HPP_HASH_COMBINE( seed, copyMemoryIndirectCommandNV.dstAddress );
2679  VULKAN_HPP_HASH_COMBINE( seed, copyMemoryIndirectCommandNV.size );
2680  return seed;
2681  }
2682  };
2683 
2684  template <>
2685  struct hash<VULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandNV>
2686  {
2687  std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyMemoryToImageIndirectCommandNV const & copyMemoryToImageIndirectCommandNV ) const VULKAN_HPP_NOEXCEPT
2688  {
2689  std::size_t seed = 0;
2690  VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectCommandNV.srcAddress );
2691  VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectCommandNV.bufferRowLength );
2692  VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectCommandNV.bufferImageHeight );
2693  VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectCommandNV.imageSubresource );
2694  VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectCommandNV.imageOffset );
2695  VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageIndirectCommandNV.imageExtent );
2696  return seed;
2697  }
2698  };
2699 
2700  template <>
2701  struct hash<VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT>
2702  {
2703  std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryToImageCopyEXT const & memoryToImageCopyEXT ) const VULKAN_HPP_NOEXCEPT
2704  {
2705  std::size_t seed = 0;
2706  VULKAN_HPP_HASH_COMBINE( seed, memoryToImageCopyEXT.sType );
2707  VULKAN_HPP_HASH_COMBINE( seed, memoryToImageCopyEXT.pNext );
2708  VULKAN_HPP_HASH_COMBINE( seed, memoryToImageCopyEXT.pHostPointer );
2709  VULKAN_HPP_HASH_COMBINE( seed, memoryToImageCopyEXT.memoryRowLength );
2710  VULKAN_HPP_HASH_COMBINE( seed, memoryToImageCopyEXT.memoryImageHeight );
2711  VULKAN_HPP_HASH_COMBINE( seed, memoryToImageCopyEXT.imageSubresource );
2712  VULKAN_HPP_HASH_COMBINE( seed, memoryToImageCopyEXT.imageOffset );
2713  VULKAN_HPP_HASH_COMBINE( seed, memoryToImageCopyEXT.imageExtent );
2714  return seed;
2715  }
2716  };
2717 
2718  template <>
2719  struct hash<VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT>
2720  {
2721  std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfoEXT const & copyMemoryToImageInfoEXT ) const VULKAN_HPP_NOEXCEPT
2722  {
2723  std::size_t seed = 0;
2724  VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageInfoEXT.sType );
2725  VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageInfoEXT.pNext );
2726  VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageInfoEXT.flags );
2727  VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageInfoEXT.dstImage );
2728  VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageInfoEXT.dstImageLayout );
2729  VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageInfoEXT.regionCount );
2730  VULKAN_HPP_HASH_COMBINE( seed, copyMemoryToImageInfoEXT.pRegions );
2731  return seed;
2732  }
2733  };
2734 
2735  template <>
2736  struct hash<VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT>
2737  {
2738  std::size_t operator()( VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT const & copyMicromapInfoEXT ) const VULKAN_HPP_NOEXCEPT
2739  {
2740  std::size_t seed = 0;
2741  VULKAN_HPP_HASH_COMBINE( seed, copyMicromapInfoEXT.sType );
2742  VULKAN_HPP_HASH_COMBINE( seed, copyMicromapInfoEXT.pNext );
2743  VULKAN_HPP_HASH_COMBINE( seed, copyMicromapInfoEXT.src );
2744  VULKAN_HPP_HASH_COMBINE( seed, copyMicromapInfoEXT.dst );
2745  VULKAN_HPP_HASH_COMBINE( seed, copyMicromapInfoEXT.mode );
2746  return seed;
2747  }
2748  };
2749 
2750  template <>
2751  struct hash<VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX>
2752  {
2753  std::size_t operator()( VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX const & cuFunctionCreateInfoNVX ) const VULKAN_HPP_NOEXCEPT
2754  {
2755  std::size_t seed = 0;
2756  VULKAN_HPP_HASH_COMBINE( seed, cuFunctionCreateInfoNVX.sType );
2757  VULKAN_HPP_HASH_COMBINE( seed, cuFunctionCreateInfoNVX.pNext );
2758  VULKAN_HPP_HASH_COMBINE( seed, cuFunctionCreateInfoNVX.module );
2759  for ( const char * p = cuFunctionCreateInfoNVX.pName; *p != '\0'; ++p )
2760  {
2761  VULKAN_HPP_HASH_COMBINE( seed, *p );
2762  }
2763  return seed;
2764  }
2765  };
2766 
2767  template <>
2768  struct hash<VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX>
2769  {
2770  std::size_t operator()( VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX const & cuLaunchInfoNVX ) const VULKAN_HPP_NOEXCEPT
2771  {
2772  std::size_t seed = 0;
2773  VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.sType );
2774  VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.pNext );
2775  VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.function );
2776  VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.gridDimX );
2777  VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.gridDimY );
2778  VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.gridDimZ );
2779  VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.blockDimX );
2780  VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.blockDimY );
2781  VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.blockDimZ );
2782  VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.sharedMemBytes );
2783  VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.paramCount );
2784  VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.pParams );
2785  VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.extraCount );
2786  VULKAN_HPP_HASH_COMBINE( seed, cuLaunchInfoNVX.pExtras );
2787  return seed;
2788  }
2789  };
2790 
2791  template <>
2792  struct hash<VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX>
2793  {
2794  std::size_t operator()( VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX const & cuModuleCreateInfoNVX ) const VULKAN_HPP_NOEXCEPT
2795  {
2796  std::size_t seed = 0;
2797  VULKAN_HPP_HASH_COMBINE( seed, cuModuleCreateInfoNVX.sType );
2798  VULKAN_HPP_HASH_COMBINE( seed, cuModuleCreateInfoNVX.pNext );
2799  VULKAN_HPP_HASH_COMBINE( seed, cuModuleCreateInfoNVX.dataSize );
2800  VULKAN_HPP_HASH_COMBINE( seed, cuModuleCreateInfoNVX.pData );
2801  return seed;
2802  }
2803  };
2804 
2805 # if defined( VK_ENABLE_BETA_EXTENSIONS )
2806  template <>
2807  struct hash<VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV>
2808  {
2809  std::size_t operator()( VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV const & cudaFunctionCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
2810  {
2811  std::size_t seed = 0;
2812  VULKAN_HPP_HASH_COMBINE( seed, cudaFunctionCreateInfoNV.sType );
2813  VULKAN_HPP_HASH_COMBINE( seed, cudaFunctionCreateInfoNV.pNext );
2814  VULKAN_HPP_HASH_COMBINE( seed, cudaFunctionCreateInfoNV.module );
2815  for ( const char * p = cudaFunctionCreateInfoNV.pName; *p != '\0'; ++p )
2816  {
2817  VULKAN_HPP_HASH_COMBINE( seed, *p );
2818  }
2819  return seed;
2820  }
2821  };
2822 # endif /*VK_ENABLE_BETA_EXTENSIONS*/
2823 
2824 # if defined( VK_ENABLE_BETA_EXTENSIONS )
2825  template <>
2826  struct hash<VULKAN_HPP_NAMESPACE::CudaLaunchInfoNV>
2827  {
2828  std::size_t operator()( VULKAN_HPP_NAMESPACE::CudaLaunchInfoNV const & cudaLaunchInfoNV ) const VULKAN_HPP_NOEXCEPT
2829  {
2830  std::size_t seed = 0;
2831  VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.sType );
2832  VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.pNext );
2833  VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.function );
2834  VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.gridDimX );
2835  VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.gridDimY );
2836  VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.gridDimZ );
2837  VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.blockDimX );
2838  VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.blockDimY );
2839  VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.blockDimZ );
2840  VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.sharedMemBytes );
2841  VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.paramCount );
2842  VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.pParams );
2843  VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.extraCount );
2844  VULKAN_HPP_HASH_COMBINE( seed, cudaLaunchInfoNV.pExtras );
2845  return seed;
2846  }
2847  };
2848 # endif /*VK_ENABLE_BETA_EXTENSIONS*/
2849 
2850 # if defined( VK_ENABLE_BETA_EXTENSIONS )
2851  template <>
2852  struct hash<VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV>
2853  {
2854  std::size_t operator()( VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV const & cudaModuleCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
2855  {
2856  std::size_t seed = 0;
2857  VULKAN_HPP_HASH_COMBINE( seed, cudaModuleCreateInfoNV.sType );
2858  VULKAN_HPP_HASH_COMBINE( seed, cudaModuleCreateInfoNV.pNext );
2859  VULKAN_HPP_HASH_COMBINE( seed, cudaModuleCreateInfoNV.dataSize );
2860  VULKAN_HPP_HASH_COMBINE( seed, cudaModuleCreateInfoNV.pData );
2861  return seed;
2862  }
2863  };
2864 # endif /*VK_ENABLE_BETA_EXTENSIONS*/
2865 
2866 # if defined( VK_USE_PLATFORM_WIN32_KHR )
2867  template <>
2868  struct hash<VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR>
2869  {
2870  std::size_t operator()( VULKAN_HPP_NAMESPACE::D3D12FenceSubmitInfoKHR const & d3D12FenceSubmitInfoKHR ) const VULKAN_HPP_NOEXCEPT
2871  {
2872  std::size_t seed = 0;
2873  VULKAN_HPP_HASH_COMBINE( seed, d3D12FenceSubmitInfoKHR.sType );
2874  VULKAN_HPP_HASH_COMBINE( seed, d3D12FenceSubmitInfoKHR.pNext );
2875  VULKAN_HPP_HASH_COMBINE( seed, d3D12FenceSubmitInfoKHR.waitSemaphoreValuesCount );
2876  VULKAN_HPP_HASH_COMBINE( seed, d3D12FenceSubmitInfoKHR.pWaitSemaphoreValues );
2877  VULKAN_HPP_HASH_COMBINE( seed, d3D12FenceSubmitInfoKHR.signalSemaphoreValuesCount );
2878  VULKAN_HPP_HASH_COMBINE( seed, d3D12FenceSubmitInfoKHR.pSignalSemaphoreValues );
2879  return seed;
2880  }
2881  };
2882 # endif /*VK_USE_PLATFORM_WIN32_KHR*/
2883 
2884  template <>
2885  struct hash<VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT>
2886  {
2887  std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT const & debugMarkerMarkerInfoEXT ) const VULKAN_HPP_NOEXCEPT
2888  {
2889  std::size_t seed = 0;
2890  VULKAN_HPP_HASH_COMBINE( seed, debugMarkerMarkerInfoEXT.sType );
2891  VULKAN_HPP_HASH_COMBINE( seed, debugMarkerMarkerInfoEXT.pNext );
2892  for ( const char * p = debugMarkerMarkerInfoEXT.pMarkerName; *p != '\0'; ++p )
2893  {
2894  VULKAN_HPP_HASH_COMBINE( seed, *p );
2895  }
2896  for ( size_t i = 0; i < 4; ++i )
2897  {
2898  VULKAN_HPP_HASH_COMBINE( seed, debugMarkerMarkerInfoEXT.color[i] );
2899  }
2900  return seed;
2901  }
2902  };
2903 
2904  template <>
2905  struct hash<VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT>
2906  {
2907  std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT const & debugMarkerObjectNameInfoEXT ) const VULKAN_HPP_NOEXCEPT
2908  {
2909  std::size_t seed = 0;
2910  VULKAN_HPP_HASH_COMBINE( seed, debugMarkerObjectNameInfoEXT.sType );
2911  VULKAN_HPP_HASH_COMBINE( seed, debugMarkerObjectNameInfoEXT.pNext );
2912  VULKAN_HPP_HASH_COMBINE( seed, debugMarkerObjectNameInfoEXT.objectType );
2913  VULKAN_HPP_HASH_COMBINE( seed, debugMarkerObjectNameInfoEXT.object );
2914  for ( const char * p = debugMarkerObjectNameInfoEXT.pObjectName; *p != '\0'; ++p )
2915  {
2916  VULKAN_HPP_HASH_COMBINE( seed, *p );
2917  }
2918  return seed;
2919  }
2920  };
2921 
2922  template <>
2923  struct hash<VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT>
2924  {
2925  std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT const & debugMarkerObjectTagInfoEXT ) const VULKAN_HPP_NOEXCEPT
2926  {
2927  std::size_t seed = 0;
2928  VULKAN_HPP_HASH_COMBINE( seed, debugMarkerObjectTagInfoEXT.sType );
2929  VULKAN_HPP_HASH_COMBINE( seed, debugMarkerObjectTagInfoEXT.pNext );
2930  VULKAN_HPP_HASH_COMBINE( seed, debugMarkerObjectTagInfoEXT.objectType );
2931  VULKAN_HPP_HASH_COMBINE( seed, debugMarkerObjectTagInfoEXT.object );
2932  VULKAN_HPP_HASH_COMBINE( seed, debugMarkerObjectTagInfoEXT.tagName );
2933  VULKAN_HPP_HASH_COMBINE( seed, debugMarkerObjectTagInfoEXT.tagSize );
2934  VULKAN_HPP_HASH_COMBINE( seed, debugMarkerObjectTagInfoEXT.pTag );
2935  return seed;
2936  }
2937  };
2938 
2939  template <>
2940  struct hash<VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT>
2941  {
2942  std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT const & debugReportCallbackCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
2943  {
2944  std::size_t seed = 0;
2945  VULKAN_HPP_HASH_COMBINE( seed, debugReportCallbackCreateInfoEXT.sType );
2946  VULKAN_HPP_HASH_COMBINE( seed, debugReportCallbackCreateInfoEXT.pNext );
2947  VULKAN_HPP_HASH_COMBINE( seed, debugReportCallbackCreateInfoEXT.flags );
2948  VULKAN_HPP_HASH_COMBINE( seed, debugReportCallbackCreateInfoEXT.pfnCallback );
2949  VULKAN_HPP_HASH_COMBINE( seed, debugReportCallbackCreateInfoEXT.pUserData );
2950  return seed;
2951  }
2952  };
2953 
2954  template <>
2955  struct hash<VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT>
2956  {
2957  std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT const & debugUtilsLabelEXT ) const VULKAN_HPP_NOEXCEPT
2958  {
2959  std::size_t seed = 0;
2960  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsLabelEXT.sType );
2961  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsLabelEXT.pNext );
2962  for ( const char * p = debugUtilsLabelEXT.pLabelName; *p != '\0'; ++p )
2963  {
2964  VULKAN_HPP_HASH_COMBINE( seed, *p );
2965  }
2966  for ( size_t i = 0; i < 4; ++i )
2967  {
2968  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsLabelEXT.color[i] );
2969  }
2970  return seed;
2971  }
2972  };
2973 
2974  template <>
2975  struct hash<VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT>
2976  {
2977  std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT const & debugUtilsObjectNameInfoEXT ) const VULKAN_HPP_NOEXCEPT
2978  {
2979  std::size_t seed = 0;
2980  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsObjectNameInfoEXT.sType );
2981  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsObjectNameInfoEXT.pNext );
2982  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsObjectNameInfoEXT.objectType );
2983  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsObjectNameInfoEXT.objectHandle );
2984  for ( const char * p = debugUtilsObjectNameInfoEXT.pObjectName; *p != '\0'; ++p )
2985  {
2986  VULKAN_HPP_HASH_COMBINE( seed, *p );
2987  }
2988  return seed;
2989  }
2990  };
2991 
2992  template <>
2993  struct hash<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT>
2994  {
2995  std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT const & debugUtilsMessengerCallbackDataEXT ) const VULKAN_HPP_NOEXCEPT
2996  {
2997  std::size_t seed = 0;
2998  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCallbackDataEXT.sType );
2999  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCallbackDataEXT.pNext );
3000  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCallbackDataEXT.flags );
3001  for ( const char * p = debugUtilsMessengerCallbackDataEXT.pMessageIdName; *p != '\0'; ++p )
3002  {
3003  VULKAN_HPP_HASH_COMBINE( seed, *p );
3004  }
3005  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCallbackDataEXT.messageIdNumber );
3006  for ( const char * p = debugUtilsMessengerCallbackDataEXT.pMessage; *p != '\0'; ++p )
3007  {
3008  VULKAN_HPP_HASH_COMBINE( seed, *p );
3009  }
3010  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCallbackDataEXT.queueLabelCount );
3011  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCallbackDataEXT.pQueueLabels );
3012  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCallbackDataEXT.cmdBufLabelCount );
3013  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCallbackDataEXT.pCmdBufLabels );
3014  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCallbackDataEXT.objectCount );
3015  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCallbackDataEXT.pObjects );
3016  return seed;
3017  }
3018  };
3019 
3020  template <>
3021  struct hash<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT>
3022  {
3023  std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT const & debugUtilsMessengerCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
3024  {
3025  std::size_t seed = 0;
3026  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCreateInfoEXT.sType );
3027  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCreateInfoEXT.pNext );
3028  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCreateInfoEXT.flags );
3029  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCreateInfoEXT.messageSeverity );
3030  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCreateInfoEXT.messageType );
3031  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCreateInfoEXT.pfnUserCallback );
3032  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsMessengerCreateInfoEXT.pUserData );
3033  return seed;
3034  }
3035  };
3036 
3037  template <>
3038  struct hash<VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT>
3039  {
3040  std::size_t operator()( VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT const & debugUtilsObjectTagInfoEXT ) const VULKAN_HPP_NOEXCEPT
3041  {
3042  std::size_t seed = 0;
3043  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsObjectTagInfoEXT.sType );
3044  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsObjectTagInfoEXT.pNext );
3045  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsObjectTagInfoEXT.objectType );
3046  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsObjectTagInfoEXT.objectHandle );
3047  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsObjectTagInfoEXT.tagName );
3048  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsObjectTagInfoEXT.tagSize );
3049  VULKAN_HPP_HASH_COMBINE( seed, debugUtilsObjectTagInfoEXT.pTag );
3050  return seed;
3051  }
3052  };
3053 
3054  template <>
3055  struct hash<VULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV>
3056  {
3057  std::size_t operator()( VULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV const & decompressMemoryRegionNV ) const VULKAN_HPP_NOEXCEPT
3058  {
3059  std::size_t seed = 0;
3060  VULKAN_HPP_HASH_COMBINE( seed, decompressMemoryRegionNV.srcAddress );
3061  VULKAN_HPP_HASH_COMBINE( seed, decompressMemoryRegionNV.dstAddress );
3062  VULKAN_HPP_HASH_COMBINE( seed, decompressMemoryRegionNV.compressedSize );
3063  VULKAN_HPP_HASH_COMBINE( seed, decompressMemoryRegionNV.decompressedSize );
3064  VULKAN_HPP_HASH_COMBINE( seed, decompressMemoryRegionNV.decompressionMethod );
3065  return seed;
3066  }
3067  };
3068 
3069  template <>
3070  struct hash<VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV>
3071  {
3072  std::size_t
3073  operator()( VULKAN_HPP_NAMESPACE::DedicatedAllocationBufferCreateInfoNV const & dedicatedAllocationBufferCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
3074  {
3075  std::size_t seed = 0;
3076  VULKAN_HPP_HASH_COMBINE( seed, dedicatedAllocationBufferCreateInfoNV.sType );
3077  VULKAN_HPP_HASH_COMBINE( seed, dedicatedAllocationBufferCreateInfoNV.pNext );
3078  VULKAN_HPP_HASH_COMBINE( seed, dedicatedAllocationBufferCreateInfoNV.dedicatedAllocation );
3079  return seed;
3080  }
3081  };
3082 
3083  template <>
3084  struct hash<VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV>
3085  {
3086  std::size_t operator()( VULKAN_HPP_NAMESPACE::DedicatedAllocationImageCreateInfoNV const & dedicatedAllocationImageCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
3087  {
3088  std::size_t seed = 0;
3089  VULKAN_HPP_HASH_COMBINE( seed, dedicatedAllocationImageCreateInfoNV.sType );
3090  VULKAN_HPP_HASH_COMBINE( seed, dedicatedAllocationImageCreateInfoNV.pNext );
3091  VULKAN_HPP_HASH_COMBINE( seed, dedicatedAllocationImageCreateInfoNV.dedicatedAllocation );
3092  return seed;
3093  }
3094  };
3095 
3096  template <>
3097  struct hash<VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV>
3098  {
3099  std::size_t
3100  operator()( VULKAN_HPP_NAMESPACE::DedicatedAllocationMemoryAllocateInfoNV const & dedicatedAllocationMemoryAllocateInfoNV ) const VULKAN_HPP_NOEXCEPT
3101  {
3102  std::size_t seed = 0;
3103  VULKAN_HPP_HASH_COMBINE( seed, dedicatedAllocationMemoryAllocateInfoNV.sType );
3104  VULKAN_HPP_HASH_COMBINE( seed, dedicatedAllocationMemoryAllocateInfoNV.pNext );
3105  VULKAN_HPP_HASH_COMBINE( seed, dedicatedAllocationMemoryAllocateInfoNV.image );
3106  VULKAN_HPP_HASH_COMBINE( seed, dedicatedAllocationMemoryAllocateInfoNV.buffer );
3107  return seed;
3108  }
3109  };
3110 
3111  template <>
3112  struct hash<VULKAN_HPP_NAMESPACE::MemoryBarrier2>
3113  {
3114  std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryBarrier2 const & memoryBarrier2 ) const VULKAN_HPP_NOEXCEPT
3115  {
3116  std::size_t seed = 0;
3117  VULKAN_HPP_HASH_COMBINE( seed, memoryBarrier2.sType );
3118  VULKAN_HPP_HASH_COMBINE( seed, memoryBarrier2.pNext );
3119  VULKAN_HPP_HASH_COMBINE( seed, memoryBarrier2.srcStageMask );
3120  VULKAN_HPP_HASH_COMBINE( seed, memoryBarrier2.srcAccessMask );
3121  VULKAN_HPP_HASH_COMBINE( seed, memoryBarrier2.dstStageMask );
3122  VULKAN_HPP_HASH_COMBINE( seed, memoryBarrier2.dstAccessMask );
3123  return seed;
3124  }
3125  };
3126 
3127  template <>
3128  struct hash<VULKAN_HPP_NAMESPACE::ImageSubresourceRange>
3129  {
3130  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageSubresourceRange const & imageSubresourceRange ) const VULKAN_HPP_NOEXCEPT
3131  {
3132  std::size_t seed = 0;
3133  VULKAN_HPP_HASH_COMBINE( seed, imageSubresourceRange.aspectMask );
3134  VULKAN_HPP_HASH_COMBINE( seed, imageSubresourceRange.baseMipLevel );
3135  VULKAN_HPP_HASH_COMBINE( seed, imageSubresourceRange.levelCount );
3136  VULKAN_HPP_HASH_COMBINE( seed, imageSubresourceRange.baseArrayLayer );
3137  VULKAN_HPP_HASH_COMBINE( seed, imageSubresourceRange.layerCount );
3138  return seed;
3139  }
3140  };
3141 
3142  template <>
3143  struct hash<VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2>
3144  {
3145  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageMemoryBarrier2 const & imageMemoryBarrier2 ) const VULKAN_HPP_NOEXCEPT
3146  {
3147  std::size_t seed = 0;
3148  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.sType );
3149  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.pNext );
3150  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.srcStageMask );
3151  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.srcAccessMask );
3152  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.dstStageMask );
3153  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.dstAccessMask );
3154  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.oldLayout );
3155  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.newLayout );
3156  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.srcQueueFamilyIndex );
3157  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.dstQueueFamilyIndex );
3158  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.image );
3159  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier2.subresourceRange );
3160  return seed;
3161  }
3162  };
3163 
3164  template <>
3165  struct hash<VULKAN_HPP_NAMESPACE::DependencyInfo>
3166  {
3167  std::size_t operator()( VULKAN_HPP_NAMESPACE::DependencyInfo const & dependencyInfo ) const VULKAN_HPP_NOEXCEPT
3168  {
3169  std::size_t seed = 0;
3170  VULKAN_HPP_HASH_COMBINE( seed, dependencyInfo.sType );
3171  VULKAN_HPP_HASH_COMBINE( seed, dependencyInfo.pNext );
3172  VULKAN_HPP_HASH_COMBINE( seed, dependencyInfo.dependencyFlags );
3173  VULKAN_HPP_HASH_COMBINE( seed, dependencyInfo.memoryBarrierCount );
3174  VULKAN_HPP_HASH_COMBINE( seed, dependencyInfo.pMemoryBarriers );
3175  VULKAN_HPP_HASH_COMBINE( seed, dependencyInfo.bufferMemoryBarrierCount );
3176  VULKAN_HPP_HASH_COMBINE( seed, dependencyInfo.pBufferMemoryBarriers );
3177  VULKAN_HPP_HASH_COMBINE( seed, dependencyInfo.imageMemoryBarrierCount );
3178  VULKAN_HPP_HASH_COMBINE( seed, dependencyInfo.pImageMemoryBarriers );
3179  return seed;
3180  }
3181  };
3182 
3183  template <>
3184  struct hash<VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT>
3185  {
3186  std::size_t operator()( VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT const & depthBiasInfoEXT ) const VULKAN_HPP_NOEXCEPT
3187  {
3188  std::size_t seed = 0;
3189  VULKAN_HPP_HASH_COMBINE( seed, depthBiasInfoEXT.sType );
3190  VULKAN_HPP_HASH_COMBINE( seed, depthBiasInfoEXT.pNext );
3191  VULKAN_HPP_HASH_COMBINE( seed, depthBiasInfoEXT.depthBiasConstantFactor );
3192  VULKAN_HPP_HASH_COMBINE( seed, depthBiasInfoEXT.depthBiasClamp );
3193  VULKAN_HPP_HASH_COMBINE( seed, depthBiasInfoEXT.depthBiasSlopeFactor );
3194  return seed;
3195  }
3196  };
3197 
3198  template <>
3199  struct hash<VULKAN_HPP_NAMESPACE::DepthBiasRepresentationInfoEXT>
3200  {
3201  std::size_t operator()( VULKAN_HPP_NAMESPACE::DepthBiasRepresentationInfoEXT const & depthBiasRepresentationInfoEXT ) const VULKAN_HPP_NOEXCEPT
3202  {
3203  std::size_t seed = 0;
3204  VULKAN_HPP_HASH_COMBINE( seed, depthBiasRepresentationInfoEXT.sType );
3205  VULKAN_HPP_HASH_COMBINE( seed, depthBiasRepresentationInfoEXT.pNext );
3206  VULKAN_HPP_HASH_COMBINE( seed, depthBiasRepresentationInfoEXT.depthBiasRepresentation );
3207  VULKAN_HPP_HASH_COMBINE( seed, depthBiasRepresentationInfoEXT.depthBiasExact );
3208  return seed;
3209  }
3210  };
3211 
3212  template <>
3213  struct hash<VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT>
3214  {
3215  std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorAddressInfoEXT const & descriptorAddressInfoEXT ) const VULKAN_HPP_NOEXCEPT
3216  {
3217  std::size_t seed = 0;
3218  VULKAN_HPP_HASH_COMBINE( seed, descriptorAddressInfoEXT.sType );
3219  VULKAN_HPP_HASH_COMBINE( seed, descriptorAddressInfoEXT.pNext );
3220  VULKAN_HPP_HASH_COMBINE( seed, descriptorAddressInfoEXT.address );
3221  VULKAN_HPP_HASH_COMBINE( seed, descriptorAddressInfoEXT.range );
3222  VULKAN_HPP_HASH_COMBINE( seed, descriptorAddressInfoEXT.format );
3223  return seed;
3224  }
3225  };
3226 
3227  template <>
3228  struct hash<VULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT>
3229  {
3230  std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT const & descriptorBufferBindingInfoEXT ) const VULKAN_HPP_NOEXCEPT
3231  {
3232  std::size_t seed = 0;
3233  VULKAN_HPP_HASH_COMBINE( seed, descriptorBufferBindingInfoEXT.sType );
3234  VULKAN_HPP_HASH_COMBINE( seed, descriptorBufferBindingInfoEXT.pNext );
3235  VULKAN_HPP_HASH_COMBINE( seed, descriptorBufferBindingInfoEXT.address );
3236  VULKAN_HPP_HASH_COMBINE( seed, descriptorBufferBindingInfoEXT.usage );
3237  return seed;
3238  }
3239  };
3240 
3241  template <>
3242  struct hash<VULKAN_HPP_NAMESPACE::DescriptorBufferBindingPushDescriptorBufferHandleEXT>
3243  {
3244  std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorBufferBindingPushDescriptorBufferHandleEXT const &
3245  descriptorBufferBindingPushDescriptorBufferHandleEXT ) const VULKAN_HPP_NOEXCEPT
3246  {
3247  std::size_t seed = 0;
3248  VULKAN_HPP_HASH_COMBINE( seed, descriptorBufferBindingPushDescriptorBufferHandleEXT.sType );
3249  VULKAN_HPP_HASH_COMBINE( seed, descriptorBufferBindingPushDescriptorBufferHandleEXT.pNext );
3250  VULKAN_HPP_HASH_COMBINE( seed, descriptorBufferBindingPushDescriptorBufferHandleEXT.buffer );
3251  return seed;
3252  }
3253  };
3254 
3255  template <>
3256  struct hash<VULKAN_HPP_NAMESPACE::DescriptorBufferInfo>
3257  {
3258  std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorBufferInfo const & descriptorBufferInfo ) const VULKAN_HPP_NOEXCEPT
3259  {
3260  std::size_t seed = 0;
3261  VULKAN_HPP_HASH_COMBINE( seed, descriptorBufferInfo.buffer );
3262  VULKAN_HPP_HASH_COMBINE( seed, descriptorBufferInfo.offset );
3263  VULKAN_HPP_HASH_COMBINE( seed, descriptorBufferInfo.range );
3264  return seed;
3265  }
3266  };
3267 
3268  template <>
3269  struct hash<VULKAN_HPP_NAMESPACE::DescriptorImageInfo>
3270  {
3271  std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorImageInfo const & descriptorImageInfo ) const VULKAN_HPP_NOEXCEPT
3272  {
3273  std::size_t seed = 0;
3274  VULKAN_HPP_HASH_COMBINE( seed, descriptorImageInfo.sampler );
3275  VULKAN_HPP_HASH_COMBINE( seed, descriptorImageInfo.imageView );
3276  VULKAN_HPP_HASH_COMBINE( seed, descriptorImageInfo.imageLayout );
3277  return seed;
3278  }
3279  };
3280 
3281  template <>
3282  struct hash<VULKAN_HPP_NAMESPACE::DescriptorPoolSize>
3283  {
3284  std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorPoolSize const & descriptorPoolSize ) const VULKAN_HPP_NOEXCEPT
3285  {
3286  std::size_t seed = 0;
3287  VULKAN_HPP_HASH_COMBINE( seed, descriptorPoolSize.type );
3288  VULKAN_HPP_HASH_COMBINE( seed, descriptorPoolSize.descriptorCount );
3289  return seed;
3290  }
3291  };
3292 
3293  template <>
3294  struct hash<VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo>
3295  {
3296  std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo const & descriptorPoolCreateInfo ) const VULKAN_HPP_NOEXCEPT
3297  {
3298  std::size_t seed = 0;
3299  VULKAN_HPP_HASH_COMBINE( seed, descriptorPoolCreateInfo.sType );
3300  VULKAN_HPP_HASH_COMBINE( seed, descriptorPoolCreateInfo.pNext );
3301  VULKAN_HPP_HASH_COMBINE( seed, descriptorPoolCreateInfo.flags );
3302  VULKAN_HPP_HASH_COMBINE( seed, descriptorPoolCreateInfo.maxSets );
3303  VULKAN_HPP_HASH_COMBINE( seed, descriptorPoolCreateInfo.poolSizeCount );
3304  VULKAN_HPP_HASH_COMBINE( seed, descriptorPoolCreateInfo.pPoolSizes );
3305  return seed;
3306  }
3307  };
3308 
3309  template <>
3310  struct hash<VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfo>
3311  {
3312  std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorPoolInlineUniformBlockCreateInfo const & descriptorPoolInlineUniformBlockCreateInfo ) const
3314  {
3315  std::size_t seed = 0;
3316  VULKAN_HPP_HASH_COMBINE( seed, descriptorPoolInlineUniformBlockCreateInfo.sType );
3317  VULKAN_HPP_HASH_COMBINE( seed, descriptorPoolInlineUniformBlockCreateInfo.pNext );
3318  VULKAN_HPP_HASH_COMBINE( seed, descriptorPoolInlineUniformBlockCreateInfo.maxInlineUniformBlockBindings );
3319  return seed;
3320  }
3321  };
3322 
3323  template <>
3324  struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo>
3325  {
3326  std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo const & descriptorSetAllocateInfo ) const VULKAN_HPP_NOEXCEPT
3327  {
3328  std::size_t seed = 0;
3329  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetAllocateInfo.sType );
3330  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetAllocateInfo.pNext );
3331  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetAllocateInfo.descriptorPool );
3332  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetAllocateInfo.descriptorSetCount );
3333  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetAllocateInfo.pSetLayouts );
3334  return seed;
3335  }
3336  };
3337 
3338  template <>
3339  struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE>
3340  {
3341  std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE const & descriptorSetBindingReferenceVALVE ) const VULKAN_HPP_NOEXCEPT
3342  {
3343  std::size_t seed = 0;
3344  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetBindingReferenceVALVE.sType );
3345  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetBindingReferenceVALVE.pNext );
3346  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetBindingReferenceVALVE.descriptorSetLayout );
3347  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetBindingReferenceVALVE.binding );
3348  return seed;
3349  }
3350  };
3351 
3352  template <>
3353  struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding>
3354  {
3355  std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBinding const & descriptorSetLayoutBinding ) const VULKAN_HPP_NOEXCEPT
3356  {
3357  std::size_t seed = 0;
3358  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutBinding.binding );
3359  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutBinding.descriptorType );
3360  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutBinding.descriptorCount );
3361  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutBinding.stageFlags );
3362  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutBinding.pImmutableSamplers );
3363  return seed;
3364  }
3365  };
3366 
3367  template <>
3368  struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo>
3369  {
3370  std::size_t
3371  operator()( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutBindingFlagsCreateInfo const & descriptorSetLayoutBindingFlagsCreateInfo ) const VULKAN_HPP_NOEXCEPT
3372  {
3373  std::size_t seed = 0;
3374  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutBindingFlagsCreateInfo.sType );
3375  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutBindingFlagsCreateInfo.pNext );
3376  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutBindingFlagsCreateInfo.bindingCount );
3377  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutBindingFlagsCreateInfo.pBindingFlags );
3378  return seed;
3379  }
3380  };
3381 
3382  template <>
3383  struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo>
3384  {
3385  std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo const & descriptorSetLayoutCreateInfo ) const VULKAN_HPP_NOEXCEPT
3386  {
3387  std::size_t seed = 0;
3388  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutCreateInfo.sType );
3389  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutCreateInfo.pNext );
3390  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutCreateInfo.flags );
3391  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutCreateInfo.bindingCount );
3392  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutCreateInfo.pBindings );
3393  return seed;
3394  }
3395  };
3396 
3397  template <>
3398  struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE>
3399  {
3400  std::size_t
3401  operator()( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE const & descriptorSetLayoutHostMappingInfoVALVE ) const VULKAN_HPP_NOEXCEPT
3402  {
3403  std::size_t seed = 0;
3404  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutHostMappingInfoVALVE.sType );
3405  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutHostMappingInfoVALVE.pNext );
3406  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutHostMappingInfoVALVE.descriptorOffset );
3407  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutHostMappingInfoVALVE.descriptorSize );
3408  return seed;
3409  }
3410  };
3411 
3412  template <>
3413  struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>
3414  {
3415  std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport const & descriptorSetLayoutSupport ) const VULKAN_HPP_NOEXCEPT
3416  {
3417  std::size_t seed = 0;
3418  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutSupport.sType );
3419  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutSupport.pNext );
3420  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetLayoutSupport.supported );
3421  return seed;
3422  }
3423  };
3424 
3425  template <>
3426  struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo>
3427  {
3428  std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountAllocateInfo const & descriptorSetVariableDescriptorCountAllocateInfo )
3429  const VULKAN_HPP_NOEXCEPT
3430  {
3431  std::size_t seed = 0;
3432  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetVariableDescriptorCountAllocateInfo.sType );
3433  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetVariableDescriptorCountAllocateInfo.pNext );
3434  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetVariableDescriptorCountAllocateInfo.descriptorSetCount );
3435  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetVariableDescriptorCountAllocateInfo.pDescriptorCounts );
3436  return seed;
3437  }
3438  };
3439 
3440  template <>
3441  struct hash<VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport>
3442  {
3443  std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorSetVariableDescriptorCountLayoutSupport const & descriptorSetVariableDescriptorCountLayoutSupport )
3444  const VULKAN_HPP_NOEXCEPT
3445  {
3446  std::size_t seed = 0;
3447  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetVariableDescriptorCountLayoutSupport.sType );
3448  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetVariableDescriptorCountLayoutSupport.pNext );
3449  VULKAN_HPP_HASH_COMBINE( seed, descriptorSetVariableDescriptorCountLayoutSupport.maxVariableDescriptorCount );
3450  return seed;
3451  }
3452  };
3453 
3454  template <>
3455  struct hash<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry>
3456  {
3457  std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateEntry const & descriptorUpdateTemplateEntry ) const VULKAN_HPP_NOEXCEPT
3458  {
3459  std::size_t seed = 0;
3460  VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateEntry.dstBinding );
3461  VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateEntry.dstArrayElement );
3462  VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateEntry.descriptorCount );
3463  VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateEntry.descriptorType );
3464  VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateEntry.offset );
3465  VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateEntry.stride );
3466  return seed;
3467  }
3468  };
3469 
3470  template <>
3471  struct hash<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo>
3472  {
3473  std::size_t operator()( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo const & descriptorUpdateTemplateCreateInfo ) const VULKAN_HPP_NOEXCEPT
3474  {
3475  std::size_t seed = 0;
3476  VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateCreateInfo.sType );
3477  VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateCreateInfo.pNext );
3478  VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateCreateInfo.flags );
3479  VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateCreateInfo.descriptorUpdateEntryCount );
3480  VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateCreateInfo.pDescriptorUpdateEntries );
3481  VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateCreateInfo.templateType );
3482  VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateCreateInfo.descriptorSetLayout );
3483  VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateCreateInfo.pipelineBindPoint );
3484  VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateCreateInfo.pipelineLayout );
3485  VULKAN_HPP_HASH_COMBINE( seed, descriptorUpdateTemplateCreateInfo.set );
3486  return seed;
3487  }
3488  };
3489 
3490  template <>
3491  struct hash<VULKAN_HPP_NAMESPACE::DeviceAddressBindingCallbackDataEXT>
3492  {
3493  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceAddressBindingCallbackDataEXT const & deviceAddressBindingCallbackDataEXT ) const VULKAN_HPP_NOEXCEPT
3494  {
3495  std::size_t seed = 0;
3496  VULKAN_HPP_HASH_COMBINE( seed, deviceAddressBindingCallbackDataEXT.sType );
3497  VULKAN_HPP_HASH_COMBINE( seed, deviceAddressBindingCallbackDataEXT.pNext );
3498  VULKAN_HPP_HASH_COMBINE( seed, deviceAddressBindingCallbackDataEXT.flags );
3499  VULKAN_HPP_HASH_COMBINE( seed, deviceAddressBindingCallbackDataEXT.baseAddress );
3500  VULKAN_HPP_HASH_COMBINE( seed, deviceAddressBindingCallbackDataEXT.size );
3501  VULKAN_HPP_HASH_COMBINE( seed, deviceAddressBindingCallbackDataEXT.bindingType );
3502  return seed;
3503  }
3504  };
3505 
3506  template <>
3507  struct hash<VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements>
3508  {
3509  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements const & deviceBufferMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
3510  {
3511  std::size_t seed = 0;
3512  VULKAN_HPP_HASH_COMBINE( seed, deviceBufferMemoryRequirements.sType );
3513  VULKAN_HPP_HASH_COMBINE( seed, deviceBufferMemoryRequirements.pNext );
3514  VULKAN_HPP_HASH_COMBINE( seed, deviceBufferMemoryRequirements.pCreateInfo );
3515  return seed;
3516  }
3517  };
3518 
3519  template <>
3520  struct hash<VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo>
3521  {
3522  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceQueueCreateInfo const & deviceQueueCreateInfo ) const VULKAN_HPP_NOEXCEPT
3523  {
3524  std::size_t seed = 0;
3525  VULKAN_HPP_HASH_COMBINE( seed, deviceQueueCreateInfo.sType );
3526  VULKAN_HPP_HASH_COMBINE( seed, deviceQueueCreateInfo.pNext );
3527  VULKAN_HPP_HASH_COMBINE( seed, deviceQueueCreateInfo.flags );
3528  VULKAN_HPP_HASH_COMBINE( seed, deviceQueueCreateInfo.queueFamilyIndex );
3529  VULKAN_HPP_HASH_COMBINE( seed, deviceQueueCreateInfo.queueCount );
3530  VULKAN_HPP_HASH_COMBINE( seed, deviceQueueCreateInfo.pQueuePriorities );
3531  return seed;
3532  }
3533  };
3534 
3535  template <>
3536  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures>
3537  {
3538  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures const & physicalDeviceFeatures ) const VULKAN_HPP_NOEXCEPT
3539  {
3540  std::size_t seed = 0;
3541  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.robustBufferAccess );
3542  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.fullDrawIndexUint32 );
3543  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.imageCubeArray );
3544  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.independentBlend );
3545  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.geometryShader );
3546  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.tessellationShader );
3547  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.sampleRateShading );
3548  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.dualSrcBlend );
3549  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.logicOp );
3550  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.multiDrawIndirect );
3551  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.drawIndirectFirstInstance );
3552  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.depthClamp );
3553  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.depthBiasClamp );
3554  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.fillModeNonSolid );
3555  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.depthBounds );
3556  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.wideLines );
3557  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.largePoints );
3558  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.alphaToOne );
3559  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.multiViewport );
3560  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.samplerAnisotropy );
3561  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.textureCompressionETC2 );
3562  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.textureCompressionASTC_LDR );
3563  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.textureCompressionBC );
3564  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.occlusionQueryPrecise );
3565  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.pipelineStatisticsQuery );
3566  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.vertexPipelineStoresAndAtomics );
3567  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.fragmentStoresAndAtomics );
3568  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderTessellationAndGeometryPointSize );
3569  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderImageGatherExtended );
3570  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderStorageImageExtendedFormats );
3571  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderStorageImageMultisample );
3572  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderStorageImageReadWithoutFormat );
3573  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderStorageImageWriteWithoutFormat );
3574  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderUniformBufferArrayDynamicIndexing );
3575  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderSampledImageArrayDynamicIndexing );
3576  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderStorageBufferArrayDynamicIndexing );
3577  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderStorageImageArrayDynamicIndexing );
3578  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderClipDistance );
3579  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderCullDistance );
3580  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderFloat64 );
3581  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderInt64 );
3582  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderInt16 );
3583  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderResourceResidency );
3584  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.shaderResourceMinLod );
3585  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.sparseBinding );
3586  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.sparseResidencyBuffer );
3587  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.sparseResidencyImage2D );
3588  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.sparseResidencyImage3D );
3589  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.sparseResidency2Samples );
3590  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.sparseResidency4Samples );
3591  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.sparseResidency8Samples );
3592  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.sparseResidency16Samples );
3593  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.sparseResidencyAliased );
3594  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.variableMultisampleRate );
3595  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures.inheritedQueries );
3596  return seed;
3597  }
3598  };
3599 
3600  template <>
3601  struct hash<VULKAN_HPP_NAMESPACE::DeviceCreateInfo>
3602  {
3603  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceCreateInfo const & deviceCreateInfo ) const VULKAN_HPP_NOEXCEPT
3604  {
3605  std::size_t seed = 0;
3606  VULKAN_HPP_HASH_COMBINE( seed, deviceCreateInfo.sType );
3607  VULKAN_HPP_HASH_COMBINE( seed, deviceCreateInfo.pNext );
3608  VULKAN_HPP_HASH_COMBINE( seed, deviceCreateInfo.flags );
3609  VULKAN_HPP_HASH_COMBINE( seed, deviceCreateInfo.queueCreateInfoCount );
3610  VULKAN_HPP_HASH_COMBINE( seed, deviceCreateInfo.pQueueCreateInfos );
3611  VULKAN_HPP_HASH_COMBINE( seed, deviceCreateInfo.enabledLayerCount );
3612  for ( size_t i = 0; i < deviceCreateInfo.enabledLayerCount; ++i )
3613  {
3614  for ( const char * p = deviceCreateInfo.ppEnabledLayerNames[i]; *p != '\0'; ++p )
3615  {
3616  VULKAN_HPP_HASH_COMBINE( seed, *p );
3617  }
3618  }
3619  VULKAN_HPP_HASH_COMBINE( seed, deviceCreateInfo.enabledExtensionCount );
3620  for ( size_t i = 0; i < deviceCreateInfo.enabledExtensionCount; ++i )
3621  {
3622  for ( const char * p = deviceCreateInfo.ppEnabledExtensionNames[i]; *p != '\0'; ++p )
3623  {
3624  VULKAN_HPP_HASH_COMBINE( seed, *p );
3625  }
3626  }
3627  VULKAN_HPP_HASH_COMBINE( seed, deviceCreateInfo.pEnabledFeatures );
3628  return seed;
3629  }
3630  };
3631 
3632  template <>
3633  struct hash<VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT>
3634  {
3635  std::size_t
3636  operator()( VULKAN_HPP_NAMESPACE::DeviceDeviceMemoryReportCreateInfoEXT const & deviceDeviceMemoryReportCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
3637  {
3638  std::size_t seed = 0;
3639  VULKAN_HPP_HASH_COMBINE( seed, deviceDeviceMemoryReportCreateInfoEXT.sType );
3640  VULKAN_HPP_HASH_COMBINE( seed, deviceDeviceMemoryReportCreateInfoEXT.pNext );
3641  VULKAN_HPP_HASH_COMBINE( seed, deviceDeviceMemoryReportCreateInfoEXT.flags );
3642  VULKAN_HPP_HASH_COMBINE( seed, deviceDeviceMemoryReportCreateInfoEXT.pfnUserCallback );
3643  VULKAN_HPP_HASH_COMBINE( seed, deviceDeviceMemoryReportCreateInfoEXT.pUserData );
3644  return seed;
3645  }
3646  };
3647 
3648  template <>
3649  struct hash<VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV>
3650  {
3651  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceDiagnosticsConfigCreateInfoNV const & deviceDiagnosticsConfigCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
3652  {
3653  std::size_t seed = 0;
3654  VULKAN_HPP_HASH_COMBINE( seed, deviceDiagnosticsConfigCreateInfoNV.sType );
3655  VULKAN_HPP_HASH_COMBINE( seed, deviceDiagnosticsConfigCreateInfoNV.pNext );
3656  VULKAN_HPP_HASH_COMBINE( seed, deviceDiagnosticsConfigCreateInfoNV.flags );
3657  return seed;
3658  }
3659  };
3660 
3661  template <>
3662  struct hash<VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT>
3663  {
3664  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT const & deviceEventInfoEXT ) const VULKAN_HPP_NOEXCEPT
3665  {
3666  std::size_t seed = 0;
3667  VULKAN_HPP_HASH_COMBINE( seed, deviceEventInfoEXT.sType );
3668  VULKAN_HPP_HASH_COMBINE( seed, deviceEventInfoEXT.pNext );
3669  VULKAN_HPP_HASH_COMBINE( seed, deviceEventInfoEXT.deviceEvent );
3670  return seed;
3671  }
3672  };
3673 
3674  template <>
3675  struct hash<VULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT>
3676  {
3677  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceFaultAddressInfoEXT const & deviceFaultAddressInfoEXT ) const VULKAN_HPP_NOEXCEPT
3678  {
3679  std::size_t seed = 0;
3680  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultAddressInfoEXT.addressType );
3681  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultAddressInfoEXT.reportedAddress );
3682  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultAddressInfoEXT.addressPrecision );
3683  return seed;
3684  }
3685  };
3686 
3687  template <>
3688  struct hash<VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT>
3689  {
3690  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT const & deviceFaultCountsEXT ) const VULKAN_HPP_NOEXCEPT
3691  {
3692  std::size_t seed = 0;
3693  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultCountsEXT.sType );
3694  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultCountsEXT.pNext );
3695  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultCountsEXT.addressInfoCount );
3696  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultCountsEXT.vendorInfoCount );
3697  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultCountsEXT.vendorBinarySize );
3698  return seed;
3699  }
3700  };
3701 
3702  template <>
3703  struct hash<VULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT>
3704  {
3705  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceFaultVendorInfoEXT const & deviceFaultVendorInfoEXT ) const VULKAN_HPP_NOEXCEPT
3706  {
3707  std::size_t seed = 0;
3708  for ( size_t i = 0; i < VK_MAX_DESCRIPTION_SIZE; ++i )
3709  {
3710  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultVendorInfoEXT.description[i] );
3711  }
3712  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultVendorInfoEXT.vendorFaultCode );
3713  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultVendorInfoEXT.vendorFaultData );
3714  return seed;
3715  }
3716  };
3717 
3718  template <>
3719  struct hash<VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT>
3720  {
3721  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT const & deviceFaultInfoEXT ) const VULKAN_HPP_NOEXCEPT
3722  {
3723  std::size_t seed = 0;
3724  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultInfoEXT.sType );
3725  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultInfoEXT.pNext );
3726  for ( size_t i = 0; i < VK_MAX_DESCRIPTION_SIZE; ++i )
3727  {
3728  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultInfoEXT.description[i] );
3729  }
3730  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultInfoEXT.pAddressInfos );
3731  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultInfoEXT.pVendorInfos );
3732  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultInfoEXT.pVendorBinaryData );
3733  return seed;
3734  }
3735  };
3736 
3737  template <>
3738  struct hash<VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT>
3739  {
3740  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceFaultVendorBinaryHeaderVersionOneEXT const & deviceFaultVendorBinaryHeaderVersionOneEXT ) const
3742  {
3743  std::size_t seed = 0;
3744  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultVendorBinaryHeaderVersionOneEXT.headerSize );
3745  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultVendorBinaryHeaderVersionOneEXT.headerVersion );
3746  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultVendorBinaryHeaderVersionOneEXT.vendorID );
3747  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultVendorBinaryHeaderVersionOneEXT.deviceID );
3748  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultVendorBinaryHeaderVersionOneEXT.driverVersion );
3749  for ( size_t i = 0; i < VK_UUID_SIZE; ++i )
3750  {
3751  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultVendorBinaryHeaderVersionOneEXT.pipelineCacheUUID[i] );
3752  }
3753  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultVendorBinaryHeaderVersionOneEXT.applicationNameOffset );
3754  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultVendorBinaryHeaderVersionOneEXT.applicationVersion );
3755  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultVendorBinaryHeaderVersionOneEXT.engineNameOffset );
3756  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultVendorBinaryHeaderVersionOneEXT.engineVersion );
3757  VULKAN_HPP_HASH_COMBINE( seed, deviceFaultVendorBinaryHeaderVersionOneEXT.apiVersion );
3758  return seed;
3759  }
3760  };
3761 
3762  template <>
3763  struct hash<VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo>
3764  {
3765  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceGroupBindSparseInfo const & deviceGroupBindSparseInfo ) const VULKAN_HPP_NOEXCEPT
3766  {
3767  std::size_t seed = 0;
3768  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupBindSparseInfo.sType );
3769  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupBindSparseInfo.pNext );
3770  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupBindSparseInfo.resourceDeviceIndex );
3771  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupBindSparseInfo.memoryDeviceIndex );
3772  return seed;
3773  }
3774  };
3775 
3776  template <>
3777  struct hash<VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo>
3778  {
3779  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceGroupCommandBufferBeginInfo const & deviceGroupCommandBufferBeginInfo ) const VULKAN_HPP_NOEXCEPT
3780  {
3781  std::size_t seed = 0;
3782  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupCommandBufferBeginInfo.sType );
3783  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupCommandBufferBeginInfo.pNext );
3784  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupCommandBufferBeginInfo.deviceMask );
3785  return seed;
3786  }
3787  };
3788 
3789  template <>
3790  struct hash<VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo>
3791  {
3792  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceGroupDeviceCreateInfo const & deviceGroupDeviceCreateInfo ) const VULKAN_HPP_NOEXCEPT
3793  {
3794  std::size_t seed = 0;
3795  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupDeviceCreateInfo.sType );
3796  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupDeviceCreateInfo.pNext );
3797  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupDeviceCreateInfo.physicalDeviceCount );
3798  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupDeviceCreateInfo.pPhysicalDevices );
3799  return seed;
3800  }
3801  };
3802 
3803  template <>
3804  struct hash<VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR>
3805  {
3806  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR const & deviceGroupPresentCapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
3807  {
3808  std::size_t seed = 0;
3809  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupPresentCapabilitiesKHR.sType );
3810  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupPresentCapabilitiesKHR.pNext );
3811  for ( size_t i = 0; i < VK_MAX_DEVICE_GROUP_SIZE; ++i )
3812  {
3813  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupPresentCapabilitiesKHR.presentMask[i] );
3814  }
3815  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupPresentCapabilitiesKHR.modes );
3816  return seed;
3817  }
3818  };
3819 
3820  template <>
3821  struct hash<VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR>
3822  {
3823  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceGroupPresentInfoKHR const & deviceGroupPresentInfoKHR ) const VULKAN_HPP_NOEXCEPT
3824  {
3825  std::size_t seed = 0;
3826  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupPresentInfoKHR.sType );
3827  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupPresentInfoKHR.pNext );
3828  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupPresentInfoKHR.swapchainCount );
3829  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupPresentInfoKHR.pDeviceMasks );
3830  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupPresentInfoKHR.mode );
3831  return seed;
3832  }
3833  };
3834 
3835  template <>
3836  struct hash<VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo>
3837  {
3838  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceGroupRenderPassBeginInfo const & deviceGroupRenderPassBeginInfo ) const VULKAN_HPP_NOEXCEPT
3839  {
3840  std::size_t seed = 0;
3841  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupRenderPassBeginInfo.sType );
3842  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupRenderPassBeginInfo.pNext );
3843  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupRenderPassBeginInfo.deviceMask );
3844  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupRenderPassBeginInfo.deviceRenderAreaCount );
3845  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupRenderPassBeginInfo.pDeviceRenderAreas );
3846  return seed;
3847  }
3848  };
3849 
3850  template <>
3851  struct hash<VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo>
3852  {
3853  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceGroupSubmitInfo const & deviceGroupSubmitInfo ) const VULKAN_HPP_NOEXCEPT
3854  {
3855  std::size_t seed = 0;
3856  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupSubmitInfo.sType );
3857  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupSubmitInfo.pNext );
3858  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupSubmitInfo.waitSemaphoreCount );
3859  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupSubmitInfo.pWaitSemaphoreDeviceIndices );
3860  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupSubmitInfo.commandBufferCount );
3861  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupSubmitInfo.pCommandBufferDeviceMasks );
3862  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupSubmitInfo.signalSemaphoreCount );
3863  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupSubmitInfo.pSignalSemaphoreDeviceIndices );
3864  return seed;
3865  }
3866  };
3867 
3868  template <>
3869  struct hash<VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR>
3870  {
3871  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceGroupSwapchainCreateInfoKHR const & deviceGroupSwapchainCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
3872  {
3873  std::size_t seed = 0;
3874  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupSwapchainCreateInfoKHR.sType );
3875  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupSwapchainCreateInfoKHR.pNext );
3876  VULKAN_HPP_HASH_COMBINE( seed, deviceGroupSwapchainCreateInfoKHR.modes );
3877  return seed;
3878  }
3879  };
3880 
3881  template <>
3882  struct hash<VULKAN_HPP_NAMESPACE::ImageCreateInfo>
3883  {
3884  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageCreateInfo const & imageCreateInfo ) const VULKAN_HPP_NOEXCEPT
3885  {
3886  std::size_t seed = 0;
3887  VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.sType );
3888  VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.pNext );
3889  VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.flags );
3890  VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.imageType );
3891  VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.format );
3892  VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.extent );
3893  VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.mipLevels );
3894  VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.arrayLayers );
3895  VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.samples );
3896  VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.tiling );
3897  VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.usage );
3898  VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.sharingMode );
3899  VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.queueFamilyIndexCount );
3900  VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.pQueueFamilyIndices );
3901  VULKAN_HPP_HASH_COMBINE( seed, imageCreateInfo.initialLayout );
3902  return seed;
3903  }
3904  };
3905 
3906  template <>
3907  struct hash<VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements>
3908  {
3909  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements const & deviceImageMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
3910  {
3911  std::size_t seed = 0;
3912  VULKAN_HPP_HASH_COMBINE( seed, deviceImageMemoryRequirements.sType );
3913  VULKAN_HPP_HASH_COMBINE( seed, deviceImageMemoryRequirements.pNext );
3914  VULKAN_HPP_HASH_COMBINE( seed, deviceImageMemoryRequirements.pCreateInfo );
3915  VULKAN_HPP_HASH_COMBINE( seed, deviceImageMemoryRequirements.planeAspect );
3916  return seed;
3917  }
3918  };
3919 
3920  template <>
3921  struct hash<VULKAN_HPP_NAMESPACE::ImageSubresource2KHR>
3922  {
3923  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageSubresource2KHR const & imageSubresource2KHR ) const VULKAN_HPP_NOEXCEPT
3924  {
3925  std::size_t seed = 0;
3926  VULKAN_HPP_HASH_COMBINE( seed, imageSubresource2KHR.sType );
3927  VULKAN_HPP_HASH_COMBINE( seed, imageSubresource2KHR.pNext );
3928  VULKAN_HPP_HASH_COMBINE( seed, imageSubresource2KHR.imageSubresource );
3929  return seed;
3930  }
3931  };
3932 
3933  template <>
3934  struct hash<VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR>
3935  {
3936  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfoKHR const & deviceImageSubresourceInfoKHR ) const VULKAN_HPP_NOEXCEPT
3937  {
3938  std::size_t seed = 0;
3939  VULKAN_HPP_HASH_COMBINE( seed, deviceImageSubresourceInfoKHR.sType );
3940  VULKAN_HPP_HASH_COMBINE( seed, deviceImageSubresourceInfoKHR.pNext );
3941  VULKAN_HPP_HASH_COMBINE( seed, deviceImageSubresourceInfoKHR.pCreateInfo );
3942  VULKAN_HPP_HASH_COMBINE( seed, deviceImageSubresourceInfoKHR.pSubresource );
3943  return seed;
3944  }
3945  };
3946 
3947  template <>
3948  struct hash<VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo>
3949  {
3950  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo const & deviceMemoryOpaqueCaptureAddressInfo ) const VULKAN_HPP_NOEXCEPT
3951  {
3952  std::size_t seed = 0;
3953  VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryOpaqueCaptureAddressInfo.sType );
3954  VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryOpaqueCaptureAddressInfo.pNext );
3955  VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryOpaqueCaptureAddressInfo.memory );
3956  return seed;
3957  }
3958  };
3959 
3960  template <>
3961  struct hash<VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD>
3962  {
3963  std::size_t
3964  operator()( VULKAN_HPP_NAMESPACE::DeviceMemoryOverallocationCreateInfoAMD const & deviceMemoryOverallocationCreateInfoAMD ) const VULKAN_HPP_NOEXCEPT
3965  {
3966  std::size_t seed = 0;
3967  VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryOverallocationCreateInfoAMD.sType );
3968  VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryOverallocationCreateInfoAMD.pNext );
3969  VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryOverallocationCreateInfoAMD.overallocationBehavior );
3970  return seed;
3971  }
3972  };
3973 
3974  template <>
3975  struct hash<VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT>
3976  {
3977  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceMemoryReportCallbackDataEXT const & deviceMemoryReportCallbackDataEXT ) const VULKAN_HPP_NOEXCEPT
3978  {
3979  std::size_t seed = 0;
3980  VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryReportCallbackDataEXT.sType );
3981  VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryReportCallbackDataEXT.pNext );
3982  VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryReportCallbackDataEXT.flags );
3983  VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryReportCallbackDataEXT.type );
3984  VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryReportCallbackDataEXT.memoryObjectId );
3985  VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryReportCallbackDataEXT.size );
3986  VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryReportCallbackDataEXT.objectType );
3987  VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryReportCallbackDataEXT.objectHandle );
3988  VULKAN_HPP_HASH_COMBINE( seed, deviceMemoryReportCallbackDataEXT.heapIndex );
3989  return seed;
3990  }
3991  };
3992 
3993  template <>
3994  struct hash<VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfo>
3995  {
3996  std::size_t operator()( VULKAN_HPP_NAMESPACE::DevicePrivateDataCreateInfo const & devicePrivateDataCreateInfo ) const VULKAN_HPP_NOEXCEPT
3997  {
3998  std::size_t seed = 0;
3999  VULKAN_HPP_HASH_COMBINE( seed, devicePrivateDataCreateInfo.sType );
4000  VULKAN_HPP_HASH_COMBINE( seed, devicePrivateDataCreateInfo.pNext );
4001  VULKAN_HPP_HASH_COMBINE( seed, devicePrivateDataCreateInfo.privateDataSlotRequestCount );
4002  return seed;
4003  }
4004  };
4005 
4006  template <>
4007  struct hash<VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoKHR>
4008  {
4009  std::size_t
4010  operator()( VULKAN_HPP_NAMESPACE::DeviceQueueGlobalPriorityCreateInfoKHR const & deviceQueueGlobalPriorityCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
4011  {
4012  std::size_t seed = 0;
4013  VULKAN_HPP_HASH_COMBINE( seed, deviceQueueGlobalPriorityCreateInfoKHR.sType );
4014  VULKAN_HPP_HASH_COMBINE( seed, deviceQueueGlobalPriorityCreateInfoKHR.pNext );
4015  VULKAN_HPP_HASH_COMBINE( seed, deviceQueueGlobalPriorityCreateInfoKHR.globalPriority );
4016  return seed;
4017  }
4018  };
4019 
4020  template <>
4021  struct hash<VULKAN_HPP_NAMESPACE::DeviceQueueInfo2>
4022  {
4023  std::size_t operator()( VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 const & deviceQueueInfo2 ) const VULKAN_HPP_NOEXCEPT
4024  {
4025  std::size_t seed = 0;
4026  VULKAN_HPP_HASH_COMBINE( seed, deviceQueueInfo2.sType );
4027  VULKAN_HPP_HASH_COMBINE( seed, deviceQueueInfo2.pNext );
4028  VULKAN_HPP_HASH_COMBINE( seed, deviceQueueInfo2.flags );
4029  VULKAN_HPP_HASH_COMBINE( seed, deviceQueueInfo2.queueFamilyIndex );
4030  VULKAN_HPP_HASH_COMBINE( seed, deviceQueueInfo2.queueIndex );
4031  return seed;
4032  }
4033  };
4034 
4035  template <>
4036  struct hash<VULKAN_HPP_NAMESPACE::DeviceQueueShaderCoreControlCreateInfoARM>
4037  {
4038  std::size_t
4039  operator()( VULKAN_HPP_NAMESPACE::DeviceQueueShaderCoreControlCreateInfoARM const & deviceQueueShaderCoreControlCreateInfoARM ) const VULKAN_HPP_NOEXCEPT
4040  {
4041  std::size_t seed = 0;
4042  VULKAN_HPP_HASH_COMBINE( seed, deviceQueueShaderCoreControlCreateInfoARM.sType );
4043  VULKAN_HPP_HASH_COMBINE( seed, deviceQueueShaderCoreControlCreateInfoARM.pNext );
4044  VULKAN_HPP_HASH_COMBINE( seed, deviceQueueShaderCoreControlCreateInfoARM.shaderCoreCount );
4045  return seed;
4046  }
4047  };
4048 
4049  template <>
4050  struct hash<VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG>
4051  {
4052  std::size_t operator()( VULKAN_HPP_NAMESPACE::DirectDriverLoadingInfoLUNARG const & directDriverLoadingInfoLUNARG ) const VULKAN_HPP_NOEXCEPT
4053  {
4054  std::size_t seed = 0;
4055  VULKAN_HPP_HASH_COMBINE( seed, directDriverLoadingInfoLUNARG.sType );
4056  VULKAN_HPP_HASH_COMBINE( seed, directDriverLoadingInfoLUNARG.pNext );
4057  VULKAN_HPP_HASH_COMBINE( seed, directDriverLoadingInfoLUNARG.flags );
4058  VULKAN_HPP_HASH_COMBINE( seed, directDriverLoadingInfoLUNARG.pfnGetInstanceProcAddr );
4059  return seed;
4060  }
4061  };
4062 
4063  template <>
4064  struct hash<VULKAN_HPP_NAMESPACE::DirectDriverLoadingListLUNARG>
4065  {
4066  std::size_t operator()( VULKAN_HPP_NAMESPACE::DirectDriverLoadingListLUNARG const & directDriverLoadingListLUNARG ) const VULKAN_HPP_NOEXCEPT
4067  {
4068  std::size_t seed = 0;
4069  VULKAN_HPP_HASH_COMBINE( seed, directDriverLoadingListLUNARG.sType );
4070  VULKAN_HPP_HASH_COMBINE( seed, directDriverLoadingListLUNARG.pNext );
4071  VULKAN_HPP_HASH_COMBINE( seed, directDriverLoadingListLUNARG.mode );
4072  VULKAN_HPP_HASH_COMBINE( seed, directDriverLoadingListLUNARG.driverCount );
4073  VULKAN_HPP_HASH_COMBINE( seed, directDriverLoadingListLUNARG.pDrivers );
4074  return seed;
4075  }
4076  };
4077 
4078 # if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
4079  template <>
4080  struct hash<VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT>
4081  {
4082  std::size_t operator()( VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT const & directFBSurfaceCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
4083  {
4084  std::size_t seed = 0;
4085  VULKAN_HPP_HASH_COMBINE( seed, directFBSurfaceCreateInfoEXT.sType );
4086  VULKAN_HPP_HASH_COMBINE( seed, directFBSurfaceCreateInfoEXT.pNext );
4087  VULKAN_HPP_HASH_COMBINE( seed, directFBSurfaceCreateInfoEXT.flags );
4088  VULKAN_HPP_HASH_COMBINE( seed, directFBSurfaceCreateInfoEXT.dfb );
4089  VULKAN_HPP_HASH_COMBINE( seed, directFBSurfaceCreateInfoEXT.surface );
4090  return seed;
4091  }
4092  };
4093 # endif /*VK_USE_PLATFORM_DIRECTFB_EXT*/
4094 
4095  template <>
4096  struct hash<VULKAN_HPP_NAMESPACE::DispatchIndirectCommand>
4097  {
4098  std::size_t operator()( VULKAN_HPP_NAMESPACE::DispatchIndirectCommand const & dispatchIndirectCommand ) const VULKAN_HPP_NOEXCEPT
4099  {
4100  std::size_t seed = 0;
4101  VULKAN_HPP_HASH_COMBINE( seed, dispatchIndirectCommand.x );
4102  VULKAN_HPP_HASH_COMBINE( seed, dispatchIndirectCommand.y );
4103  VULKAN_HPP_HASH_COMBINE( seed, dispatchIndirectCommand.z );
4104  return seed;
4105  }
4106  };
4107 
4108  template <>
4109  struct hash<VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT>
4110  {
4111  std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT const & displayEventInfoEXT ) const VULKAN_HPP_NOEXCEPT
4112  {
4113  std::size_t seed = 0;
4114  VULKAN_HPP_HASH_COMBINE( seed, displayEventInfoEXT.sType );
4115  VULKAN_HPP_HASH_COMBINE( seed, displayEventInfoEXT.pNext );
4116  VULKAN_HPP_HASH_COMBINE( seed, displayEventInfoEXT.displayEvent );
4117  return seed;
4118  }
4119  };
4120 
4121  template <>
4122  struct hash<VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR>
4123  {
4124  std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayModeParametersKHR const & displayModeParametersKHR ) const VULKAN_HPP_NOEXCEPT
4125  {
4126  std::size_t seed = 0;
4127  VULKAN_HPP_HASH_COMBINE( seed, displayModeParametersKHR.visibleRegion );
4128  VULKAN_HPP_HASH_COMBINE( seed, displayModeParametersKHR.refreshRate );
4129  return seed;
4130  }
4131  };
4132 
4133  template <>
4134  struct hash<VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR>
4135  {
4136  std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR const & displayModeCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
4137  {
4138  std::size_t seed = 0;
4139  VULKAN_HPP_HASH_COMBINE( seed, displayModeCreateInfoKHR.sType );
4140  VULKAN_HPP_HASH_COMBINE( seed, displayModeCreateInfoKHR.pNext );
4141  VULKAN_HPP_HASH_COMBINE( seed, displayModeCreateInfoKHR.flags );
4142  VULKAN_HPP_HASH_COMBINE( seed, displayModeCreateInfoKHR.parameters );
4143  return seed;
4144  }
4145  };
4146 
4147  template <>
4148  struct hash<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR>
4149  {
4150  std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR const & displayModePropertiesKHR ) const VULKAN_HPP_NOEXCEPT
4151  {
4152  std::size_t seed = 0;
4153  VULKAN_HPP_HASH_COMBINE( seed, displayModePropertiesKHR.displayMode );
4154  VULKAN_HPP_HASH_COMBINE( seed, displayModePropertiesKHR.parameters );
4155  return seed;
4156  }
4157  };
4158 
4159  template <>
4160  struct hash<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR>
4161  {
4162  std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR const & displayModeProperties2KHR ) const VULKAN_HPP_NOEXCEPT
4163  {
4164  std::size_t seed = 0;
4165  VULKAN_HPP_HASH_COMBINE( seed, displayModeProperties2KHR.sType );
4166  VULKAN_HPP_HASH_COMBINE( seed, displayModeProperties2KHR.pNext );
4167  VULKAN_HPP_HASH_COMBINE( seed, displayModeProperties2KHR.displayModeProperties );
4168  return seed;
4169  }
4170  };
4171 
4172  template <>
4173  struct hash<VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD>
4174  {
4175  std::size_t
4176  operator()( VULKAN_HPP_NAMESPACE::DisplayNativeHdrSurfaceCapabilitiesAMD const & displayNativeHdrSurfaceCapabilitiesAMD ) const VULKAN_HPP_NOEXCEPT
4177  {
4178  std::size_t seed = 0;
4179  VULKAN_HPP_HASH_COMBINE( seed, displayNativeHdrSurfaceCapabilitiesAMD.sType );
4180  VULKAN_HPP_HASH_COMBINE( seed, displayNativeHdrSurfaceCapabilitiesAMD.pNext );
4181  VULKAN_HPP_HASH_COMBINE( seed, displayNativeHdrSurfaceCapabilitiesAMD.localDimmingSupport );
4182  return seed;
4183  }
4184  };
4185 
4186  template <>
4187  struct hash<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR>
4188  {
4189  std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR const & displayPlaneCapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
4190  {
4191  std::size_t seed = 0;
4192  VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilitiesKHR.supportedAlpha );
4193  VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilitiesKHR.minSrcPosition );
4194  VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilitiesKHR.maxSrcPosition );
4195  VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilitiesKHR.minSrcExtent );
4196  VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilitiesKHR.maxSrcExtent );
4197  VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilitiesKHR.minDstPosition );
4198  VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilitiesKHR.maxDstPosition );
4199  VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilitiesKHR.minDstExtent );
4200  VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilitiesKHR.maxDstExtent );
4201  return seed;
4202  }
4203  };
4204 
4205  template <>
4206  struct hash<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR>
4207  {
4208  std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR const & displayPlaneCapabilities2KHR ) const VULKAN_HPP_NOEXCEPT
4209  {
4210  std::size_t seed = 0;
4211  VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilities2KHR.sType );
4212  VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilities2KHR.pNext );
4213  VULKAN_HPP_HASH_COMBINE( seed, displayPlaneCapabilities2KHR.capabilities );
4214  return seed;
4215  }
4216  };
4217 
4218  template <>
4219  struct hash<VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR>
4220  {
4221  std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR const & displayPlaneInfo2KHR ) const VULKAN_HPP_NOEXCEPT
4222  {
4223  std::size_t seed = 0;
4224  VULKAN_HPP_HASH_COMBINE( seed, displayPlaneInfo2KHR.sType );
4225  VULKAN_HPP_HASH_COMBINE( seed, displayPlaneInfo2KHR.pNext );
4226  VULKAN_HPP_HASH_COMBINE( seed, displayPlaneInfo2KHR.mode );
4227  VULKAN_HPP_HASH_COMBINE( seed, displayPlaneInfo2KHR.planeIndex );
4228  return seed;
4229  }
4230  };
4231 
4232  template <>
4233  struct hash<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR>
4234  {
4235  std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR const & displayPlanePropertiesKHR ) const VULKAN_HPP_NOEXCEPT
4236  {
4237  std::size_t seed = 0;
4238  VULKAN_HPP_HASH_COMBINE( seed, displayPlanePropertiesKHR.currentDisplay );
4239  VULKAN_HPP_HASH_COMBINE( seed, displayPlanePropertiesKHR.currentStackIndex );
4240  return seed;
4241  }
4242  };
4243 
4244  template <>
4245  struct hash<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR>
4246  {
4247  std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR const & displayPlaneProperties2KHR ) const VULKAN_HPP_NOEXCEPT
4248  {
4249  std::size_t seed = 0;
4250  VULKAN_HPP_HASH_COMBINE( seed, displayPlaneProperties2KHR.sType );
4251  VULKAN_HPP_HASH_COMBINE( seed, displayPlaneProperties2KHR.pNext );
4252  VULKAN_HPP_HASH_COMBINE( seed, displayPlaneProperties2KHR.displayPlaneProperties );
4253  return seed;
4254  }
4255  };
4256 
4257  template <>
4258  struct hash<VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT>
4259  {
4260  std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT const & displayPowerInfoEXT ) const VULKAN_HPP_NOEXCEPT
4261  {
4262  std::size_t seed = 0;
4263  VULKAN_HPP_HASH_COMBINE( seed, displayPowerInfoEXT.sType );
4264  VULKAN_HPP_HASH_COMBINE( seed, displayPowerInfoEXT.pNext );
4265  VULKAN_HPP_HASH_COMBINE( seed, displayPowerInfoEXT.powerState );
4266  return seed;
4267  }
4268  };
4269 
4270  template <>
4271  struct hash<VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR>
4272  {
4273  std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayPresentInfoKHR const & displayPresentInfoKHR ) const VULKAN_HPP_NOEXCEPT
4274  {
4275  std::size_t seed = 0;
4276  VULKAN_HPP_HASH_COMBINE( seed, displayPresentInfoKHR.sType );
4277  VULKAN_HPP_HASH_COMBINE( seed, displayPresentInfoKHR.pNext );
4278  VULKAN_HPP_HASH_COMBINE( seed, displayPresentInfoKHR.srcRect );
4279  VULKAN_HPP_HASH_COMBINE( seed, displayPresentInfoKHR.dstRect );
4280  VULKAN_HPP_HASH_COMBINE( seed, displayPresentInfoKHR.persistent );
4281  return seed;
4282  }
4283  };
4284 
4285  template <>
4286  struct hash<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR>
4287  {
4288  std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR const & displayPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
4289  {
4290  std::size_t seed = 0;
4291  VULKAN_HPP_HASH_COMBINE( seed, displayPropertiesKHR.display );
4292  for ( const char * p = displayPropertiesKHR.displayName; *p != '\0'; ++p )
4293  {
4294  VULKAN_HPP_HASH_COMBINE( seed, *p );
4295  }
4296  VULKAN_HPP_HASH_COMBINE( seed, displayPropertiesKHR.physicalDimensions );
4297  VULKAN_HPP_HASH_COMBINE( seed, displayPropertiesKHR.physicalResolution );
4298  VULKAN_HPP_HASH_COMBINE( seed, displayPropertiesKHR.supportedTransforms );
4299  VULKAN_HPP_HASH_COMBINE( seed, displayPropertiesKHR.planeReorderPossible );
4300  VULKAN_HPP_HASH_COMBINE( seed, displayPropertiesKHR.persistentContent );
4301  return seed;
4302  }
4303  };
4304 
4305  template <>
4306  struct hash<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR>
4307  {
4308  std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplayProperties2KHR const & displayProperties2KHR ) const VULKAN_HPP_NOEXCEPT
4309  {
4310  std::size_t seed = 0;
4311  VULKAN_HPP_HASH_COMBINE( seed, displayProperties2KHR.sType );
4312  VULKAN_HPP_HASH_COMBINE( seed, displayProperties2KHR.pNext );
4313  VULKAN_HPP_HASH_COMBINE( seed, displayProperties2KHR.displayProperties );
4314  return seed;
4315  }
4316  };
4317 
4318  template <>
4319  struct hash<VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR>
4320  {
4321  std::size_t operator()( VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR const & displaySurfaceCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
4322  {
4323  std::size_t seed = 0;
4324  VULKAN_HPP_HASH_COMBINE( seed, displaySurfaceCreateInfoKHR.sType );
4325  VULKAN_HPP_HASH_COMBINE( seed, displaySurfaceCreateInfoKHR.pNext );
4326  VULKAN_HPP_HASH_COMBINE( seed, displaySurfaceCreateInfoKHR.flags );
4327  VULKAN_HPP_HASH_COMBINE( seed, displaySurfaceCreateInfoKHR.displayMode );
4328  VULKAN_HPP_HASH_COMBINE( seed, displaySurfaceCreateInfoKHR.planeIndex );
4329  VULKAN_HPP_HASH_COMBINE( seed, displaySurfaceCreateInfoKHR.planeStackIndex );
4330  VULKAN_HPP_HASH_COMBINE( seed, displaySurfaceCreateInfoKHR.transform );
4331  VULKAN_HPP_HASH_COMBINE( seed, displaySurfaceCreateInfoKHR.globalAlpha );
4332  VULKAN_HPP_HASH_COMBINE( seed, displaySurfaceCreateInfoKHR.alphaMode );
4333  VULKAN_HPP_HASH_COMBINE( seed, displaySurfaceCreateInfoKHR.imageExtent );
4334  return seed;
4335  }
4336  };
4337 
4338  template <>
4339  struct hash<VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand>
4340  {
4341  std::size_t operator()( VULKAN_HPP_NAMESPACE::DrawIndexedIndirectCommand const & drawIndexedIndirectCommand ) const VULKAN_HPP_NOEXCEPT
4342  {
4343  std::size_t seed = 0;
4344  VULKAN_HPP_HASH_COMBINE( seed, drawIndexedIndirectCommand.indexCount );
4345  VULKAN_HPP_HASH_COMBINE( seed, drawIndexedIndirectCommand.instanceCount );
4346  VULKAN_HPP_HASH_COMBINE( seed, drawIndexedIndirectCommand.firstIndex );
4347  VULKAN_HPP_HASH_COMBINE( seed, drawIndexedIndirectCommand.vertexOffset );
4348  VULKAN_HPP_HASH_COMBINE( seed, drawIndexedIndirectCommand.firstInstance );
4349  return seed;
4350  }
4351  };
4352 
4353  template <>
4354  struct hash<VULKAN_HPP_NAMESPACE::DrawIndirectCommand>
4355  {
4356  std::size_t operator()( VULKAN_HPP_NAMESPACE::DrawIndirectCommand const & drawIndirectCommand ) const VULKAN_HPP_NOEXCEPT
4357  {
4358  std::size_t seed = 0;
4359  VULKAN_HPP_HASH_COMBINE( seed, drawIndirectCommand.vertexCount );
4360  VULKAN_HPP_HASH_COMBINE( seed, drawIndirectCommand.instanceCount );
4361  VULKAN_HPP_HASH_COMBINE( seed, drawIndirectCommand.firstVertex );
4362  VULKAN_HPP_HASH_COMBINE( seed, drawIndirectCommand.firstInstance );
4363  return seed;
4364  }
4365  };
4366 
4367  template <>
4368  struct hash<VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandEXT>
4369  {
4370  std::size_t operator()( VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandEXT const & drawMeshTasksIndirectCommandEXT ) const VULKAN_HPP_NOEXCEPT
4371  {
4372  std::size_t seed = 0;
4373  VULKAN_HPP_HASH_COMBINE( seed, drawMeshTasksIndirectCommandEXT.groupCountX );
4374  VULKAN_HPP_HASH_COMBINE( seed, drawMeshTasksIndirectCommandEXT.groupCountY );
4375  VULKAN_HPP_HASH_COMBINE( seed, drawMeshTasksIndirectCommandEXT.groupCountZ );
4376  return seed;
4377  }
4378  };
4379 
4380  template <>
4381  struct hash<VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV>
4382  {
4383  std::size_t operator()( VULKAN_HPP_NAMESPACE::DrawMeshTasksIndirectCommandNV const & drawMeshTasksIndirectCommandNV ) const VULKAN_HPP_NOEXCEPT
4384  {
4385  std::size_t seed = 0;
4386  VULKAN_HPP_HASH_COMBINE( seed, drawMeshTasksIndirectCommandNV.taskCount );
4387  VULKAN_HPP_HASH_COMBINE( seed, drawMeshTasksIndirectCommandNV.firstTask );
4388  return seed;
4389  }
4390  };
4391 
4392  template <>
4393  struct hash<VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT>
4394  {
4395  std::size_t operator()( VULKAN_HPP_NAMESPACE::DrmFormatModifierProperties2EXT const & drmFormatModifierProperties2EXT ) const VULKAN_HPP_NOEXCEPT
4396  {
4397  std::size_t seed = 0;
4398  VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierProperties2EXT.drmFormatModifier );
4399  VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierProperties2EXT.drmFormatModifierPlaneCount );
4400  VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierProperties2EXT.drmFormatModifierTilingFeatures );
4401  return seed;
4402  }
4403  };
4404 
4405  template <>
4406  struct hash<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT>
4407  {
4408  std::size_t operator()( VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesEXT const & drmFormatModifierPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
4409  {
4410  std::size_t seed = 0;
4411  VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierPropertiesEXT.drmFormatModifier );
4412  VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierPropertiesEXT.drmFormatModifierPlaneCount );
4413  VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierPropertiesEXT.drmFormatModifierTilingFeatures );
4414  return seed;
4415  }
4416  };
4417 
4418  template <>
4419  struct hash<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesList2EXT>
4420  {
4421  std::size_t operator()( VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesList2EXT const & drmFormatModifierPropertiesList2EXT ) const VULKAN_HPP_NOEXCEPT
4422  {
4423  std::size_t seed = 0;
4424  VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierPropertiesList2EXT.sType );
4425  VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierPropertiesList2EXT.pNext );
4426  VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierPropertiesList2EXT.drmFormatModifierCount );
4427  VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierPropertiesList2EXT.pDrmFormatModifierProperties );
4428  return seed;
4429  }
4430  };
4431 
4432  template <>
4433  struct hash<VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT>
4434  {
4435  std::size_t operator()( VULKAN_HPP_NAMESPACE::DrmFormatModifierPropertiesListEXT const & drmFormatModifierPropertiesListEXT ) const VULKAN_HPP_NOEXCEPT
4436  {
4437  std::size_t seed = 0;
4438  VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierPropertiesListEXT.sType );
4439  VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierPropertiesListEXT.pNext );
4440  VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierPropertiesListEXT.drmFormatModifierCount );
4441  VULKAN_HPP_HASH_COMBINE( seed, drmFormatModifierPropertiesListEXT.pDrmFormatModifierProperties );
4442  return seed;
4443  }
4444  };
4445 
4446  template <>
4447  struct hash<VULKAN_HPP_NAMESPACE::EventCreateInfo>
4448  {
4449  std::size_t operator()( VULKAN_HPP_NAMESPACE::EventCreateInfo const & eventCreateInfo ) const VULKAN_HPP_NOEXCEPT
4450  {
4451  std::size_t seed = 0;
4452  VULKAN_HPP_HASH_COMBINE( seed, eventCreateInfo.sType );
4453  VULKAN_HPP_HASH_COMBINE( seed, eventCreateInfo.pNext );
4454  VULKAN_HPP_HASH_COMBINE( seed, eventCreateInfo.flags );
4455  return seed;
4456  }
4457  };
4458 
4459  template <>
4460  struct hash<VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR>
4461  {
4462  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineLibraryCreateInfoKHR const & pipelineLibraryCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
4463  {
4464  std::size_t seed = 0;
4465  VULKAN_HPP_HASH_COMBINE( seed, pipelineLibraryCreateInfoKHR.sType );
4466  VULKAN_HPP_HASH_COMBINE( seed, pipelineLibraryCreateInfoKHR.pNext );
4467  VULKAN_HPP_HASH_COMBINE( seed, pipelineLibraryCreateInfoKHR.libraryCount );
4468  VULKAN_HPP_HASH_COMBINE( seed, pipelineLibraryCreateInfoKHR.pLibraries );
4469  return seed;
4470  }
4471  };
4472 
4473 # if defined( VK_ENABLE_BETA_EXTENSIONS )
4474  template <>
4475  struct hash<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX>
4476  {
4477  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX const & executionGraphPipelineCreateInfoAMDX ) const VULKAN_HPP_NOEXCEPT
4478  {
4479  std::size_t seed = 0;
4480  VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineCreateInfoAMDX.sType );
4481  VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineCreateInfoAMDX.pNext );
4482  VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineCreateInfoAMDX.flags );
4483  VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineCreateInfoAMDX.stageCount );
4484  VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineCreateInfoAMDX.pStages );
4485  VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineCreateInfoAMDX.pLibraryInfo );
4486  VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineCreateInfoAMDX.layout );
4487  VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineCreateInfoAMDX.basePipelineHandle );
4488  VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineCreateInfoAMDX.basePipelineIndex );
4489  return seed;
4490  }
4491  };
4492 # endif /*VK_ENABLE_BETA_EXTENSIONS*/
4493 
4494 # if defined( VK_ENABLE_BETA_EXTENSIONS )
4495  template <>
4496  struct hash<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX>
4497  {
4498  std::size_t
4499  operator()( VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX const & executionGraphPipelineScratchSizeAMDX ) const VULKAN_HPP_NOEXCEPT
4500  {
4501  std::size_t seed = 0;
4502  VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineScratchSizeAMDX.sType );
4503  VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineScratchSizeAMDX.pNext );
4504  VULKAN_HPP_HASH_COMBINE( seed, executionGraphPipelineScratchSizeAMDX.size );
4505  return seed;
4506  }
4507  };
4508 # endif /*VK_ENABLE_BETA_EXTENSIONS*/
4509 
4510  template <>
4511  struct hash<VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo>
4512  {
4513  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportFenceCreateInfo const & exportFenceCreateInfo ) const VULKAN_HPP_NOEXCEPT
4514  {
4515  std::size_t seed = 0;
4516  VULKAN_HPP_HASH_COMBINE( seed, exportFenceCreateInfo.sType );
4517  VULKAN_HPP_HASH_COMBINE( seed, exportFenceCreateInfo.pNext );
4518  VULKAN_HPP_HASH_COMBINE( seed, exportFenceCreateInfo.handleTypes );
4519  return seed;
4520  }
4521  };
4522 
4523 # if defined( VK_USE_PLATFORM_WIN32_KHR )
4524  template <>
4525  struct hash<VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR>
4526  {
4527  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportFenceWin32HandleInfoKHR const & exportFenceWin32HandleInfoKHR ) const VULKAN_HPP_NOEXCEPT
4528  {
4529  std::size_t seed = 0;
4530  VULKAN_HPP_HASH_COMBINE( seed, exportFenceWin32HandleInfoKHR.sType );
4531  VULKAN_HPP_HASH_COMBINE( seed, exportFenceWin32HandleInfoKHR.pNext );
4532  VULKAN_HPP_HASH_COMBINE( seed, exportFenceWin32HandleInfoKHR.pAttributes );
4533  VULKAN_HPP_HASH_COMBINE( seed, exportFenceWin32HandleInfoKHR.dwAccess );
4534  VULKAN_HPP_HASH_COMBINE( seed, exportFenceWin32HandleInfoKHR.name );
4535  return seed;
4536  }
4537  };
4538 # endif /*VK_USE_PLATFORM_WIN32_KHR*/
4539 
4540  template <>
4541  struct hash<VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo>
4542  {
4543  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfo const & exportMemoryAllocateInfo ) const VULKAN_HPP_NOEXCEPT
4544  {
4545  std::size_t seed = 0;
4546  VULKAN_HPP_HASH_COMBINE( seed, exportMemoryAllocateInfo.sType );
4547  VULKAN_HPP_HASH_COMBINE( seed, exportMemoryAllocateInfo.pNext );
4548  VULKAN_HPP_HASH_COMBINE( seed, exportMemoryAllocateInfo.handleTypes );
4549  return seed;
4550  }
4551  };
4552 
4553  template <>
4554  struct hash<VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV>
4555  {
4556  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMemoryAllocateInfoNV const & exportMemoryAllocateInfoNV ) const VULKAN_HPP_NOEXCEPT
4557  {
4558  std::size_t seed = 0;
4559  VULKAN_HPP_HASH_COMBINE( seed, exportMemoryAllocateInfoNV.sType );
4560  VULKAN_HPP_HASH_COMBINE( seed, exportMemoryAllocateInfoNV.pNext );
4561  VULKAN_HPP_HASH_COMBINE( seed, exportMemoryAllocateInfoNV.handleTypes );
4562  return seed;
4563  }
4564  };
4565 
4566 # if defined( VK_USE_PLATFORM_WIN32_KHR )
4567  template <>
4568  struct hash<VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR>
4569  {
4570  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoKHR const & exportMemoryWin32HandleInfoKHR ) const VULKAN_HPP_NOEXCEPT
4571  {
4572  std::size_t seed = 0;
4573  VULKAN_HPP_HASH_COMBINE( seed, exportMemoryWin32HandleInfoKHR.sType );
4574  VULKAN_HPP_HASH_COMBINE( seed, exportMemoryWin32HandleInfoKHR.pNext );
4575  VULKAN_HPP_HASH_COMBINE( seed, exportMemoryWin32HandleInfoKHR.pAttributes );
4576  VULKAN_HPP_HASH_COMBINE( seed, exportMemoryWin32HandleInfoKHR.dwAccess );
4577  VULKAN_HPP_HASH_COMBINE( seed, exportMemoryWin32HandleInfoKHR.name );
4578  return seed;
4579  }
4580  };
4581 # endif /*VK_USE_PLATFORM_WIN32_KHR*/
4582 
4583 # if defined( VK_USE_PLATFORM_WIN32_KHR )
4584  template <>
4585  struct hash<VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV>
4586  {
4587  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMemoryWin32HandleInfoNV const & exportMemoryWin32HandleInfoNV ) const VULKAN_HPP_NOEXCEPT
4588  {
4589  std::size_t seed = 0;
4590  VULKAN_HPP_HASH_COMBINE( seed, exportMemoryWin32HandleInfoNV.sType );
4591  VULKAN_HPP_HASH_COMBINE( seed, exportMemoryWin32HandleInfoNV.pNext );
4592  VULKAN_HPP_HASH_COMBINE( seed, exportMemoryWin32HandleInfoNV.pAttributes );
4593  VULKAN_HPP_HASH_COMBINE( seed, exportMemoryWin32HandleInfoNV.dwAccess );
4594  return seed;
4595  }
4596  };
4597 # endif /*VK_USE_PLATFORM_WIN32_KHR*/
4598 
4599 # if defined( VK_USE_PLATFORM_METAL_EXT )
4600  template <>
4601  struct hash<VULKAN_HPP_NAMESPACE::ExportMetalBufferInfoEXT>
4602  {
4603  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMetalBufferInfoEXT const & exportMetalBufferInfoEXT ) const VULKAN_HPP_NOEXCEPT
4604  {
4605  std::size_t seed = 0;
4606  VULKAN_HPP_HASH_COMBINE( seed, exportMetalBufferInfoEXT.sType );
4607  VULKAN_HPP_HASH_COMBINE( seed, exportMetalBufferInfoEXT.pNext );
4608  VULKAN_HPP_HASH_COMBINE( seed, exportMetalBufferInfoEXT.memory );
4609  VULKAN_HPP_HASH_COMBINE( seed, exportMetalBufferInfoEXT.mtlBuffer );
4610  return seed;
4611  }
4612  };
4613 # endif /*VK_USE_PLATFORM_METAL_EXT*/
4614 
4615 # if defined( VK_USE_PLATFORM_METAL_EXT )
4616  template <>
4617  struct hash<VULKAN_HPP_NAMESPACE::ExportMetalCommandQueueInfoEXT>
4618  {
4619  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMetalCommandQueueInfoEXT const & exportMetalCommandQueueInfoEXT ) const VULKAN_HPP_NOEXCEPT
4620  {
4621  std::size_t seed = 0;
4622  VULKAN_HPP_HASH_COMBINE( seed, exportMetalCommandQueueInfoEXT.sType );
4623  VULKAN_HPP_HASH_COMBINE( seed, exportMetalCommandQueueInfoEXT.pNext );
4624  VULKAN_HPP_HASH_COMBINE( seed, exportMetalCommandQueueInfoEXT.queue );
4625  VULKAN_HPP_HASH_COMBINE( seed, exportMetalCommandQueueInfoEXT.mtlCommandQueue );
4626  return seed;
4627  }
4628  };
4629 # endif /*VK_USE_PLATFORM_METAL_EXT*/
4630 
4631 # if defined( VK_USE_PLATFORM_METAL_EXT )
4632  template <>
4633  struct hash<VULKAN_HPP_NAMESPACE::ExportMetalDeviceInfoEXT>
4634  {
4635  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMetalDeviceInfoEXT const & exportMetalDeviceInfoEXT ) const VULKAN_HPP_NOEXCEPT
4636  {
4637  std::size_t seed = 0;
4638  VULKAN_HPP_HASH_COMBINE( seed, exportMetalDeviceInfoEXT.sType );
4639  VULKAN_HPP_HASH_COMBINE( seed, exportMetalDeviceInfoEXT.pNext );
4640  VULKAN_HPP_HASH_COMBINE( seed, exportMetalDeviceInfoEXT.mtlDevice );
4641  return seed;
4642  }
4643  };
4644 # endif /*VK_USE_PLATFORM_METAL_EXT*/
4645 
4646 # if defined( VK_USE_PLATFORM_METAL_EXT )
4647  template <>
4648  struct hash<VULKAN_HPP_NAMESPACE::ExportMetalIOSurfaceInfoEXT>
4649  {
4650  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMetalIOSurfaceInfoEXT const & exportMetalIOSurfaceInfoEXT ) const VULKAN_HPP_NOEXCEPT
4651  {
4652  std::size_t seed = 0;
4653  VULKAN_HPP_HASH_COMBINE( seed, exportMetalIOSurfaceInfoEXT.sType );
4654  VULKAN_HPP_HASH_COMBINE( seed, exportMetalIOSurfaceInfoEXT.pNext );
4655  VULKAN_HPP_HASH_COMBINE( seed, exportMetalIOSurfaceInfoEXT.image );
4656  VULKAN_HPP_HASH_COMBINE( seed, exportMetalIOSurfaceInfoEXT.ioSurface );
4657  return seed;
4658  }
4659  };
4660 # endif /*VK_USE_PLATFORM_METAL_EXT*/
4661 
4662 # if defined( VK_USE_PLATFORM_METAL_EXT )
4663  template <>
4664  struct hash<VULKAN_HPP_NAMESPACE::ExportMetalObjectCreateInfoEXT>
4665  {
4666  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMetalObjectCreateInfoEXT const & exportMetalObjectCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
4667  {
4668  std::size_t seed = 0;
4669  VULKAN_HPP_HASH_COMBINE( seed, exportMetalObjectCreateInfoEXT.sType );
4670  VULKAN_HPP_HASH_COMBINE( seed, exportMetalObjectCreateInfoEXT.pNext );
4671  VULKAN_HPP_HASH_COMBINE( seed, exportMetalObjectCreateInfoEXT.exportObjectType );
4672  return seed;
4673  }
4674  };
4675 # endif /*VK_USE_PLATFORM_METAL_EXT*/
4676 
4677 # if defined( VK_USE_PLATFORM_METAL_EXT )
4678  template <>
4679  struct hash<VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT>
4680  {
4681  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT const & exportMetalObjectsInfoEXT ) const VULKAN_HPP_NOEXCEPT
4682  {
4683  std::size_t seed = 0;
4684  VULKAN_HPP_HASH_COMBINE( seed, exportMetalObjectsInfoEXT.sType );
4685  VULKAN_HPP_HASH_COMBINE( seed, exportMetalObjectsInfoEXT.pNext );
4686  return seed;
4687  }
4688  };
4689 # endif /*VK_USE_PLATFORM_METAL_EXT*/
4690 
4691 # if defined( VK_USE_PLATFORM_METAL_EXT )
4692  template <>
4693  struct hash<VULKAN_HPP_NAMESPACE::ExportMetalSharedEventInfoEXT>
4694  {
4695  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMetalSharedEventInfoEXT const & exportMetalSharedEventInfoEXT ) const VULKAN_HPP_NOEXCEPT
4696  {
4697  std::size_t seed = 0;
4698  VULKAN_HPP_HASH_COMBINE( seed, exportMetalSharedEventInfoEXT.sType );
4699  VULKAN_HPP_HASH_COMBINE( seed, exportMetalSharedEventInfoEXT.pNext );
4700  VULKAN_HPP_HASH_COMBINE( seed, exportMetalSharedEventInfoEXT.semaphore );
4701  VULKAN_HPP_HASH_COMBINE( seed, exportMetalSharedEventInfoEXT.event );
4702  VULKAN_HPP_HASH_COMBINE( seed, exportMetalSharedEventInfoEXT.mtlSharedEvent );
4703  return seed;
4704  }
4705  };
4706 # endif /*VK_USE_PLATFORM_METAL_EXT*/
4707 
4708 # if defined( VK_USE_PLATFORM_METAL_EXT )
4709  template <>
4710  struct hash<VULKAN_HPP_NAMESPACE::ExportMetalTextureInfoEXT>
4711  {
4712  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportMetalTextureInfoEXT const & exportMetalTextureInfoEXT ) const VULKAN_HPP_NOEXCEPT
4713  {
4714  std::size_t seed = 0;
4715  VULKAN_HPP_HASH_COMBINE( seed, exportMetalTextureInfoEXT.sType );
4716  VULKAN_HPP_HASH_COMBINE( seed, exportMetalTextureInfoEXT.pNext );
4717  VULKAN_HPP_HASH_COMBINE( seed, exportMetalTextureInfoEXT.image );
4718  VULKAN_HPP_HASH_COMBINE( seed, exportMetalTextureInfoEXT.imageView );
4719  VULKAN_HPP_HASH_COMBINE( seed, exportMetalTextureInfoEXT.bufferView );
4720  VULKAN_HPP_HASH_COMBINE( seed, exportMetalTextureInfoEXT.plane );
4721  VULKAN_HPP_HASH_COMBINE( seed, exportMetalTextureInfoEXT.mtlTexture );
4722  return seed;
4723  }
4724  };
4725 # endif /*VK_USE_PLATFORM_METAL_EXT*/
4726 
4727  template <>
4728  struct hash<VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo>
4729  {
4730  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportSemaphoreCreateInfo const & exportSemaphoreCreateInfo ) const VULKAN_HPP_NOEXCEPT
4731  {
4732  std::size_t seed = 0;
4733  VULKAN_HPP_HASH_COMBINE( seed, exportSemaphoreCreateInfo.sType );
4734  VULKAN_HPP_HASH_COMBINE( seed, exportSemaphoreCreateInfo.pNext );
4735  VULKAN_HPP_HASH_COMBINE( seed, exportSemaphoreCreateInfo.handleTypes );
4736  return seed;
4737  }
4738  };
4739 
4740 # if defined( VK_USE_PLATFORM_WIN32_KHR )
4741  template <>
4742  struct hash<VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR>
4743  {
4744  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExportSemaphoreWin32HandleInfoKHR const & exportSemaphoreWin32HandleInfoKHR ) const VULKAN_HPP_NOEXCEPT
4745  {
4746  std::size_t seed = 0;
4747  VULKAN_HPP_HASH_COMBINE( seed, exportSemaphoreWin32HandleInfoKHR.sType );
4748  VULKAN_HPP_HASH_COMBINE( seed, exportSemaphoreWin32HandleInfoKHR.pNext );
4749  VULKAN_HPP_HASH_COMBINE( seed, exportSemaphoreWin32HandleInfoKHR.pAttributes );
4750  VULKAN_HPP_HASH_COMBINE( seed, exportSemaphoreWin32HandleInfoKHR.dwAccess );
4751  VULKAN_HPP_HASH_COMBINE( seed, exportSemaphoreWin32HandleInfoKHR.name );
4752  return seed;
4753  }
4754  };
4755 # endif /*VK_USE_PLATFORM_WIN32_KHR*/
4756 
4757  template <>
4758  struct hash<VULKAN_HPP_NAMESPACE::ExtensionProperties>
4759  {
4760  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExtensionProperties const & extensionProperties ) const VULKAN_HPP_NOEXCEPT
4761  {
4762  std::size_t seed = 0;
4763  for ( size_t i = 0; i < VK_MAX_EXTENSION_NAME_SIZE; ++i )
4764  {
4765  VULKAN_HPP_HASH_COMBINE( seed, extensionProperties.extensionName[i] );
4766  }
4767  VULKAN_HPP_HASH_COMBINE( seed, extensionProperties.specVersion );
4768  return seed;
4769  }
4770  };
4771 
4772  template <>
4773  struct hash<VULKAN_HPP_NAMESPACE::ExternalMemoryProperties>
4774  {
4775  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalMemoryProperties const & externalMemoryProperties ) const VULKAN_HPP_NOEXCEPT
4776  {
4777  std::size_t seed = 0;
4778  VULKAN_HPP_HASH_COMBINE( seed, externalMemoryProperties.externalMemoryFeatures );
4779  VULKAN_HPP_HASH_COMBINE( seed, externalMemoryProperties.exportFromImportedHandleTypes );
4780  VULKAN_HPP_HASH_COMBINE( seed, externalMemoryProperties.compatibleHandleTypes );
4781  return seed;
4782  }
4783  };
4784 
4785  template <>
4786  struct hash<VULKAN_HPP_NAMESPACE::ExternalBufferProperties>
4787  {
4788  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalBufferProperties const & externalBufferProperties ) const VULKAN_HPP_NOEXCEPT
4789  {
4790  std::size_t seed = 0;
4791  VULKAN_HPP_HASH_COMBINE( seed, externalBufferProperties.sType );
4792  VULKAN_HPP_HASH_COMBINE( seed, externalBufferProperties.pNext );
4793  VULKAN_HPP_HASH_COMBINE( seed, externalBufferProperties.externalMemoryProperties );
4794  return seed;
4795  }
4796  };
4797 
4798  template <>
4799  struct hash<VULKAN_HPP_NAMESPACE::ExternalFenceProperties>
4800  {
4801  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalFenceProperties const & externalFenceProperties ) const VULKAN_HPP_NOEXCEPT
4802  {
4803  std::size_t seed = 0;
4804  VULKAN_HPP_HASH_COMBINE( seed, externalFenceProperties.sType );
4805  VULKAN_HPP_HASH_COMBINE( seed, externalFenceProperties.pNext );
4806  VULKAN_HPP_HASH_COMBINE( seed, externalFenceProperties.exportFromImportedHandleTypes );
4807  VULKAN_HPP_HASH_COMBINE( seed, externalFenceProperties.compatibleHandleTypes );
4808  VULKAN_HPP_HASH_COMBINE( seed, externalFenceProperties.externalFenceFeatures );
4809  return seed;
4810  }
4811  };
4812 
4813 # if defined( VK_USE_PLATFORM_ANDROID_KHR )
4814  template <>
4815  struct hash<VULKAN_HPP_NAMESPACE::ExternalFormatANDROID>
4816  {
4817  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalFormatANDROID const & externalFormatANDROID ) const VULKAN_HPP_NOEXCEPT
4818  {
4819  std::size_t seed = 0;
4820  VULKAN_HPP_HASH_COMBINE( seed, externalFormatANDROID.sType );
4821  VULKAN_HPP_HASH_COMBINE( seed, externalFormatANDROID.pNext );
4822  VULKAN_HPP_HASH_COMBINE( seed, externalFormatANDROID.externalFormat );
4823  return seed;
4824  }
4825  };
4826 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
4827 
4828 # if defined( VK_USE_PLATFORM_SCREEN_QNX )
4829  template <>
4830  struct hash<VULKAN_HPP_NAMESPACE::ExternalFormatQNX>
4831  {
4832  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalFormatQNX const & externalFormatQNX ) const VULKAN_HPP_NOEXCEPT
4833  {
4834  std::size_t seed = 0;
4835  VULKAN_HPP_HASH_COMBINE( seed, externalFormatQNX.sType );
4836  VULKAN_HPP_HASH_COMBINE( seed, externalFormatQNX.pNext );
4837  VULKAN_HPP_HASH_COMBINE( seed, externalFormatQNX.externalFormat );
4838  return seed;
4839  }
4840  };
4841 # endif /*VK_USE_PLATFORM_SCREEN_QNX*/
4842 
4843  template <>
4844  struct hash<VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties>
4845  {
4846  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalImageFormatProperties const & externalImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
4847  {
4848  std::size_t seed = 0;
4849  VULKAN_HPP_HASH_COMBINE( seed, externalImageFormatProperties.sType );
4850  VULKAN_HPP_HASH_COMBINE( seed, externalImageFormatProperties.pNext );
4851  VULKAN_HPP_HASH_COMBINE( seed, externalImageFormatProperties.externalMemoryProperties );
4852  return seed;
4853  }
4854  };
4855 
4856  template <>
4857  struct hash<VULKAN_HPP_NAMESPACE::ImageFormatProperties>
4858  {
4859  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageFormatProperties const & imageFormatProperties ) const VULKAN_HPP_NOEXCEPT
4860  {
4861  std::size_t seed = 0;
4862  VULKAN_HPP_HASH_COMBINE( seed, imageFormatProperties.maxExtent );
4863  VULKAN_HPP_HASH_COMBINE( seed, imageFormatProperties.maxMipLevels );
4864  VULKAN_HPP_HASH_COMBINE( seed, imageFormatProperties.maxArrayLayers );
4865  VULKAN_HPP_HASH_COMBINE( seed, imageFormatProperties.sampleCounts );
4866  VULKAN_HPP_HASH_COMBINE( seed, imageFormatProperties.maxResourceSize );
4867  return seed;
4868  }
4869  };
4870 
4871  template <>
4872  struct hash<VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV>
4873  {
4874  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV const & externalImageFormatPropertiesNV ) const VULKAN_HPP_NOEXCEPT
4875  {
4876  std::size_t seed = 0;
4877  VULKAN_HPP_HASH_COMBINE( seed, externalImageFormatPropertiesNV.imageFormatProperties );
4878  VULKAN_HPP_HASH_COMBINE( seed, externalImageFormatPropertiesNV.externalMemoryFeatures );
4879  VULKAN_HPP_HASH_COMBINE( seed, externalImageFormatPropertiesNV.exportFromImportedHandleTypes );
4880  VULKAN_HPP_HASH_COMBINE( seed, externalImageFormatPropertiesNV.compatibleHandleTypes );
4881  return seed;
4882  }
4883  };
4884 
4885  template <>
4886  struct hash<VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT>
4887  {
4888  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalMemoryAcquireUnmodifiedEXT const & externalMemoryAcquireUnmodifiedEXT ) const VULKAN_HPP_NOEXCEPT
4889  {
4890  std::size_t seed = 0;
4891  VULKAN_HPP_HASH_COMBINE( seed, externalMemoryAcquireUnmodifiedEXT.sType );
4892  VULKAN_HPP_HASH_COMBINE( seed, externalMemoryAcquireUnmodifiedEXT.pNext );
4893  VULKAN_HPP_HASH_COMBINE( seed, externalMemoryAcquireUnmodifiedEXT.acquireUnmodifiedMemory );
4894  return seed;
4895  }
4896  };
4897 
4898  template <>
4899  struct hash<VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo>
4900  {
4901  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalMemoryBufferCreateInfo const & externalMemoryBufferCreateInfo ) const VULKAN_HPP_NOEXCEPT
4902  {
4903  std::size_t seed = 0;
4904  VULKAN_HPP_HASH_COMBINE( seed, externalMemoryBufferCreateInfo.sType );
4905  VULKAN_HPP_HASH_COMBINE( seed, externalMemoryBufferCreateInfo.pNext );
4906  VULKAN_HPP_HASH_COMBINE( seed, externalMemoryBufferCreateInfo.handleTypes );
4907  return seed;
4908  }
4909  };
4910 
4911  template <>
4912  struct hash<VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo>
4913  {
4914  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfo const & externalMemoryImageCreateInfo ) const VULKAN_HPP_NOEXCEPT
4915  {
4916  std::size_t seed = 0;
4917  VULKAN_HPP_HASH_COMBINE( seed, externalMemoryImageCreateInfo.sType );
4918  VULKAN_HPP_HASH_COMBINE( seed, externalMemoryImageCreateInfo.pNext );
4919  VULKAN_HPP_HASH_COMBINE( seed, externalMemoryImageCreateInfo.handleTypes );
4920  return seed;
4921  }
4922  };
4923 
4924  template <>
4925  struct hash<VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV>
4926  {
4927  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalMemoryImageCreateInfoNV const & externalMemoryImageCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
4928  {
4929  std::size_t seed = 0;
4930  VULKAN_HPP_HASH_COMBINE( seed, externalMemoryImageCreateInfoNV.sType );
4931  VULKAN_HPP_HASH_COMBINE( seed, externalMemoryImageCreateInfoNV.pNext );
4932  VULKAN_HPP_HASH_COMBINE( seed, externalMemoryImageCreateInfoNV.handleTypes );
4933  return seed;
4934  }
4935  };
4936 
4937  template <>
4938  struct hash<VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties>
4939  {
4940  std::size_t operator()( VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties const & externalSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT
4941  {
4942  std::size_t seed = 0;
4943  VULKAN_HPP_HASH_COMBINE( seed, externalSemaphoreProperties.sType );
4944  VULKAN_HPP_HASH_COMBINE( seed, externalSemaphoreProperties.pNext );
4945  VULKAN_HPP_HASH_COMBINE( seed, externalSemaphoreProperties.exportFromImportedHandleTypes );
4946  VULKAN_HPP_HASH_COMBINE( seed, externalSemaphoreProperties.compatibleHandleTypes );
4947  VULKAN_HPP_HASH_COMBINE( seed, externalSemaphoreProperties.externalSemaphoreFeatures );
4948  return seed;
4949  }
4950  };
4951 
4952  template <>
4953  struct hash<VULKAN_HPP_NAMESPACE::FenceCreateInfo>
4954  {
4955  std::size_t operator()( VULKAN_HPP_NAMESPACE::FenceCreateInfo const & fenceCreateInfo ) const VULKAN_HPP_NOEXCEPT
4956  {
4957  std::size_t seed = 0;
4958  VULKAN_HPP_HASH_COMBINE( seed, fenceCreateInfo.sType );
4959  VULKAN_HPP_HASH_COMBINE( seed, fenceCreateInfo.pNext );
4960  VULKAN_HPP_HASH_COMBINE( seed, fenceCreateInfo.flags );
4961  return seed;
4962  }
4963  };
4964 
4965  template <>
4966  struct hash<VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR>
4967  {
4968  std::size_t operator()( VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR const & fenceGetFdInfoKHR ) const VULKAN_HPP_NOEXCEPT
4969  {
4970  std::size_t seed = 0;
4971  VULKAN_HPP_HASH_COMBINE( seed, fenceGetFdInfoKHR.sType );
4972  VULKAN_HPP_HASH_COMBINE( seed, fenceGetFdInfoKHR.pNext );
4973  VULKAN_HPP_HASH_COMBINE( seed, fenceGetFdInfoKHR.fence );
4974  VULKAN_HPP_HASH_COMBINE( seed, fenceGetFdInfoKHR.handleType );
4975  return seed;
4976  }
4977  };
4978 
4979 # if defined( VK_USE_PLATFORM_WIN32_KHR )
4980  template <>
4981  struct hash<VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR>
4982  {
4983  std::size_t operator()( VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR const & fenceGetWin32HandleInfoKHR ) const VULKAN_HPP_NOEXCEPT
4984  {
4985  std::size_t seed = 0;
4986  VULKAN_HPP_HASH_COMBINE( seed, fenceGetWin32HandleInfoKHR.sType );
4987  VULKAN_HPP_HASH_COMBINE( seed, fenceGetWin32HandleInfoKHR.pNext );
4988  VULKAN_HPP_HASH_COMBINE( seed, fenceGetWin32HandleInfoKHR.fence );
4989  VULKAN_HPP_HASH_COMBINE( seed, fenceGetWin32HandleInfoKHR.handleType );
4990  return seed;
4991  }
4992  };
4993 # endif /*VK_USE_PLATFORM_WIN32_KHR*/
4994 
4995  template <>
4996  struct hash<VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT>
4997  {
4998  std::size_t operator()( VULKAN_HPP_NAMESPACE::FilterCubicImageViewImageFormatPropertiesEXT const & filterCubicImageViewImageFormatPropertiesEXT ) const
5000  {
5001  std::size_t seed = 0;
5002  VULKAN_HPP_HASH_COMBINE( seed, filterCubicImageViewImageFormatPropertiesEXT.sType );
5003  VULKAN_HPP_HASH_COMBINE( seed, filterCubicImageViewImageFormatPropertiesEXT.pNext );
5004  VULKAN_HPP_HASH_COMBINE( seed, filterCubicImageViewImageFormatPropertiesEXT.filterCubic );
5005  VULKAN_HPP_HASH_COMBINE( seed, filterCubicImageViewImageFormatPropertiesEXT.filterCubicMinmax );
5006  return seed;
5007  }
5008  };
5009 
5010  template <>
5011  struct hash<VULKAN_HPP_NAMESPACE::FormatProperties>
5012  {
5013  std::size_t operator()( VULKAN_HPP_NAMESPACE::FormatProperties const & formatProperties ) const VULKAN_HPP_NOEXCEPT
5014  {
5015  std::size_t seed = 0;
5016  VULKAN_HPP_HASH_COMBINE( seed, formatProperties.linearTilingFeatures );
5017  VULKAN_HPP_HASH_COMBINE( seed, formatProperties.optimalTilingFeatures );
5018  VULKAN_HPP_HASH_COMBINE( seed, formatProperties.bufferFeatures );
5019  return seed;
5020  }
5021  };
5022 
5023  template <>
5024  struct hash<VULKAN_HPP_NAMESPACE::FormatProperties2>
5025  {
5026  std::size_t operator()( VULKAN_HPP_NAMESPACE::FormatProperties2 const & formatProperties2 ) const VULKAN_HPP_NOEXCEPT
5027  {
5028  std::size_t seed = 0;
5029  VULKAN_HPP_HASH_COMBINE( seed, formatProperties2.sType );
5030  VULKAN_HPP_HASH_COMBINE( seed, formatProperties2.pNext );
5031  VULKAN_HPP_HASH_COMBINE( seed, formatProperties2.formatProperties );
5032  return seed;
5033  }
5034  };
5035 
5036  template <>
5037  struct hash<VULKAN_HPP_NAMESPACE::FormatProperties3>
5038  {
5039  std::size_t operator()( VULKAN_HPP_NAMESPACE::FormatProperties3 const & formatProperties3 ) const VULKAN_HPP_NOEXCEPT
5040  {
5041  std::size_t seed = 0;
5042  VULKAN_HPP_HASH_COMBINE( seed, formatProperties3.sType );
5043  VULKAN_HPP_HASH_COMBINE( seed, formatProperties3.pNext );
5044  VULKAN_HPP_HASH_COMBINE( seed, formatProperties3.linearTilingFeatures );
5045  VULKAN_HPP_HASH_COMBINE( seed, formatProperties3.optimalTilingFeatures );
5046  VULKAN_HPP_HASH_COMBINE( seed, formatProperties3.bufferFeatures );
5047  return seed;
5048  }
5049  };
5050 
5051  template <>
5052  struct hash<VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR>
5053  {
5054  std::size_t operator()( VULKAN_HPP_NAMESPACE::FragmentShadingRateAttachmentInfoKHR const & fragmentShadingRateAttachmentInfoKHR ) const VULKAN_HPP_NOEXCEPT
5055  {
5056  std::size_t seed = 0;
5057  VULKAN_HPP_HASH_COMBINE( seed, fragmentShadingRateAttachmentInfoKHR.sType );
5058  VULKAN_HPP_HASH_COMBINE( seed, fragmentShadingRateAttachmentInfoKHR.pNext );
5059  VULKAN_HPP_HASH_COMBINE( seed, fragmentShadingRateAttachmentInfoKHR.pFragmentShadingRateAttachment );
5060  VULKAN_HPP_HASH_COMBINE( seed, fragmentShadingRateAttachmentInfoKHR.shadingRateAttachmentTexelSize );
5061  return seed;
5062  }
5063  };
5064 
5065  template <>
5066  struct hash<VULKAN_HPP_NAMESPACE::FrameBoundaryEXT>
5067  {
5068  std::size_t operator()( VULKAN_HPP_NAMESPACE::FrameBoundaryEXT const & frameBoundaryEXT ) const VULKAN_HPP_NOEXCEPT
5069  {
5070  std::size_t seed = 0;
5071  VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.sType );
5072  VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.pNext );
5073  VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.flags );
5074  VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.frameID );
5075  VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.imageCount );
5076  VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.pImages );
5077  VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.bufferCount );
5078  VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.pBuffers );
5079  VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.tagName );
5080  VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.tagSize );
5081  VULKAN_HPP_HASH_COMBINE( seed, frameBoundaryEXT.pTag );
5082  return seed;
5083  }
5084  };
5085 
5086  template <>
5087  struct hash<VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo>
5088  {
5089  std::size_t operator()( VULKAN_HPP_NAMESPACE::FramebufferAttachmentImageInfo const & framebufferAttachmentImageInfo ) const VULKAN_HPP_NOEXCEPT
5090  {
5091  std::size_t seed = 0;
5092  VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentImageInfo.sType );
5093  VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentImageInfo.pNext );
5094  VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentImageInfo.flags );
5095  VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentImageInfo.usage );
5096  VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentImageInfo.width );
5097  VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentImageInfo.height );
5098  VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentImageInfo.layerCount );
5099  VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentImageInfo.viewFormatCount );
5100  VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentImageInfo.pViewFormats );
5101  return seed;
5102  }
5103  };
5104 
5105  template <>
5106  struct hash<VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo>
5107  {
5108  std::size_t operator()( VULKAN_HPP_NAMESPACE::FramebufferAttachmentsCreateInfo const & framebufferAttachmentsCreateInfo ) const VULKAN_HPP_NOEXCEPT
5109  {
5110  std::size_t seed = 0;
5111  VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentsCreateInfo.sType );
5112  VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentsCreateInfo.pNext );
5113  VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentsCreateInfo.attachmentImageInfoCount );
5114  VULKAN_HPP_HASH_COMBINE( seed, framebufferAttachmentsCreateInfo.pAttachmentImageInfos );
5115  return seed;
5116  }
5117  };
5118 
5119  template <>
5120  struct hash<VULKAN_HPP_NAMESPACE::FramebufferCreateInfo>
5121  {
5122  std::size_t operator()( VULKAN_HPP_NAMESPACE::FramebufferCreateInfo const & framebufferCreateInfo ) const VULKAN_HPP_NOEXCEPT
5123  {
5124  std::size_t seed = 0;
5125  VULKAN_HPP_HASH_COMBINE( seed, framebufferCreateInfo.sType );
5126  VULKAN_HPP_HASH_COMBINE( seed, framebufferCreateInfo.pNext );
5127  VULKAN_HPP_HASH_COMBINE( seed, framebufferCreateInfo.flags );
5128  VULKAN_HPP_HASH_COMBINE( seed, framebufferCreateInfo.renderPass );
5129  VULKAN_HPP_HASH_COMBINE( seed, framebufferCreateInfo.attachmentCount );
5130  VULKAN_HPP_HASH_COMBINE( seed, framebufferCreateInfo.pAttachments );
5131  VULKAN_HPP_HASH_COMBINE( seed, framebufferCreateInfo.width );
5132  VULKAN_HPP_HASH_COMBINE( seed, framebufferCreateInfo.height );
5133  VULKAN_HPP_HASH_COMBINE( seed, framebufferCreateInfo.layers );
5134  return seed;
5135  }
5136  };
5137 
5138  template <>
5139  struct hash<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV>
5140  {
5141  std::size_t operator()( VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV const & framebufferMixedSamplesCombinationNV ) const VULKAN_HPP_NOEXCEPT
5142  {
5143  std::size_t seed = 0;
5144  VULKAN_HPP_HASH_COMBINE( seed, framebufferMixedSamplesCombinationNV.sType );
5145  VULKAN_HPP_HASH_COMBINE( seed, framebufferMixedSamplesCombinationNV.pNext );
5146  VULKAN_HPP_HASH_COMBINE( seed, framebufferMixedSamplesCombinationNV.coverageReductionMode );
5147  VULKAN_HPP_HASH_COMBINE( seed, framebufferMixedSamplesCombinationNV.rasterizationSamples );
5148  VULKAN_HPP_HASH_COMBINE( seed, framebufferMixedSamplesCombinationNV.depthStencilSamples );
5149  VULKAN_HPP_HASH_COMBINE( seed, framebufferMixedSamplesCombinationNV.colorSamples );
5150  return seed;
5151  }
5152  };
5153 
5154  template <>
5155  struct hash<VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV>
5156  {
5157  std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectCommandsStreamNV const & indirectCommandsStreamNV ) const VULKAN_HPP_NOEXCEPT
5158  {
5159  std::size_t seed = 0;
5160  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsStreamNV.buffer );
5161  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsStreamNV.offset );
5162  return seed;
5163  }
5164  };
5165 
5166  template <>
5167  struct hash<VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV>
5168  {
5169  std::size_t operator()( VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV const & generatedCommandsInfoNV ) const VULKAN_HPP_NOEXCEPT
5170  {
5171  std::size_t seed = 0;
5172  VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.sType );
5173  VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.pNext );
5174  VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.pipelineBindPoint );
5175  VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.pipeline );
5176  VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.indirectCommandsLayout );
5177  VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.streamCount );
5178  VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.pStreams );
5179  VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.sequencesCount );
5180  VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.preprocessBuffer );
5181  VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.preprocessOffset );
5182  VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.preprocessSize );
5183  VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.sequencesCountBuffer );
5184  VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.sequencesCountOffset );
5185  VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.sequencesIndexBuffer );
5186  VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsInfoNV.sequencesIndexOffset );
5187  return seed;
5188  }
5189  };
5190 
5191  template <>
5192  struct hash<VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV>
5193  {
5194  std::size_t
5195  operator()( VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV const & generatedCommandsMemoryRequirementsInfoNV ) const VULKAN_HPP_NOEXCEPT
5196  {
5197  std::size_t seed = 0;
5198  VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsMemoryRequirementsInfoNV.sType );
5199  VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsMemoryRequirementsInfoNV.pNext );
5200  VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsMemoryRequirementsInfoNV.pipelineBindPoint );
5201  VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsMemoryRequirementsInfoNV.pipeline );
5202  VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsMemoryRequirementsInfoNV.indirectCommandsLayout );
5203  VULKAN_HPP_HASH_COMBINE( seed, generatedCommandsMemoryRequirementsInfoNV.maxSequencesCount );
5204  return seed;
5205  }
5206  };
5207 
5208  template <>
5209  struct hash<VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV>
5210  {
5211  std::size_t operator()( VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV const & latencyTimingsFrameReportNV ) const VULKAN_HPP_NOEXCEPT
5212  {
5213  std::size_t seed = 0;
5214  VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.sType );
5215  VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.pNext );
5216  VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.presentID );
5217  VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.inputSampleTimeUs );
5218  VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.simStartTimeUs );
5219  VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.simEndTimeUs );
5220  VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.renderSubmitStartTimeUs );
5221  VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.renderSubmitEndTimeUs );
5222  VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.presentStartTimeUs );
5223  VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.presentEndTimeUs );
5224  VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.driverStartTimeUs );
5225  VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.driverEndTimeUs );
5226  VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.osRenderQueueStartTimeUs );
5227  VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.osRenderQueueEndTimeUs );
5228  VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.gpuRenderStartTimeUs );
5229  VULKAN_HPP_HASH_COMBINE( seed, latencyTimingsFrameReportNV.gpuRenderEndTimeUs );
5230  return seed;
5231  }
5232  };
5233 
5234  template <>
5235  struct hash<VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV>
5236  {
5237  std::size_t operator()( VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV const & getLatencyMarkerInfoNV ) const VULKAN_HPP_NOEXCEPT
5238  {
5239  std::size_t seed = 0;
5240  VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.sType );
5241  VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.pNext );
5242  VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.timingCount );
5243  VULKAN_HPP_HASH_COMBINE( seed, getLatencyMarkerInfoNV.pTimings );
5244  return seed;
5245  }
5246  };
5247 
5248  template <>
5249  struct hash<VULKAN_HPP_NAMESPACE::VertexInputBindingDescription>
5250  {
5251  std::size_t operator()( VULKAN_HPP_NAMESPACE::VertexInputBindingDescription const & vertexInputBindingDescription ) const VULKAN_HPP_NOEXCEPT
5252  {
5253  std::size_t seed = 0;
5254  VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDescription.binding );
5255  VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDescription.stride );
5256  VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDescription.inputRate );
5257  return seed;
5258  }
5259  };
5260 
5261  template <>
5262  struct hash<VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription>
5263  {
5264  std::size_t operator()( VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription const & vertexInputAttributeDescription ) const VULKAN_HPP_NOEXCEPT
5265  {
5266  std::size_t seed = 0;
5267  VULKAN_HPP_HASH_COMBINE( seed, vertexInputAttributeDescription.location );
5268  VULKAN_HPP_HASH_COMBINE( seed, vertexInputAttributeDescription.binding );
5269  VULKAN_HPP_HASH_COMBINE( seed, vertexInputAttributeDescription.format );
5270  VULKAN_HPP_HASH_COMBINE( seed, vertexInputAttributeDescription.offset );
5271  return seed;
5272  }
5273  };
5274 
5275  template <>
5276  struct hash<VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo>
5277  {
5278  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineVertexInputStateCreateInfo const & pipelineVertexInputStateCreateInfo ) const VULKAN_HPP_NOEXCEPT
5279  {
5280  std::size_t seed = 0;
5281  VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputStateCreateInfo.sType );
5282  VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputStateCreateInfo.pNext );
5283  VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputStateCreateInfo.flags );
5284  VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputStateCreateInfo.vertexBindingDescriptionCount );
5285  VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputStateCreateInfo.pVertexBindingDescriptions );
5286  VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputStateCreateInfo.vertexAttributeDescriptionCount );
5287  VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputStateCreateInfo.pVertexAttributeDescriptions );
5288  return seed;
5289  }
5290  };
5291 
5292  template <>
5293  struct hash<VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo>
5294  {
5295  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineInputAssemblyStateCreateInfo const & pipelineInputAssemblyStateCreateInfo ) const VULKAN_HPP_NOEXCEPT
5296  {
5297  std::size_t seed = 0;
5298  VULKAN_HPP_HASH_COMBINE( seed, pipelineInputAssemblyStateCreateInfo.sType );
5299  VULKAN_HPP_HASH_COMBINE( seed, pipelineInputAssemblyStateCreateInfo.pNext );
5300  VULKAN_HPP_HASH_COMBINE( seed, pipelineInputAssemblyStateCreateInfo.flags );
5301  VULKAN_HPP_HASH_COMBINE( seed, pipelineInputAssemblyStateCreateInfo.topology );
5302  VULKAN_HPP_HASH_COMBINE( seed, pipelineInputAssemblyStateCreateInfo.primitiveRestartEnable );
5303  return seed;
5304  }
5305  };
5306 
5307  template <>
5308  struct hash<VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo>
5309  {
5310  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineTessellationStateCreateInfo const & pipelineTessellationStateCreateInfo ) const VULKAN_HPP_NOEXCEPT
5311  {
5312  std::size_t seed = 0;
5313  VULKAN_HPP_HASH_COMBINE( seed, pipelineTessellationStateCreateInfo.sType );
5314  VULKAN_HPP_HASH_COMBINE( seed, pipelineTessellationStateCreateInfo.pNext );
5315  VULKAN_HPP_HASH_COMBINE( seed, pipelineTessellationStateCreateInfo.flags );
5316  VULKAN_HPP_HASH_COMBINE( seed, pipelineTessellationStateCreateInfo.patchControlPoints );
5317  return seed;
5318  }
5319  };
5320 
5321  template <>
5322  struct hash<VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo>
5323  {
5324  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineViewportStateCreateInfo const & pipelineViewportStateCreateInfo ) const VULKAN_HPP_NOEXCEPT
5325  {
5326  std::size_t seed = 0;
5327  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportStateCreateInfo.sType );
5328  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportStateCreateInfo.pNext );
5329  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportStateCreateInfo.flags );
5330  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportStateCreateInfo.viewportCount );
5331  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportStateCreateInfo.pViewports );
5332  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportStateCreateInfo.scissorCount );
5333  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportStateCreateInfo.pScissors );
5334  return seed;
5335  }
5336  };
5337 
5338  template <>
5339  struct hash<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo>
5340  {
5341  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateCreateInfo const & pipelineRasterizationStateCreateInfo ) const VULKAN_HPP_NOEXCEPT
5342  {
5343  std::size_t seed = 0;
5344  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.sType );
5345  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.pNext );
5346  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.flags );
5347  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.depthClampEnable );
5348  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.rasterizerDiscardEnable );
5349  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.polygonMode );
5350  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.cullMode );
5351  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.frontFace );
5352  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.depthBiasEnable );
5353  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.depthBiasConstantFactor );
5354  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.depthBiasClamp );
5355  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.depthBiasSlopeFactor );
5356  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateCreateInfo.lineWidth );
5357  return seed;
5358  }
5359  };
5360 
5361  template <>
5362  struct hash<VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo>
5363  {
5364  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineMultisampleStateCreateInfo const & pipelineMultisampleStateCreateInfo ) const VULKAN_HPP_NOEXCEPT
5365  {
5366  std::size_t seed = 0;
5367  VULKAN_HPP_HASH_COMBINE( seed, pipelineMultisampleStateCreateInfo.sType );
5368  VULKAN_HPP_HASH_COMBINE( seed, pipelineMultisampleStateCreateInfo.pNext );
5369  VULKAN_HPP_HASH_COMBINE( seed, pipelineMultisampleStateCreateInfo.flags );
5370  VULKAN_HPP_HASH_COMBINE( seed, pipelineMultisampleStateCreateInfo.rasterizationSamples );
5371  VULKAN_HPP_HASH_COMBINE( seed, pipelineMultisampleStateCreateInfo.sampleShadingEnable );
5372  VULKAN_HPP_HASH_COMBINE( seed, pipelineMultisampleStateCreateInfo.minSampleShading );
5373  VULKAN_HPP_HASH_COMBINE( seed, pipelineMultisampleStateCreateInfo.pSampleMask );
5374  VULKAN_HPP_HASH_COMBINE( seed, pipelineMultisampleStateCreateInfo.alphaToCoverageEnable );
5375  VULKAN_HPP_HASH_COMBINE( seed, pipelineMultisampleStateCreateInfo.alphaToOneEnable );
5376  return seed;
5377  }
5378  };
5379 
5380  template <>
5381  struct hash<VULKAN_HPP_NAMESPACE::StencilOpState>
5382  {
5383  std::size_t operator()( VULKAN_HPP_NAMESPACE::StencilOpState const & stencilOpState ) const VULKAN_HPP_NOEXCEPT
5384  {
5385  std::size_t seed = 0;
5386  VULKAN_HPP_HASH_COMBINE( seed, stencilOpState.failOp );
5387  VULKAN_HPP_HASH_COMBINE( seed, stencilOpState.passOp );
5388  VULKAN_HPP_HASH_COMBINE( seed, stencilOpState.depthFailOp );
5389  VULKAN_HPP_HASH_COMBINE( seed, stencilOpState.compareOp );
5390  VULKAN_HPP_HASH_COMBINE( seed, stencilOpState.compareMask );
5391  VULKAN_HPP_HASH_COMBINE( seed, stencilOpState.writeMask );
5392  VULKAN_HPP_HASH_COMBINE( seed, stencilOpState.reference );
5393  return seed;
5394  }
5395  };
5396 
5397  template <>
5398  struct hash<VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo>
5399  {
5400  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineDepthStencilStateCreateInfo const & pipelineDepthStencilStateCreateInfo ) const VULKAN_HPP_NOEXCEPT
5401  {
5402  std::size_t seed = 0;
5403  VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.sType );
5404  VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.pNext );
5405  VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.flags );
5406  VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.depthTestEnable );
5407  VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.depthWriteEnable );
5408  VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.depthCompareOp );
5409  VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.depthBoundsTestEnable );
5410  VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.stencilTestEnable );
5411  VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.front );
5412  VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.back );
5413  VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.minDepthBounds );
5414  VULKAN_HPP_HASH_COMBINE( seed, pipelineDepthStencilStateCreateInfo.maxDepthBounds );
5415  return seed;
5416  }
5417  };
5418 
5419  template <>
5420  struct hash<VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState>
5421  {
5422  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineColorBlendAttachmentState const & pipelineColorBlendAttachmentState ) const VULKAN_HPP_NOEXCEPT
5423  {
5424  std::size_t seed = 0;
5425  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAttachmentState.blendEnable );
5426  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAttachmentState.srcColorBlendFactor );
5427  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAttachmentState.dstColorBlendFactor );
5428  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAttachmentState.colorBlendOp );
5429  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAttachmentState.srcAlphaBlendFactor );
5430  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAttachmentState.dstAlphaBlendFactor );
5431  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAttachmentState.alphaBlendOp );
5432  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAttachmentState.colorWriteMask );
5433  return seed;
5434  }
5435  };
5436 
5437  template <>
5438  struct hash<VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo>
5439  {
5440  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineColorBlendStateCreateInfo const & pipelineColorBlendStateCreateInfo ) const VULKAN_HPP_NOEXCEPT
5441  {
5442  std::size_t seed = 0;
5443  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendStateCreateInfo.sType );
5444  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendStateCreateInfo.pNext );
5445  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendStateCreateInfo.flags );
5446  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendStateCreateInfo.logicOpEnable );
5447  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendStateCreateInfo.logicOp );
5448  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendStateCreateInfo.attachmentCount );
5449  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendStateCreateInfo.pAttachments );
5450  for ( size_t i = 0; i < 4; ++i )
5451  {
5452  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendStateCreateInfo.blendConstants[i] );
5453  }
5454  return seed;
5455  }
5456  };
5457 
5458  template <>
5459  struct hash<VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo>
5460  {
5461  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineDynamicStateCreateInfo const & pipelineDynamicStateCreateInfo ) const VULKAN_HPP_NOEXCEPT
5462  {
5463  std::size_t seed = 0;
5464  VULKAN_HPP_HASH_COMBINE( seed, pipelineDynamicStateCreateInfo.sType );
5465  VULKAN_HPP_HASH_COMBINE( seed, pipelineDynamicStateCreateInfo.pNext );
5466  VULKAN_HPP_HASH_COMBINE( seed, pipelineDynamicStateCreateInfo.flags );
5467  VULKAN_HPP_HASH_COMBINE( seed, pipelineDynamicStateCreateInfo.dynamicStateCount );
5468  VULKAN_HPP_HASH_COMBINE( seed, pipelineDynamicStateCreateInfo.pDynamicStates );
5469  return seed;
5470  }
5471  };
5472 
5473  template <>
5474  struct hash<VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo>
5475  {
5476  std::size_t operator()( VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo const & graphicsPipelineCreateInfo ) const VULKAN_HPP_NOEXCEPT
5477  {
5478  std::size_t seed = 0;
5479  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.sType );
5480  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.pNext );
5481  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.flags );
5482  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.stageCount );
5483  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.pStages );
5484  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.pVertexInputState );
5485  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.pInputAssemblyState );
5486  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.pTessellationState );
5487  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.pViewportState );
5488  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.pRasterizationState );
5489  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.pMultisampleState );
5490  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.pDepthStencilState );
5491  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.pColorBlendState );
5492  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.pDynamicState );
5493  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.layout );
5494  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.renderPass );
5495  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.subpass );
5496  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.basePipelineHandle );
5497  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineCreateInfo.basePipelineIndex );
5498  return seed;
5499  }
5500  };
5501 
5502  template <>
5503  struct hash<VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryCreateInfoEXT>
5504  {
5505  std::size_t operator()( VULKAN_HPP_NAMESPACE::GraphicsPipelineLibraryCreateInfoEXT const & graphicsPipelineLibraryCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
5506  {
5507  std::size_t seed = 0;
5508  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineLibraryCreateInfoEXT.sType );
5509  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineLibraryCreateInfoEXT.pNext );
5510  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineLibraryCreateInfoEXT.flags );
5511  return seed;
5512  }
5513  };
5514 
5515  template <>
5516  struct hash<VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV>
5517  {
5518  std::size_t operator()( VULKAN_HPP_NAMESPACE::GraphicsShaderGroupCreateInfoNV const & graphicsShaderGroupCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
5519  {
5520  std::size_t seed = 0;
5521  VULKAN_HPP_HASH_COMBINE( seed, graphicsShaderGroupCreateInfoNV.sType );
5522  VULKAN_HPP_HASH_COMBINE( seed, graphicsShaderGroupCreateInfoNV.pNext );
5523  VULKAN_HPP_HASH_COMBINE( seed, graphicsShaderGroupCreateInfoNV.stageCount );
5524  VULKAN_HPP_HASH_COMBINE( seed, graphicsShaderGroupCreateInfoNV.pStages );
5525  VULKAN_HPP_HASH_COMBINE( seed, graphicsShaderGroupCreateInfoNV.pVertexInputState );
5526  VULKAN_HPP_HASH_COMBINE( seed, graphicsShaderGroupCreateInfoNV.pTessellationState );
5527  return seed;
5528  }
5529  };
5530 
5531  template <>
5532  struct hash<VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV>
5533  {
5534  std::size_t
5535  operator()( VULKAN_HPP_NAMESPACE::GraphicsPipelineShaderGroupsCreateInfoNV const & graphicsPipelineShaderGroupsCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
5536  {
5537  std::size_t seed = 0;
5538  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineShaderGroupsCreateInfoNV.sType );
5539  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineShaderGroupsCreateInfoNV.pNext );
5540  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineShaderGroupsCreateInfoNV.groupCount );
5541  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineShaderGroupsCreateInfoNV.pGroups );
5542  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineShaderGroupsCreateInfoNV.pipelineCount );
5543  VULKAN_HPP_HASH_COMBINE( seed, graphicsPipelineShaderGroupsCreateInfoNV.pPipelines );
5544  return seed;
5545  }
5546  };
5547 
5548  template <>
5549  struct hash<VULKAN_HPP_NAMESPACE::XYColorEXT>
5550  {
5551  std::size_t operator()( VULKAN_HPP_NAMESPACE::XYColorEXT const & xYColorEXT ) const VULKAN_HPP_NOEXCEPT
5552  {
5553  std::size_t seed = 0;
5554  VULKAN_HPP_HASH_COMBINE( seed, xYColorEXT.x );
5555  VULKAN_HPP_HASH_COMBINE( seed, xYColorEXT.y );
5556  return seed;
5557  }
5558  };
5559 
5560  template <>
5561  struct hash<VULKAN_HPP_NAMESPACE::HdrMetadataEXT>
5562  {
5563  std::size_t operator()( VULKAN_HPP_NAMESPACE::HdrMetadataEXT const & hdrMetadataEXT ) const VULKAN_HPP_NOEXCEPT
5564  {
5565  std::size_t seed = 0;
5566  VULKAN_HPP_HASH_COMBINE( seed, hdrMetadataEXT.sType );
5567  VULKAN_HPP_HASH_COMBINE( seed, hdrMetadataEXT.pNext );
5568  VULKAN_HPP_HASH_COMBINE( seed, hdrMetadataEXT.displayPrimaryRed );
5569  VULKAN_HPP_HASH_COMBINE( seed, hdrMetadataEXT.displayPrimaryGreen );
5570  VULKAN_HPP_HASH_COMBINE( seed, hdrMetadataEXT.displayPrimaryBlue );
5571  VULKAN_HPP_HASH_COMBINE( seed, hdrMetadataEXT.whitePoint );
5572  VULKAN_HPP_HASH_COMBINE( seed, hdrMetadataEXT.maxLuminance );
5573  VULKAN_HPP_HASH_COMBINE( seed, hdrMetadataEXT.minLuminance );
5574  VULKAN_HPP_HASH_COMBINE( seed, hdrMetadataEXT.maxContentLightLevel );
5575  VULKAN_HPP_HASH_COMBINE( seed, hdrMetadataEXT.maxFrameAverageLightLevel );
5576  return seed;
5577  }
5578  };
5579 
5580  template <>
5581  struct hash<VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT>
5582  {
5583  std::size_t operator()( VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT const & headlessSurfaceCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
5584  {
5585  std::size_t seed = 0;
5586  VULKAN_HPP_HASH_COMBINE( seed, headlessSurfaceCreateInfoEXT.sType );
5587  VULKAN_HPP_HASH_COMBINE( seed, headlessSurfaceCreateInfoEXT.pNext );
5588  VULKAN_HPP_HASH_COMBINE( seed, headlessSurfaceCreateInfoEXT.flags );
5589  return seed;
5590  }
5591  };
5592 
5593  template <>
5594  struct hash<VULKAN_HPP_NAMESPACE::HostImageCopyDevicePerformanceQueryEXT>
5595  {
5596  std::size_t
5597  operator()( VULKAN_HPP_NAMESPACE::HostImageCopyDevicePerformanceQueryEXT const & hostImageCopyDevicePerformanceQueryEXT ) const VULKAN_HPP_NOEXCEPT
5598  {
5599  std::size_t seed = 0;
5600  VULKAN_HPP_HASH_COMBINE( seed, hostImageCopyDevicePerformanceQueryEXT.sType );
5601  VULKAN_HPP_HASH_COMBINE( seed, hostImageCopyDevicePerformanceQueryEXT.pNext );
5602  VULKAN_HPP_HASH_COMBINE( seed, hostImageCopyDevicePerformanceQueryEXT.optimalDeviceAccess );
5603  VULKAN_HPP_HASH_COMBINE( seed, hostImageCopyDevicePerformanceQueryEXT.identicalMemoryLayout );
5604  return seed;
5605  }
5606  };
5607 
5608  template <>
5609  struct hash<VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT>
5610  {
5611  std::size_t operator()( VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfoEXT const & hostImageLayoutTransitionInfoEXT ) const VULKAN_HPP_NOEXCEPT
5612  {
5613  std::size_t seed = 0;
5614  VULKAN_HPP_HASH_COMBINE( seed, hostImageLayoutTransitionInfoEXT.sType );
5615  VULKAN_HPP_HASH_COMBINE( seed, hostImageLayoutTransitionInfoEXT.pNext );
5616  VULKAN_HPP_HASH_COMBINE( seed, hostImageLayoutTransitionInfoEXT.image );
5617  VULKAN_HPP_HASH_COMBINE( seed, hostImageLayoutTransitionInfoEXT.oldLayout );
5618  VULKAN_HPP_HASH_COMBINE( seed, hostImageLayoutTransitionInfoEXT.newLayout );
5619  VULKAN_HPP_HASH_COMBINE( seed, hostImageLayoutTransitionInfoEXT.subresourceRange );
5620  return seed;
5621  }
5622  };
5623 
5624 # if defined( VK_USE_PLATFORM_IOS_MVK )
5625  template <>
5626  struct hash<VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK>
5627  {
5628  std::size_t operator()( VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK const & iOSSurfaceCreateInfoMVK ) const VULKAN_HPP_NOEXCEPT
5629  {
5630  std::size_t seed = 0;
5631  VULKAN_HPP_HASH_COMBINE( seed, iOSSurfaceCreateInfoMVK.sType );
5632  VULKAN_HPP_HASH_COMBINE( seed, iOSSurfaceCreateInfoMVK.pNext );
5633  VULKAN_HPP_HASH_COMBINE( seed, iOSSurfaceCreateInfoMVK.flags );
5634  VULKAN_HPP_HASH_COMBINE( seed, iOSSurfaceCreateInfoMVK.pView );
5635  return seed;
5636  }
5637  };
5638 # endif /*VK_USE_PLATFORM_IOS_MVK*/
5639 
5640  template <>
5641  struct hash<VULKAN_HPP_NAMESPACE::ImageBlit>
5642  {
5643  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageBlit const & imageBlit ) const VULKAN_HPP_NOEXCEPT
5644  {
5645  std::size_t seed = 0;
5646  VULKAN_HPP_HASH_COMBINE( seed, imageBlit.srcSubresource );
5647  for ( size_t i = 0; i < 2; ++i )
5648  {
5649  VULKAN_HPP_HASH_COMBINE( seed, imageBlit.srcOffsets[i] );
5650  }
5651  VULKAN_HPP_HASH_COMBINE( seed, imageBlit.dstSubresource );
5652  for ( size_t i = 0; i < 2; ++i )
5653  {
5654  VULKAN_HPP_HASH_COMBINE( seed, imageBlit.dstOffsets[i] );
5655  }
5656  return seed;
5657  }
5658  };
5659 
5660  template <>
5661  struct hash<VULKAN_HPP_NAMESPACE::ImageCaptureDescriptorDataInfoEXT>
5662  {
5663  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageCaptureDescriptorDataInfoEXT const & imageCaptureDescriptorDataInfoEXT ) const VULKAN_HPP_NOEXCEPT
5664  {
5665  std::size_t seed = 0;
5666  VULKAN_HPP_HASH_COMBINE( seed, imageCaptureDescriptorDataInfoEXT.sType );
5667  VULKAN_HPP_HASH_COMBINE( seed, imageCaptureDescriptorDataInfoEXT.pNext );
5668  VULKAN_HPP_HASH_COMBINE( seed, imageCaptureDescriptorDataInfoEXT.image );
5669  return seed;
5670  }
5671  };
5672 
5673  template <>
5674  struct hash<VULKAN_HPP_NAMESPACE::ImageCompressionControlEXT>
5675  {
5676  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageCompressionControlEXT const & imageCompressionControlEXT ) const VULKAN_HPP_NOEXCEPT
5677  {
5678  std::size_t seed = 0;
5679  VULKAN_HPP_HASH_COMBINE( seed, imageCompressionControlEXT.sType );
5680  VULKAN_HPP_HASH_COMBINE( seed, imageCompressionControlEXT.pNext );
5681  VULKAN_HPP_HASH_COMBINE( seed, imageCompressionControlEXT.flags );
5682  VULKAN_HPP_HASH_COMBINE( seed, imageCompressionControlEXT.compressionControlPlaneCount );
5683  VULKAN_HPP_HASH_COMBINE( seed, imageCompressionControlEXT.pFixedRateFlags );
5684  return seed;
5685  }
5686  };
5687 
5688  template <>
5689  struct hash<VULKAN_HPP_NAMESPACE::ImageCompressionPropertiesEXT>
5690  {
5691  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageCompressionPropertiesEXT const & imageCompressionPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
5692  {
5693  std::size_t seed = 0;
5694  VULKAN_HPP_HASH_COMBINE( seed, imageCompressionPropertiesEXT.sType );
5695  VULKAN_HPP_HASH_COMBINE( seed, imageCompressionPropertiesEXT.pNext );
5696  VULKAN_HPP_HASH_COMBINE( seed, imageCompressionPropertiesEXT.imageCompressionFlags );
5697  VULKAN_HPP_HASH_COMBINE( seed, imageCompressionPropertiesEXT.imageCompressionFixedRateFlags );
5698  return seed;
5699  }
5700  };
5701 
5702 # if defined( VK_USE_PLATFORM_FUCHSIA )
5703  template <>
5704  struct hash<VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA>
5705  {
5706  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageFormatConstraintsInfoFUCHSIA const & imageFormatConstraintsInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
5707  {
5708  std::size_t seed = 0;
5709  VULKAN_HPP_HASH_COMBINE( seed, imageFormatConstraintsInfoFUCHSIA.sType );
5710  VULKAN_HPP_HASH_COMBINE( seed, imageFormatConstraintsInfoFUCHSIA.pNext );
5711  VULKAN_HPP_HASH_COMBINE( seed, imageFormatConstraintsInfoFUCHSIA.imageCreateInfo );
5712  VULKAN_HPP_HASH_COMBINE( seed, imageFormatConstraintsInfoFUCHSIA.requiredFormatFeatures );
5713  VULKAN_HPP_HASH_COMBINE( seed, imageFormatConstraintsInfoFUCHSIA.flags );
5714  VULKAN_HPP_HASH_COMBINE( seed, imageFormatConstraintsInfoFUCHSIA.sysmemPixelFormat );
5715  VULKAN_HPP_HASH_COMBINE( seed, imageFormatConstraintsInfoFUCHSIA.colorSpaceCount );
5716  VULKAN_HPP_HASH_COMBINE( seed, imageFormatConstraintsInfoFUCHSIA.pColorSpaces );
5717  return seed;
5718  }
5719  };
5720 # endif /*VK_USE_PLATFORM_FUCHSIA*/
5721 
5722 # if defined( VK_USE_PLATFORM_FUCHSIA )
5723  template <>
5724  struct hash<VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA>
5725  {
5726  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA const & imageConstraintsInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
5727  {
5728  std::size_t seed = 0;
5729  VULKAN_HPP_HASH_COMBINE( seed, imageConstraintsInfoFUCHSIA.sType );
5730  VULKAN_HPP_HASH_COMBINE( seed, imageConstraintsInfoFUCHSIA.pNext );
5731  VULKAN_HPP_HASH_COMBINE( seed, imageConstraintsInfoFUCHSIA.formatConstraintsCount );
5732  VULKAN_HPP_HASH_COMBINE( seed, imageConstraintsInfoFUCHSIA.pFormatConstraints );
5733  VULKAN_HPP_HASH_COMBINE( seed, imageConstraintsInfoFUCHSIA.bufferCollectionConstraints );
5734  VULKAN_HPP_HASH_COMBINE( seed, imageConstraintsInfoFUCHSIA.flags );
5735  return seed;
5736  }
5737  };
5738 # endif /*VK_USE_PLATFORM_FUCHSIA*/
5739 
5740  template <>
5741  struct hash<VULKAN_HPP_NAMESPACE::ImageCopy>
5742  {
5743  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageCopy const & imageCopy ) const VULKAN_HPP_NOEXCEPT
5744  {
5745  std::size_t seed = 0;
5746  VULKAN_HPP_HASH_COMBINE( seed, imageCopy.srcSubresource );
5747  VULKAN_HPP_HASH_COMBINE( seed, imageCopy.srcOffset );
5748  VULKAN_HPP_HASH_COMBINE( seed, imageCopy.dstSubresource );
5749  VULKAN_HPP_HASH_COMBINE( seed, imageCopy.dstOffset );
5750  VULKAN_HPP_HASH_COMBINE( seed, imageCopy.extent );
5751  return seed;
5752  }
5753  };
5754 
5755  template <>
5756  struct hash<VULKAN_HPP_NAMESPACE::SubresourceLayout>
5757  {
5758  std::size_t operator()( VULKAN_HPP_NAMESPACE::SubresourceLayout const & subresourceLayout ) const VULKAN_HPP_NOEXCEPT
5759  {
5760  std::size_t seed = 0;
5761  VULKAN_HPP_HASH_COMBINE( seed, subresourceLayout.offset );
5762  VULKAN_HPP_HASH_COMBINE( seed, subresourceLayout.size );
5763  VULKAN_HPP_HASH_COMBINE( seed, subresourceLayout.rowPitch );
5764  VULKAN_HPP_HASH_COMBINE( seed, subresourceLayout.arrayPitch );
5765  VULKAN_HPP_HASH_COMBINE( seed, subresourceLayout.depthPitch );
5766  return seed;
5767  }
5768  };
5769 
5770  template <>
5771  struct hash<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT>
5772  {
5773  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierExplicitCreateInfoEXT const & imageDrmFormatModifierExplicitCreateInfoEXT ) const
5775  {
5776  std::size_t seed = 0;
5777  VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierExplicitCreateInfoEXT.sType );
5778  VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierExplicitCreateInfoEXT.pNext );
5779  VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierExplicitCreateInfoEXT.drmFormatModifier );
5780  VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierExplicitCreateInfoEXT.drmFormatModifierPlaneCount );
5781  VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierExplicitCreateInfoEXT.pPlaneLayouts );
5782  return seed;
5783  }
5784  };
5785 
5786  template <>
5787  struct hash<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT>
5788  {
5789  std::size_t
5790  operator()( VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierListCreateInfoEXT const & imageDrmFormatModifierListCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
5791  {
5792  std::size_t seed = 0;
5793  VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierListCreateInfoEXT.sType );
5794  VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierListCreateInfoEXT.pNext );
5795  VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierListCreateInfoEXT.drmFormatModifierCount );
5796  VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierListCreateInfoEXT.pDrmFormatModifiers );
5797  return seed;
5798  }
5799  };
5800 
5801  template <>
5802  struct hash<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT>
5803  {
5804  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT const & imageDrmFormatModifierPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
5805  {
5806  std::size_t seed = 0;
5807  VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierPropertiesEXT.sType );
5808  VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierPropertiesEXT.pNext );
5809  VULKAN_HPP_HASH_COMBINE( seed, imageDrmFormatModifierPropertiesEXT.drmFormatModifier );
5810  return seed;
5811  }
5812  };
5813 
5814  template <>
5815  struct hash<VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo>
5816  {
5817  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageFormatListCreateInfo const & imageFormatListCreateInfo ) const VULKAN_HPP_NOEXCEPT
5818  {
5819  std::size_t seed = 0;
5820  VULKAN_HPP_HASH_COMBINE( seed, imageFormatListCreateInfo.sType );
5821  VULKAN_HPP_HASH_COMBINE( seed, imageFormatListCreateInfo.pNext );
5822  VULKAN_HPP_HASH_COMBINE( seed, imageFormatListCreateInfo.viewFormatCount );
5823  VULKAN_HPP_HASH_COMBINE( seed, imageFormatListCreateInfo.pViewFormats );
5824  return seed;
5825  }
5826  };
5827 
5828  template <>
5829  struct hash<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>
5830  {
5831  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageFormatProperties2 const & imageFormatProperties2 ) const VULKAN_HPP_NOEXCEPT
5832  {
5833  std::size_t seed = 0;
5834  VULKAN_HPP_HASH_COMBINE( seed, imageFormatProperties2.sType );
5835  VULKAN_HPP_HASH_COMBINE( seed, imageFormatProperties2.pNext );
5836  VULKAN_HPP_HASH_COMBINE( seed, imageFormatProperties2.imageFormatProperties );
5837  return seed;
5838  }
5839  };
5840 
5841  template <>
5842  struct hash<VULKAN_HPP_NAMESPACE::ImageMemoryBarrier>
5843  {
5844  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageMemoryBarrier const & imageMemoryBarrier ) const VULKAN_HPP_NOEXCEPT
5845  {
5846  std::size_t seed = 0;
5847  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier.sType );
5848  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier.pNext );
5849  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier.srcAccessMask );
5850  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier.dstAccessMask );
5851  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier.oldLayout );
5852  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier.newLayout );
5853  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier.srcQueueFamilyIndex );
5854  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier.dstQueueFamilyIndex );
5855  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier.image );
5856  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryBarrier.subresourceRange );
5857  return seed;
5858  }
5859  };
5860 
5861  template <>
5862  struct hash<VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2>
5863  {
5864  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 const & imageMemoryRequirementsInfo2 ) const VULKAN_HPP_NOEXCEPT
5865  {
5866  std::size_t seed = 0;
5867  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryRequirementsInfo2.sType );
5868  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryRequirementsInfo2.pNext );
5869  VULKAN_HPP_HASH_COMBINE( seed, imageMemoryRequirementsInfo2.image );
5870  return seed;
5871  }
5872  };
5873 
5874 # if defined( VK_USE_PLATFORM_FUCHSIA )
5875  template <>
5876  struct hash<VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA>
5877  {
5878  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA const & imagePipeSurfaceCreateInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
5879  {
5880  std::size_t seed = 0;
5881  VULKAN_HPP_HASH_COMBINE( seed, imagePipeSurfaceCreateInfoFUCHSIA.sType );
5882  VULKAN_HPP_HASH_COMBINE( seed, imagePipeSurfaceCreateInfoFUCHSIA.pNext );
5883  VULKAN_HPP_HASH_COMBINE( seed, imagePipeSurfaceCreateInfoFUCHSIA.flags );
5884  VULKAN_HPP_HASH_COMBINE( seed, imagePipeSurfaceCreateInfoFUCHSIA.imagePipeHandle );
5885  return seed;
5886  }
5887  };
5888 # endif /*VK_USE_PLATFORM_FUCHSIA*/
5889 
5890  template <>
5891  struct hash<VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo>
5892  {
5893  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImagePlaneMemoryRequirementsInfo const & imagePlaneMemoryRequirementsInfo ) const VULKAN_HPP_NOEXCEPT
5894  {
5895  std::size_t seed = 0;
5896  VULKAN_HPP_HASH_COMBINE( seed, imagePlaneMemoryRequirementsInfo.sType );
5897  VULKAN_HPP_HASH_COMBINE( seed, imagePlaneMemoryRequirementsInfo.pNext );
5898  VULKAN_HPP_HASH_COMBINE( seed, imagePlaneMemoryRequirementsInfo.planeAspect );
5899  return seed;
5900  }
5901  };
5902 
5903  template <>
5904  struct hash<VULKAN_HPP_NAMESPACE::ImageResolve>
5905  {
5906  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageResolve const & imageResolve ) const VULKAN_HPP_NOEXCEPT
5907  {
5908  std::size_t seed = 0;
5909  VULKAN_HPP_HASH_COMBINE( seed, imageResolve.srcSubresource );
5910  VULKAN_HPP_HASH_COMBINE( seed, imageResolve.srcOffset );
5911  VULKAN_HPP_HASH_COMBINE( seed, imageResolve.dstSubresource );
5912  VULKAN_HPP_HASH_COMBINE( seed, imageResolve.dstOffset );
5913  VULKAN_HPP_HASH_COMBINE( seed, imageResolve.extent );
5914  return seed;
5915  }
5916  };
5917 
5918  template <>
5919  struct hash<VULKAN_HPP_NAMESPACE::ImageResolve2>
5920  {
5921  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageResolve2 const & imageResolve2 ) const VULKAN_HPP_NOEXCEPT
5922  {
5923  std::size_t seed = 0;
5924  VULKAN_HPP_HASH_COMBINE( seed, imageResolve2.sType );
5925  VULKAN_HPP_HASH_COMBINE( seed, imageResolve2.pNext );
5926  VULKAN_HPP_HASH_COMBINE( seed, imageResolve2.srcSubresource );
5927  VULKAN_HPP_HASH_COMBINE( seed, imageResolve2.srcOffset );
5928  VULKAN_HPP_HASH_COMBINE( seed, imageResolve2.dstSubresource );
5929  VULKAN_HPP_HASH_COMBINE( seed, imageResolve2.dstOffset );
5930  VULKAN_HPP_HASH_COMBINE( seed, imageResolve2.extent );
5931  return seed;
5932  }
5933  };
5934 
5935  template <>
5936  struct hash<VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2>
5937  {
5938  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 const & imageSparseMemoryRequirementsInfo2 ) const VULKAN_HPP_NOEXCEPT
5939  {
5940  std::size_t seed = 0;
5941  VULKAN_HPP_HASH_COMBINE( seed, imageSparseMemoryRequirementsInfo2.sType );
5942  VULKAN_HPP_HASH_COMBINE( seed, imageSparseMemoryRequirementsInfo2.pNext );
5943  VULKAN_HPP_HASH_COMBINE( seed, imageSparseMemoryRequirementsInfo2.image );
5944  return seed;
5945  }
5946  };
5947 
5948  template <>
5949  struct hash<VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo>
5950  {
5951  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageStencilUsageCreateInfo const & imageStencilUsageCreateInfo ) const VULKAN_HPP_NOEXCEPT
5952  {
5953  std::size_t seed = 0;
5954  VULKAN_HPP_HASH_COMBINE( seed, imageStencilUsageCreateInfo.sType );
5955  VULKAN_HPP_HASH_COMBINE( seed, imageStencilUsageCreateInfo.pNext );
5956  VULKAN_HPP_HASH_COMBINE( seed, imageStencilUsageCreateInfo.stencilUsage );
5957  return seed;
5958  }
5959  };
5960 
5961  template <>
5962  struct hash<VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR>
5963  {
5964  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageSwapchainCreateInfoKHR const & imageSwapchainCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
5965  {
5966  std::size_t seed = 0;
5967  VULKAN_HPP_HASH_COMBINE( seed, imageSwapchainCreateInfoKHR.sType );
5968  VULKAN_HPP_HASH_COMBINE( seed, imageSwapchainCreateInfoKHR.pNext );
5969  VULKAN_HPP_HASH_COMBINE( seed, imageSwapchainCreateInfoKHR.swapchain );
5970  return seed;
5971  }
5972  };
5973 
5974  template <>
5975  struct hash<VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT>
5976  {
5977  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageViewASTCDecodeModeEXT const & imageViewASTCDecodeModeEXT ) const VULKAN_HPP_NOEXCEPT
5978  {
5979  std::size_t seed = 0;
5980  VULKAN_HPP_HASH_COMBINE( seed, imageViewASTCDecodeModeEXT.sType );
5981  VULKAN_HPP_HASH_COMBINE( seed, imageViewASTCDecodeModeEXT.pNext );
5982  VULKAN_HPP_HASH_COMBINE( seed, imageViewASTCDecodeModeEXT.decodeMode );
5983  return seed;
5984  }
5985  };
5986 
5987  template <>
5988  struct hash<VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX>
5989  {
5990  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX const & imageViewAddressPropertiesNVX ) const VULKAN_HPP_NOEXCEPT
5991  {
5992  std::size_t seed = 0;
5993  VULKAN_HPP_HASH_COMBINE( seed, imageViewAddressPropertiesNVX.sType );
5994  VULKAN_HPP_HASH_COMBINE( seed, imageViewAddressPropertiesNVX.pNext );
5995  VULKAN_HPP_HASH_COMBINE( seed, imageViewAddressPropertiesNVX.deviceAddress );
5996  VULKAN_HPP_HASH_COMBINE( seed, imageViewAddressPropertiesNVX.size );
5997  return seed;
5998  }
5999  };
6000 
6001  template <>
6002  struct hash<VULKAN_HPP_NAMESPACE::ImageViewCaptureDescriptorDataInfoEXT>
6003  {
6004  std::size_t
6005  operator()( VULKAN_HPP_NAMESPACE::ImageViewCaptureDescriptorDataInfoEXT const & imageViewCaptureDescriptorDataInfoEXT ) const VULKAN_HPP_NOEXCEPT
6006  {
6007  std::size_t seed = 0;
6008  VULKAN_HPP_HASH_COMBINE( seed, imageViewCaptureDescriptorDataInfoEXT.sType );
6009  VULKAN_HPP_HASH_COMBINE( seed, imageViewCaptureDescriptorDataInfoEXT.pNext );
6010  VULKAN_HPP_HASH_COMBINE( seed, imageViewCaptureDescriptorDataInfoEXT.imageView );
6011  return seed;
6012  }
6013  };
6014 
6015  template <>
6016  struct hash<VULKAN_HPP_NAMESPACE::ImageViewCreateInfo>
6017  {
6018  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageViewCreateInfo const & imageViewCreateInfo ) const VULKAN_HPP_NOEXCEPT
6019  {
6020  std::size_t seed = 0;
6021  VULKAN_HPP_HASH_COMBINE( seed, imageViewCreateInfo.sType );
6022  VULKAN_HPP_HASH_COMBINE( seed, imageViewCreateInfo.pNext );
6023  VULKAN_HPP_HASH_COMBINE( seed, imageViewCreateInfo.flags );
6024  VULKAN_HPP_HASH_COMBINE( seed, imageViewCreateInfo.image );
6025  VULKAN_HPP_HASH_COMBINE( seed, imageViewCreateInfo.viewType );
6026  VULKAN_HPP_HASH_COMBINE( seed, imageViewCreateInfo.format );
6027  VULKAN_HPP_HASH_COMBINE( seed, imageViewCreateInfo.components );
6028  VULKAN_HPP_HASH_COMBINE( seed, imageViewCreateInfo.subresourceRange );
6029  return seed;
6030  }
6031  };
6032 
6033  template <>
6034  struct hash<VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX>
6035  {
6036  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX const & imageViewHandleInfoNVX ) const VULKAN_HPP_NOEXCEPT
6037  {
6038  std::size_t seed = 0;
6039  VULKAN_HPP_HASH_COMBINE( seed, imageViewHandleInfoNVX.sType );
6040  VULKAN_HPP_HASH_COMBINE( seed, imageViewHandleInfoNVX.pNext );
6041  VULKAN_HPP_HASH_COMBINE( seed, imageViewHandleInfoNVX.imageView );
6042  VULKAN_HPP_HASH_COMBINE( seed, imageViewHandleInfoNVX.descriptorType );
6043  VULKAN_HPP_HASH_COMBINE( seed, imageViewHandleInfoNVX.sampler );
6044  return seed;
6045  }
6046  };
6047 
6048  template <>
6049  struct hash<VULKAN_HPP_NAMESPACE::ImageViewMinLodCreateInfoEXT>
6050  {
6051  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageViewMinLodCreateInfoEXT const & imageViewMinLodCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
6052  {
6053  std::size_t seed = 0;
6054  VULKAN_HPP_HASH_COMBINE( seed, imageViewMinLodCreateInfoEXT.sType );
6055  VULKAN_HPP_HASH_COMBINE( seed, imageViewMinLodCreateInfoEXT.pNext );
6056  VULKAN_HPP_HASH_COMBINE( seed, imageViewMinLodCreateInfoEXT.minLod );
6057  return seed;
6058  }
6059  };
6060 
6061  template <>
6062  struct hash<VULKAN_HPP_NAMESPACE::ImageViewSampleWeightCreateInfoQCOM>
6063  {
6064  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageViewSampleWeightCreateInfoQCOM const & imageViewSampleWeightCreateInfoQCOM ) const VULKAN_HPP_NOEXCEPT
6065  {
6066  std::size_t seed = 0;
6067  VULKAN_HPP_HASH_COMBINE( seed, imageViewSampleWeightCreateInfoQCOM.sType );
6068  VULKAN_HPP_HASH_COMBINE( seed, imageViewSampleWeightCreateInfoQCOM.pNext );
6069  VULKAN_HPP_HASH_COMBINE( seed, imageViewSampleWeightCreateInfoQCOM.filterCenter );
6070  VULKAN_HPP_HASH_COMBINE( seed, imageViewSampleWeightCreateInfoQCOM.filterSize );
6071  VULKAN_HPP_HASH_COMBINE( seed, imageViewSampleWeightCreateInfoQCOM.numPhases );
6072  return seed;
6073  }
6074  };
6075 
6076  template <>
6077  struct hash<VULKAN_HPP_NAMESPACE::ImageViewSlicedCreateInfoEXT>
6078  {
6079  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageViewSlicedCreateInfoEXT const & imageViewSlicedCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
6080  {
6081  std::size_t seed = 0;
6082  VULKAN_HPP_HASH_COMBINE( seed, imageViewSlicedCreateInfoEXT.sType );
6083  VULKAN_HPP_HASH_COMBINE( seed, imageViewSlicedCreateInfoEXT.pNext );
6084  VULKAN_HPP_HASH_COMBINE( seed, imageViewSlicedCreateInfoEXT.sliceOffset );
6085  VULKAN_HPP_HASH_COMBINE( seed, imageViewSlicedCreateInfoEXT.sliceCount );
6086  return seed;
6087  }
6088  };
6089 
6090  template <>
6091  struct hash<VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo>
6092  {
6093  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImageViewUsageCreateInfo const & imageViewUsageCreateInfo ) const VULKAN_HPP_NOEXCEPT
6094  {
6095  std::size_t seed = 0;
6096  VULKAN_HPP_HASH_COMBINE( seed, imageViewUsageCreateInfo.sType );
6097  VULKAN_HPP_HASH_COMBINE( seed, imageViewUsageCreateInfo.pNext );
6098  VULKAN_HPP_HASH_COMBINE( seed, imageViewUsageCreateInfo.usage );
6099  return seed;
6100  }
6101  };
6102 
6103 # if defined( VK_USE_PLATFORM_ANDROID_KHR )
6104  template <>
6105  struct hash<VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID>
6106  {
6107  std::size_t
6108  operator()( VULKAN_HPP_NAMESPACE::ImportAndroidHardwareBufferInfoANDROID const & importAndroidHardwareBufferInfoANDROID ) const VULKAN_HPP_NOEXCEPT
6109  {
6110  std::size_t seed = 0;
6111  VULKAN_HPP_HASH_COMBINE( seed, importAndroidHardwareBufferInfoANDROID.sType );
6112  VULKAN_HPP_HASH_COMBINE( seed, importAndroidHardwareBufferInfoANDROID.pNext );
6113  VULKAN_HPP_HASH_COMBINE( seed, importAndroidHardwareBufferInfoANDROID.buffer );
6114  return seed;
6115  }
6116  };
6117 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
6118 
6119  template <>
6120  struct hash<VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR>
6121  {
6122  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR const & importFenceFdInfoKHR ) const VULKAN_HPP_NOEXCEPT
6123  {
6124  std::size_t seed = 0;
6125  VULKAN_HPP_HASH_COMBINE( seed, importFenceFdInfoKHR.sType );
6126  VULKAN_HPP_HASH_COMBINE( seed, importFenceFdInfoKHR.pNext );
6127  VULKAN_HPP_HASH_COMBINE( seed, importFenceFdInfoKHR.fence );
6128  VULKAN_HPP_HASH_COMBINE( seed, importFenceFdInfoKHR.flags );
6129  VULKAN_HPP_HASH_COMBINE( seed, importFenceFdInfoKHR.handleType );
6130  VULKAN_HPP_HASH_COMBINE( seed, importFenceFdInfoKHR.fd );
6131  return seed;
6132  }
6133  };
6134 
6135 # if defined( VK_USE_PLATFORM_WIN32_KHR )
6136  template <>
6137  struct hash<VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR>
6138  {
6139  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR const & importFenceWin32HandleInfoKHR ) const VULKAN_HPP_NOEXCEPT
6140  {
6141  std::size_t seed = 0;
6142  VULKAN_HPP_HASH_COMBINE( seed, importFenceWin32HandleInfoKHR.sType );
6143  VULKAN_HPP_HASH_COMBINE( seed, importFenceWin32HandleInfoKHR.pNext );
6144  VULKAN_HPP_HASH_COMBINE( seed, importFenceWin32HandleInfoKHR.fence );
6145  VULKAN_HPP_HASH_COMBINE( seed, importFenceWin32HandleInfoKHR.flags );
6146  VULKAN_HPP_HASH_COMBINE( seed, importFenceWin32HandleInfoKHR.handleType );
6147  VULKAN_HPP_HASH_COMBINE( seed, importFenceWin32HandleInfoKHR.handle );
6148  VULKAN_HPP_HASH_COMBINE( seed, importFenceWin32HandleInfoKHR.name );
6149  return seed;
6150  }
6151  };
6152 # endif /*VK_USE_PLATFORM_WIN32_KHR*/
6153 
6154 # if defined( VK_USE_PLATFORM_FUCHSIA )
6155  template <>
6156  struct hash<VULKAN_HPP_NAMESPACE::ImportMemoryBufferCollectionFUCHSIA>
6157  {
6158  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportMemoryBufferCollectionFUCHSIA const & importMemoryBufferCollectionFUCHSIA ) const VULKAN_HPP_NOEXCEPT
6159  {
6160  std::size_t seed = 0;
6161  VULKAN_HPP_HASH_COMBINE( seed, importMemoryBufferCollectionFUCHSIA.sType );
6162  VULKAN_HPP_HASH_COMBINE( seed, importMemoryBufferCollectionFUCHSIA.pNext );
6163  VULKAN_HPP_HASH_COMBINE( seed, importMemoryBufferCollectionFUCHSIA.collection );
6164  VULKAN_HPP_HASH_COMBINE( seed, importMemoryBufferCollectionFUCHSIA.index );
6165  return seed;
6166  }
6167  };
6168 # endif /*VK_USE_PLATFORM_FUCHSIA*/
6169 
6170  template <>
6171  struct hash<VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR>
6172  {
6173  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportMemoryFdInfoKHR const & importMemoryFdInfoKHR ) const VULKAN_HPP_NOEXCEPT
6174  {
6175  std::size_t seed = 0;
6176  VULKAN_HPP_HASH_COMBINE( seed, importMemoryFdInfoKHR.sType );
6177  VULKAN_HPP_HASH_COMBINE( seed, importMemoryFdInfoKHR.pNext );
6178  VULKAN_HPP_HASH_COMBINE( seed, importMemoryFdInfoKHR.handleType );
6179  VULKAN_HPP_HASH_COMBINE( seed, importMemoryFdInfoKHR.fd );
6180  return seed;
6181  }
6182  };
6183 
6184  template <>
6185  struct hash<VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT>
6186  {
6187  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportMemoryHostPointerInfoEXT const & importMemoryHostPointerInfoEXT ) const VULKAN_HPP_NOEXCEPT
6188  {
6189  std::size_t seed = 0;
6190  VULKAN_HPP_HASH_COMBINE( seed, importMemoryHostPointerInfoEXT.sType );
6191  VULKAN_HPP_HASH_COMBINE( seed, importMemoryHostPointerInfoEXT.pNext );
6192  VULKAN_HPP_HASH_COMBINE( seed, importMemoryHostPointerInfoEXT.handleType );
6193  VULKAN_HPP_HASH_COMBINE( seed, importMemoryHostPointerInfoEXT.pHostPointer );
6194  return seed;
6195  }
6196  };
6197 
6198 # if defined( VK_USE_PLATFORM_WIN32_KHR )
6199  template <>
6200  struct hash<VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR>
6201  {
6202  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoKHR const & importMemoryWin32HandleInfoKHR ) const VULKAN_HPP_NOEXCEPT
6203  {
6204  std::size_t seed = 0;
6205  VULKAN_HPP_HASH_COMBINE( seed, importMemoryWin32HandleInfoKHR.sType );
6206  VULKAN_HPP_HASH_COMBINE( seed, importMemoryWin32HandleInfoKHR.pNext );
6207  VULKAN_HPP_HASH_COMBINE( seed, importMemoryWin32HandleInfoKHR.handleType );
6208  VULKAN_HPP_HASH_COMBINE( seed, importMemoryWin32HandleInfoKHR.handle );
6209  VULKAN_HPP_HASH_COMBINE( seed, importMemoryWin32HandleInfoKHR.name );
6210  return seed;
6211  }
6212  };
6213 # endif /*VK_USE_PLATFORM_WIN32_KHR*/
6214 
6215 # if defined( VK_USE_PLATFORM_WIN32_KHR )
6216  template <>
6217  struct hash<VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV>
6218  {
6219  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportMemoryWin32HandleInfoNV const & importMemoryWin32HandleInfoNV ) const VULKAN_HPP_NOEXCEPT
6220  {
6221  std::size_t seed = 0;
6222  VULKAN_HPP_HASH_COMBINE( seed, importMemoryWin32HandleInfoNV.sType );
6223  VULKAN_HPP_HASH_COMBINE( seed, importMemoryWin32HandleInfoNV.pNext );
6224  VULKAN_HPP_HASH_COMBINE( seed, importMemoryWin32HandleInfoNV.handleType );
6225  VULKAN_HPP_HASH_COMBINE( seed, importMemoryWin32HandleInfoNV.handle );
6226  return seed;
6227  }
6228  };
6229 # endif /*VK_USE_PLATFORM_WIN32_KHR*/
6230 
6231 # if defined( VK_USE_PLATFORM_FUCHSIA )
6232  template <>
6233  struct hash<VULKAN_HPP_NAMESPACE::ImportMemoryZirconHandleInfoFUCHSIA>
6234  {
6235  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportMemoryZirconHandleInfoFUCHSIA const & importMemoryZirconHandleInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
6236  {
6237  std::size_t seed = 0;
6238  VULKAN_HPP_HASH_COMBINE( seed, importMemoryZirconHandleInfoFUCHSIA.sType );
6239  VULKAN_HPP_HASH_COMBINE( seed, importMemoryZirconHandleInfoFUCHSIA.pNext );
6240  VULKAN_HPP_HASH_COMBINE( seed, importMemoryZirconHandleInfoFUCHSIA.handleType );
6241  VULKAN_HPP_HASH_COMBINE( seed, importMemoryZirconHandleInfoFUCHSIA.handle );
6242  return seed;
6243  }
6244  };
6245 # endif /*VK_USE_PLATFORM_FUCHSIA*/
6246 
6247 # if defined( VK_USE_PLATFORM_METAL_EXT )
6248  template <>
6249  struct hash<VULKAN_HPP_NAMESPACE::ImportMetalBufferInfoEXT>
6250  {
6251  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportMetalBufferInfoEXT const & importMetalBufferInfoEXT ) const VULKAN_HPP_NOEXCEPT
6252  {
6253  std::size_t seed = 0;
6254  VULKAN_HPP_HASH_COMBINE( seed, importMetalBufferInfoEXT.sType );
6255  VULKAN_HPP_HASH_COMBINE( seed, importMetalBufferInfoEXT.pNext );
6256  VULKAN_HPP_HASH_COMBINE( seed, importMetalBufferInfoEXT.mtlBuffer );
6257  return seed;
6258  }
6259  };
6260 # endif /*VK_USE_PLATFORM_METAL_EXT*/
6261 
6262 # if defined( VK_USE_PLATFORM_METAL_EXT )
6263  template <>
6264  struct hash<VULKAN_HPP_NAMESPACE::ImportMetalIOSurfaceInfoEXT>
6265  {
6266  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportMetalIOSurfaceInfoEXT const & importMetalIOSurfaceInfoEXT ) const VULKAN_HPP_NOEXCEPT
6267  {
6268  std::size_t seed = 0;
6269  VULKAN_HPP_HASH_COMBINE( seed, importMetalIOSurfaceInfoEXT.sType );
6270  VULKAN_HPP_HASH_COMBINE( seed, importMetalIOSurfaceInfoEXT.pNext );
6271  VULKAN_HPP_HASH_COMBINE( seed, importMetalIOSurfaceInfoEXT.ioSurface );
6272  return seed;
6273  }
6274  };
6275 # endif /*VK_USE_PLATFORM_METAL_EXT*/
6276 
6277 # if defined( VK_USE_PLATFORM_METAL_EXT )
6278  template <>
6279  struct hash<VULKAN_HPP_NAMESPACE::ImportMetalSharedEventInfoEXT>
6280  {
6281  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportMetalSharedEventInfoEXT const & importMetalSharedEventInfoEXT ) const VULKAN_HPP_NOEXCEPT
6282  {
6283  std::size_t seed = 0;
6284  VULKAN_HPP_HASH_COMBINE( seed, importMetalSharedEventInfoEXT.sType );
6285  VULKAN_HPP_HASH_COMBINE( seed, importMetalSharedEventInfoEXT.pNext );
6286  VULKAN_HPP_HASH_COMBINE( seed, importMetalSharedEventInfoEXT.mtlSharedEvent );
6287  return seed;
6288  }
6289  };
6290 # endif /*VK_USE_PLATFORM_METAL_EXT*/
6291 
6292 # if defined( VK_USE_PLATFORM_METAL_EXT )
6293  template <>
6294  struct hash<VULKAN_HPP_NAMESPACE::ImportMetalTextureInfoEXT>
6295  {
6296  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportMetalTextureInfoEXT const & importMetalTextureInfoEXT ) const VULKAN_HPP_NOEXCEPT
6297  {
6298  std::size_t seed = 0;
6299  VULKAN_HPP_HASH_COMBINE( seed, importMetalTextureInfoEXT.sType );
6300  VULKAN_HPP_HASH_COMBINE( seed, importMetalTextureInfoEXT.pNext );
6301  VULKAN_HPP_HASH_COMBINE( seed, importMetalTextureInfoEXT.plane );
6302  VULKAN_HPP_HASH_COMBINE( seed, importMetalTextureInfoEXT.mtlTexture );
6303  return seed;
6304  }
6305  };
6306 # endif /*VK_USE_PLATFORM_METAL_EXT*/
6307 
6308 # if defined( VK_USE_PLATFORM_SCREEN_QNX )
6309  template <>
6310  struct hash<VULKAN_HPP_NAMESPACE::ImportScreenBufferInfoQNX>
6311  {
6312  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportScreenBufferInfoQNX const & importScreenBufferInfoQNX ) const VULKAN_HPP_NOEXCEPT
6313  {
6314  std::size_t seed = 0;
6315  VULKAN_HPP_HASH_COMBINE( seed, importScreenBufferInfoQNX.sType );
6316  VULKAN_HPP_HASH_COMBINE( seed, importScreenBufferInfoQNX.pNext );
6317  VULKAN_HPP_HASH_COMBINE( seed, importScreenBufferInfoQNX.buffer );
6318  return seed;
6319  }
6320  };
6321 # endif /*VK_USE_PLATFORM_SCREEN_QNX*/
6322 
6323  template <>
6324  struct hash<VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR>
6325  {
6326  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR const & importSemaphoreFdInfoKHR ) const VULKAN_HPP_NOEXCEPT
6327  {
6328  std::size_t seed = 0;
6329  VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreFdInfoKHR.sType );
6330  VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreFdInfoKHR.pNext );
6331  VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreFdInfoKHR.semaphore );
6332  VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreFdInfoKHR.flags );
6333  VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreFdInfoKHR.handleType );
6334  VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreFdInfoKHR.fd );
6335  return seed;
6336  }
6337  };
6338 
6339 # if defined( VK_USE_PLATFORM_WIN32_KHR )
6340  template <>
6341  struct hash<VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR>
6342  {
6343  std::size_t operator()( VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR const & importSemaphoreWin32HandleInfoKHR ) const VULKAN_HPP_NOEXCEPT
6344  {
6345  std::size_t seed = 0;
6346  VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreWin32HandleInfoKHR.sType );
6347  VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreWin32HandleInfoKHR.pNext );
6348  VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreWin32HandleInfoKHR.semaphore );
6349  VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreWin32HandleInfoKHR.flags );
6350  VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreWin32HandleInfoKHR.handleType );
6351  VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreWin32HandleInfoKHR.handle );
6352  VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreWin32HandleInfoKHR.name );
6353  return seed;
6354  }
6355  };
6356 # endif /*VK_USE_PLATFORM_WIN32_KHR*/
6357 
6358 # if defined( VK_USE_PLATFORM_FUCHSIA )
6359  template <>
6360  struct hash<VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA>
6361  {
6362  std::size_t
6363  operator()( VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA const & importSemaphoreZirconHandleInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
6364  {
6365  std::size_t seed = 0;
6366  VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreZirconHandleInfoFUCHSIA.sType );
6367  VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreZirconHandleInfoFUCHSIA.pNext );
6368  VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreZirconHandleInfoFUCHSIA.semaphore );
6369  VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreZirconHandleInfoFUCHSIA.flags );
6370  VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreZirconHandleInfoFUCHSIA.handleType );
6371  VULKAN_HPP_HASH_COMBINE( seed, importSemaphoreZirconHandleInfoFUCHSIA.zirconHandle );
6372  return seed;
6373  }
6374  };
6375 # endif /*VK_USE_PLATFORM_FUCHSIA*/
6376 
6377  template <>
6378  struct hash<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV>
6379  {
6380  std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutTokenNV const & indirectCommandsLayoutTokenNV ) const VULKAN_HPP_NOEXCEPT
6381  {
6382  std::size_t seed = 0;
6383  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.sType );
6384  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.pNext );
6385  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.tokenType );
6386  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.stream );
6387  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.offset );
6388  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.vertexBindingUnit );
6389  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.vertexDynamicStride );
6390  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.pushconstantPipelineLayout );
6391  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.pushconstantShaderStageFlags );
6392  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.pushconstantOffset );
6393  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.pushconstantSize );
6394  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.indirectStateFlags );
6395  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.indexTypeCount );
6396  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.pIndexTypes );
6397  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutTokenNV.pIndexTypeValues );
6398  return seed;
6399  }
6400  };
6401 
6402  template <>
6403  struct hash<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV>
6404  {
6405  std::size_t operator()( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV const & indirectCommandsLayoutCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
6406  {
6407  std::size_t seed = 0;
6408  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoNV.sType );
6409  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoNV.pNext );
6410  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoNV.flags );
6411  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoNV.pipelineBindPoint );
6412  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoNV.tokenCount );
6413  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoNV.pTokens );
6414  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoNV.streamCount );
6415  VULKAN_HPP_HASH_COMBINE( seed, indirectCommandsLayoutCreateInfoNV.pStreamStrides );
6416  return seed;
6417  }
6418  };
6419 
6420  template <>
6421  struct hash<VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL>
6422  {
6423  std::size_t operator()( VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL const & initializePerformanceApiInfoINTEL ) const VULKAN_HPP_NOEXCEPT
6424  {
6425  std::size_t seed = 0;
6426  VULKAN_HPP_HASH_COMBINE( seed, initializePerformanceApiInfoINTEL.sType );
6427  VULKAN_HPP_HASH_COMBINE( seed, initializePerformanceApiInfoINTEL.pNext );
6428  VULKAN_HPP_HASH_COMBINE( seed, initializePerformanceApiInfoINTEL.pUserData );
6429  return seed;
6430  }
6431  };
6432 
6433  template <>
6434  struct hash<VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference>
6435  {
6436  std::size_t operator()( VULKAN_HPP_NAMESPACE::InputAttachmentAspectReference const & inputAttachmentAspectReference ) const VULKAN_HPP_NOEXCEPT
6437  {
6438  std::size_t seed = 0;
6439  VULKAN_HPP_HASH_COMBINE( seed, inputAttachmentAspectReference.subpass );
6440  VULKAN_HPP_HASH_COMBINE( seed, inputAttachmentAspectReference.inputAttachmentIndex );
6441  VULKAN_HPP_HASH_COMBINE( seed, inputAttachmentAspectReference.aspectMask );
6442  return seed;
6443  }
6444  };
6445 
6446  template <>
6447  struct hash<VULKAN_HPP_NAMESPACE::InstanceCreateInfo>
6448  {
6449  std::size_t operator()( VULKAN_HPP_NAMESPACE::InstanceCreateInfo const & instanceCreateInfo ) const VULKAN_HPP_NOEXCEPT
6450  {
6451  std::size_t seed = 0;
6452  VULKAN_HPP_HASH_COMBINE( seed, instanceCreateInfo.sType );
6453  VULKAN_HPP_HASH_COMBINE( seed, instanceCreateInfo.pNext );
6454  VULKAN_HPP_HASH_COMBINE( seed, instanceCreateInfo.flags );
6455  VULKAN_HPP_HASH_COMBINE( seed, instanceCreateInfo.pApplicationInfo );
6456  VULKAN_HPP_HASH_COMBINE( seed, instanceCreateInfo.enabledLayerCount );
6457  for ( size_t i = 0; i < instanceCreateInfo.enabledLayerCount; ++i )
6458  {
6459  for ( const char * p = instanceCreateInfo.ppEnabledLayerNames[i]; *p != '\0'; ++p )
6460  {
6461  VULKAN_HPP_HASH_COMBINE( seed, *p );
6462  }
6463  }
6464  VULKAN_HPP_HASH_COMBINE( seed, instanceCreateInfo.enabledExtensionCount );
6465  for ( size_t i = 0; i < instanceCreateInfo.enabledExtensionCount; ++i )
6466  {
6467  for ( const char * p = instanceCreateInfo.ppEnabledExtensionNames[i]; *p != '\0'; ++p )
6468  {
6469  VULKAN_HPP_HASH_COMBINE( seed, *p );
6470  }
6471  }
6472  return seed;
6473  }
6474  };
6475 
6476  template <>
6477  struct hash<VULKAN_HPP_NAMESPACE::LatencySleepInfoNV>
6478  {
6479  std::size_t operator()( VULKAN_HPP_NAMESPACE::LatencySleepInfoNV const & latencySleepInfoNV ) const VULKAN_HPP_NOEXCEPT
6480  {
6481  std::size_t seed = 0;
6482  VULKAN_HPP_HASH_COMBINE( seed, latencySleepInfoNV.sType );
6483  VULKAN_HPP_HASH_COMBINE( seed, latencySleepInfoNV.pNext );
6484  VULKAN_HPP_HASH_COMBINE( seed, latencySleepInfoNV.signalSemaphore );
6485  VULKAN_HPP_HASH_COMBINE( seed, latencySleepInfoNV.value );
6486  return seed;
6487  }
6488  };
6489 
6490  template <>
6491  struct hash<VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV>
6492  {
6493  std::size_t operator()( VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV const & latencySleepModeInfoNV ) const VULKAN_HPP_NOEXCEPT
6494  {
6495  std::size_t seed = 0;
6496  VULKAN_HPP_HASH_COMBINE( seed, latencySleepModeInfoNV.sType );
6497  VULKAN_HPP_HASH_COMBINE( seed, latencySleepModeInfoNV.pNext );
6498  VULKAN_HPP_HASH_COMBINE( seed, latencySleepModeInfoNV.lowLatencyMode );
6499  VULKAN_HPP_HASH_COMBINE( seed, latencySleepModeInfoNV.lowLatencyBoost );
6500  VULKAN_HPP_HASH_COMBINE( seed, latencySleepModeInfoNV.minimumIntervalUs );
6501  return seed;
6502  }
6503  };
6504 
6505  template <>
6506  struct hash<VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV>
6507  {
6508  std::size_t operator()( VULKAN_HPP_NAMESPACE::LatencySubmissionPresentIdNV const & latencySubmissionPresentIdNV ) const VULKAN_HPP_NOEXCEPT
6509  {
6510  std::size_t seed = 0;
6511  VULKAN_HPP_HASH_COMBINE( seed, latencySubmissionPresentIdNV.sType );
6512  VULKAN_HPP_HASH_COMBINE( seed, latencySubmissionPresentIdNV.pNext );
6513  VULKAN_HPP_HASH_COMBINE( seed, latencySubmissionPresentIdNV.presentID );
6514  return seed;
6515  }
6516  };
6517 
6518  template <>
6519  struct hash<VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV>
6520  {
6521  std::size_t operator()( VULKAN_HPP_NAMESPACE::LatencySurfaceCapabilitiesNV const & latencySurfaceCapabilitiesNV ) const VULKAN_HPP_NOEXCEPT
6522  {
6523  std::size_t seed = 0;
6524  VULKAN_HPP_HASH_COMBINE( seed, latencySurfaceCapabilitiesNV.sType );
6525  VULKAN_HPP_HASH_COMBINE( seed, latencySurfaceCapabilitiesNV.pNext );
6526  VULKAN_HPP_HASH_COMBINE( seed, latencySurfaceCapabilitiesNV.presentModeCount );
6527  VULKAN_HPP_HASH_COMBINE( seed, latencySurfaceCapabilitiesNV.pPresentModes );
6528  return seed;
6529  }
6530  };
6531 
6532  template <>
6533  struct hash<VULKAN_HPP_NAMESPACE::LayerProperties>
6534  {
6535  std::size_t operator()( VULKAN_HPP_NAMESPACE::LayerProperties const & layerProperties ) const VULKAN_HPP_NOEXCEPT
6536  {
6537  std::size_t seed = 0;
6538  for ( size_t i = 0; i < VK_MAX_EXTENSION_NAME_SIZE; ++i )
6539  {
6540  VULKAN_HPP_HASH_COMBINE( seed, layerProperties.layerName[i] );
6541  }
6542  VULKAN_HPP_HASH_COMBINE( seed, layerProperties.specVersion );
6543  VULKAN_HPP_HASH_COMBINE( seed, layerProperties.implementationVersion );
6544  for ( size_t i = 0; i < VK_MAX_DESCRIPTION_SIZE; ++i )
6545  {
6546  VULKAN_HPP_HASH_COMBINE( seed, layerProperties.description[i] );
6547  }
6548  return seed;
6549  }
6550  };
6551 
6552  template <>
6553  struct hash<VULKAN_HPP_NAMESPACE::LayerSettingEXT>
6554  {
6555  std::size_t operator()( VULKAN_HPP_NAMESPACE::LayerSettingEXT const & layerSettingEXT ) const VULKAN_HPP_NOEXCEPT
6556  {
6557  std::size_t seed = 0;
6558  for ( const char * p = layerSettingEXT.pLayerName; *p != '\0'; ++p )
6559  {
6560  VULKAN_HPP_HASH_COMBINE( seed, *p );
6561  }
6562  for ( const char * p = layerSettingEXT.pSettingName; *p != '\0'; ++p )
6563  {
6564  VULKAN_HPP_HASH_COMBINE( seed, *p );
6565  }
6566  VULKAN_HPP_HASH_COMBINE( seed, layerSettingEXT.type );
6567  VULKAN_HPP_HASH_COMBINE( seed, layerSettingEXT.valueCount );
6568  VULKAN_HPP_HASH_COMBINE( seed, layerSettingEXT.pValues );
6569  return seed;
6570  }
6571  };
6572 
6573  template <>
6574  struct hash<VULKAN_HPP_NAMESPACE::LayerSettingsCreateInfoEXT>
6575  {
6576  std::size_t operator()( VULKAN_HPP_NAMESPACE::LayerSettingsCreateInfoEXT const & layerSettingsCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
6577  {
6578  std::size_t seed = 0;
6579  VULKAN_HPP_HASH_COMBINE( seed, layerSettingsCreateInfoEXT.sType );
6580  VULKAN_HPP_HASH_COMBINE( seed, layerSettingsCreateInfoEXT.pNext );
6581  VULKAN_HPP_HASH_COMBINE( seed, layerSettingsCreateInfoEXT.settingCount );
6582  VULKAN_HPP_HASH_COMBINE( seed, layerSettingsCreateInfoEXT.pSettings );
6583  return seed;
6584  }
6585  };
6586 
6587 # if defined( VK_USE_PLATFORM_MACOS_MVK )
6588  template <>
6589  struct hash<VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK>
6590  {
6591  std::size_t operator()( VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK const & macOSSurfaceCreateInfoMVK ) const VULKAN_HPP_NOEXCEPT
6592  {
6593  std::size_t seed = 0;
6594  VULKAN_HPP_HASH_COMBINE( seed, macOSSurfaceCreateInfoMVK.sType );
6595  VULKAN_HPP_HASH_COMBINE( seed, macOSSurfaceCreateInfoMVK.pNext );
6596  VULKAN_HPP_HASH_COMBINE( seed, macOSSurfaceCreateInfoMVK.flags );
6597  VULKAN_HPP_HASH_COMBINE( seed, macOSSurfaceCreateInfoMVK.pView );
6598  return seed;
6599  }
6600  };
6601 # endif /*VK_USE_PLATFORM_MACOS_MVK*/
6602 
6603  template <>
6604  struct hash<VULKAN_HPP_NAMESPACE::MappedMemoryRange>
6605  {
6606  std::size_t operator()( VULKAN_HPP_NAMESPACE::MappedMemoryRange const & mappedMemoryRange ) const VULKAN_HPP_NOEXCEPT
6607  {
6608  std::size_t seed = 0;
6609  VULKAN_HPP_HASH_COMBINE( seed, mappedMemoryRange.sType );
6610  VULKAN_HPP_HASH_COMBINE( seed, mappedMemoryRange.pNext );
6611  VULKAN_HPP_HASH_COMBINE( seed, mappedMemoryRange.memory );
6612  VULKAN_HPP_HASH_COMBINE( seed, mappedMemoryRange.offset );
6613  VULKAN_HPP_HASH_COMBINE( seed, mappedMemoryRange.size );
6614  return seed;
6615  }
6616  };
6617 
6618  template <>
6619  struct hash<VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo>
6620  {
6621  std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryAllocateFlagsInfo const & memoryAllocateFlagsInfo ) const VULKAN_HPP_NOEXCEPT
6622  {
6623  std::size_t seed = 0;
6624  VULKAN_HPP_HASH_COMBINE( seed, memoryAllocateFlagsInfo.sType );
6625  VULKAN_HPP_HASH_COMBINE( seed, memoryAllocateFlagsInfo.pNext );
6626  VULKAN_HPP_HASH_COMBINE( seed, memoryAllocateFlagsInfo.flags );
6627  VULKAN_HPP_HASH_COMBINE( seed, memoryAllocateFlagsInfo.deviceMask );
6628  return seed;
6629  }
6630  };
6631 
6632  template <>
6633  struct hash<VULKAN_HPP_NAMESPACE::MemoryAllocateInfo>
6634  {
6635  std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryAllocateInfo const & memoryAllocateInfo ) const VULKAN_HPP_NOEXCEPT
6636  {
6637  std::size_t seed = 0;
6638  VULKAN_HPP_HASH_COMBINE( seed, memoryAllocateInfo.sType );
6639  VULKAN_HPP_HASH_COMBINE( seed, memoryAllocateInfo.pNext );
6640  VULKAN_HPP_HASH_COMBINE( seed, memoryAllocateInfo.allocationSize );
6641  VULKAN_HPP_HASH_COMBINE( seed, memoryAllocateInfo.memoryTypeIndex );
6642  return seed;
6643  }
6644  };
6645 
6646  template <>
6647  struct hash<VULKAN_HPP_NAMESPACE::MemoryBarrier>
6648  {
6649  std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryBarrier const & memoryBarrier ) const VULKAN_HPP_NOEXCEPT
6650  {
6651  std::size_t seed = 0;
6652  VULKAN_HPP_HASH_COMBINE( seed, memoryBarrier.sType );
6653  VULKAN_HPP_HASH_COMBINE( seed, memoryBarrier.pNext );
6654  VULKAN_HPP_HASH_COMBINE( seed, memoryBarrier.srcAccessMask );
6655  VULKAN_HPP_HASH_COMBINE( seed, memoryBarrier.dstAccessMask );
6656  return seed;
6657  }
6658  };
6659 
6660  template <>
6661  struct hash<VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo>
6662  {
6663  std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryDedicatedAllocateInfo const & memoryDedicatedAllocateInfo ) const VULKAN_HPP_NOEXCEPT
6664  {
6665  std::size_t seed = 0;
6666  VULKAN_HPP_HASH_COMBINE( seed, memoryDedicatedAllocateInfo.sType );
6667  VULKAN_HPP_HASH_COMBINE( seed, memoryDedicatedAllocateInfo.pNext );
6668  VULKAN_HPP_HASH_COMBINE( seed, memoryDedicatedAllocateInfo.image );
6669  VULKAN_HPP_HASH_COMBINE( seed, memoryDedicatedAllocateInfo.buffer );
6670  return seed;
6671  }
6672  };
6673 
6674  template <>
6675  struct hash<VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements>
6676  {
6677  std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryDedicatedRequirements const & memoryDedicatedRequirements ) const VULKAN_HPP_NOEXCEPT
6678  {
6679  std::size_t seed = 0;
6680  VULKAN_HPP_HASH_COMBINE( seed, memoryDedicatedRequirements.sType );
6681  VULKAN_HPP_HASH_COMBINE( seed, memoryDedicatedRequirements.pNext );
6682  VULKAN_HPP_HASH_COMBINE( seed, memoryDedicatedRequirements.prefersDedicatedAllocation );
6683  VULKAN_HPP_HASH_COMBINE( seed, memoryDedicatedRequirements.requiresDedicatedAllocation );
6684  return seed;
6685  }
6686  };
6687 
6688  template <>
6689  struct hash<VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR>
6690  {
6691  std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR const & memoryFdPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
6692  {
6693  std::size_t seed = 0;
6694  VULKAN_HPP_HASH_COMBINE( seed, memoryFdPropertiesKHR.sType );
6695  VULKAN_HPP_HASH_COMBINE( seed, memoryFdPropertiesKHR.pNext );
6696  VULKAN_HPP_HASH_COMBINE( seed, memoryFdPropertiesKHR.memoryTypeBits );
6697  return seed;
6698  }
6699  };
6700 
6701 # if defined( VK_USE_PLATFORM_ANDROID_KHR )
6702  template <>
6703  struct hash<VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID>
6704  {
6705  std::size_t
6706  operator()( VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID const & memoryGetAndroidHardwareBufferInfoANDROID ) const VULKAN_HPP_NOEXCEPT
6707  {
6708  std::size_t seed = 0;
6709  VULKAN_HPP_HASH_COMBINE( seed, memoryGetAndroidHardwareBufferInfoANDROID.sType );
6710  VULKAN_HPP_HASH_COMBINE( seed, memoryGetAndroidHardwareBufferInfoANDROID.pNext );
6711  VULKAN_HPP_HASH_COMBINE( seed, memoryGetAndroidHardwareBufferInfoANDROID.memory );
6712  return seed;
6713  }
6714  };
6715 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
6716 
6717  template <>
6718  struct hash<VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR>
6719  {
6720  std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR const & memoryGetFdInfoKHR ) const VULKAN_HPP_NOEXCEPT
6721  {
6722  std::size_t seed = 0;
6723  VULKAN_HPP_HASH_COMBINE( seed, memoryGetFdInfoKHR.sType );
6724  VULKAN_HPP_HASH_COMBINE( seed, memoryGetFdInfoKHR.pNext );
6725  VULKAN_HPP_HASH_COMBINE( seed, memoryGetFdInfoKHR.memory );
6726  VULKAN_HPP_HASH_COMBINE( seed, memoryGetFdInfoKHR.handleType );
6727  return seed;
6728  }
6729  };
6730 
6731  template <>
6732  struct hash<VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV>
6733  {
6734  std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV const & memoryGetRemoteAddressInfoNV ) const VULKAN_HPP_NOEXCEPT
6735  {
6736  std::size_t seed = 0;
6737  VULKAN_HPP_HASH_COMBINE( seed, memoryGetRemoteAddressInfoNV.sType );
6738  VULKAN_HPP_HASH_COMBINE( seed, memoryGetRemoteAddressInfoNV.pNext );
6739  VULKAN_HPP_HASH_COMBINE( seed, memoryGetRemoteAddressInfoNV.memory );
6740  VULKAN_HPP_HASH_COMBINE( seed, memoryGetRemoteAddressInfoNV.handleType );
6741  return seed;
6742  }
6743  };
6744 
6745 # if defined( VK_USE_PLATFORM_WIN32_KHR )
6746  template <>
6747  struct hash<VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR>
6748  {
6749  std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR const & memoryGetWin32HandleInfoKHR ) const VULKAN_HPP_NOEXCEPT
6750  {
6751  std::size_t seed = 0;
6752  VULKAN_HPP_HASH_COMBINE( seed, memoryGetWin32HandleInfoKHR.sType );
6753  VULKAN_HPP_HASH_COMBINE( seed, memoryGetWin32HandleInfoKHR.pNext );
6754  VULKAN_HPP_HASH_COMBINE( seed, memoryGetWin32HandleInfoKHR.memory );
6755  VULKAN_HPP_HASH_COMBINE( seed, memoryGetWin32HandleInfoKHR.handleType );
6756  return seed;
6757  }
6758  };
6759 # endif /*VK_USE_PLATFORM_WIN32_KHR*/
6760 
6761 # if defined( VK_USE_PLATFORM_FUCHSIA )
6762  template <>
6763  struct hash<VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA>
6764  {
6765  std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA const & memoryGetZirconHandleInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
6766  {
6767  std::size_t seed = 0;
6768  VULKAN_HPP_HASH_COMBINE( seed, memoryGetZirconHandleInfoFUCHSIA.sType );
6769  VULKAN_HPP_HASH_COMBINE( seed, memoryGetZirconHandleInfoFUCHSIA.pNext );
6770  VULKAN_HPP_HASH_COMBINE( seed, memoryGetZirconHandleInfoFUCHSIA.memory );
6771  VULKAN_HPP_HASH_COMBINE( seed, memoryGetZirconHandleInfoFUCHSIA.handleType );
6772  return seed;
6773  }
6774  };
6775 # endif /*VK_USE_PLATFORM_FUCHSIA*/
6776 
6777  template <>
6778  struct hash<VULKAN_HPP_NAMESPACE::MemoryHeap>
6779  {
6780  std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryHeap const & memoryHeap ) const VULKAN_HPP_NOEXCEPT
6781  {
6782  std::size_t seed = 0;
6783  VULKAN_HPP_HASH_COMBINE( seed, memoryHeap.size );
6784  VULKAN_HPP_HASH_COMBINE( seed, memoryHeap.flags );
6785  return seed;
6786  }
6787  };
6788 
6789  template <>
6790  struct hash<VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT>
6791  {
6792  std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT const & memoryHostPointerPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
6793  {
6794  std::size_t seed = 0;
6795  VULKAN_HPP_HASH_COMBINE( seed, memoryHostPointerPropertiesEXT.sType );
6796  VULKAN_HPP_HASH_COMBINE( seed, memoryHostPointerPropertiesEXT.pNext );
6797  VULKAN_HPP_HASH_COMBINE( seed, memoryHostPointerPropertiesEXT.memoryTypeBits );
6798  return seed;
6799  }
6800  };
6801 
6802  template <>
6803  struct hash<VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR>
6804  {
6805  std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryMapInfoKHR const & memoryMapInfoKHR ) const VULKAN_HPP_NOEXCEPT
6806  {
6807  std::size_t seed = 0;
6808  VULKAN_HPP_HASH_COMBINE( seed, memoryMapInfoKHR.sType );
6809  VULKAN_HPP_HASH_COMBINE( seed, memoryMapInfoKHR.pNext );
6810  VULKAN_HPP_HASH_COMBINE( seed, memoryMapInfoKHR.flags );
6811  VULKAN_HPP_HASH_COMBINE( seed, memoryMapInfoKHR.memory );
6812  VULKAN_HPP_HASH_COMBINE( seed, memoryMapInfoKHR.offset );
6813  VULKAN_HPP_HASH_COMBINE( seed, memoryMapInfoKHR.size );
6814  return seed;
6815  }
6816  };
6817 
6818  template <>
6819  struct hash<VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo>
6820  {
6821  std::size_t
6822  operator()( VULKAN_HPP_NAMESPACE::MemoryOpaqueCaptureAddressAllocateInfo const & memoryOpaqueCaptureAddressAllocateInfo ) const VULKAN_HPP_NOEXCEPT
6823  {
6824  std::size_t seed = 0;
6825  VULKAN_HPP_HASH_COMBINE( seed, memoryOpaqueCaptureAddressAllocateInfo.sType );
6826  VULKAN_HPP_HASH_COMBINE( seed, memoryOpaqueCaptureAddressAllocateInfo.pNext );
6827  VULKAN_HPP_HASH_COMBINE( seed, memoryOpaqueCaptureAddressAllocateInfo.opaqueCaptureAddress );
6828  return seed;
6829  }
6830  };
6831 
6832  template <>
6833  struct hash<VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT>
6834  {
6835  std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryPriorityAllocateInfoEXT const & memoryPriorityAllocateInfoEXT ) const VULKAN_HPP_NOEXCEPT
6836  {
6837  std::size_t seed = 0;
6838  VULKAN_HPP_HASH_COMBINE( seed, memoryPriorityAllocateInfoEXT.sType );
6839  VULKAN_HPP_HASH_COMBINE( seed, memoryPriorityAllocateInfoEXT.pNext );
6840  VULKAN_HPP_HASH_COMBINE( seed, memoryPriorityAllocateInfoEXT.priority );
6841  return seed;
6842  }
6843  };
6844 
6845  template <>
6846  struct hash<VULKAN_HPP_NAMESPACE::MemoryRequirements>
6847  {
6848  std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryRequirements const & memoryRequirements ) const VULKAN_HPP_NOEXCEPT
6849  {
6850  std::size_t seed = 0;
6851  VULKAN_HPP_HASH_COMBINE( seed, memoryRequirements.size );
6852  VULKAN_HPP_HASH_COMBINE( seed, memoryRequirements.alignment );
6853  VULKAN_HPP_HASH_COMBINE( seed, memoryRequirements.memoryTypeBits );
6854  return seed;
6855  }
6856  };
6857 
6858  template <>
6859  struct hash<VULKAN_HPP_NAMESPACE::MemoryRequirements2>
6860  {
6861  std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryRequirements2 const & memoryRequirements2 ) const VULKAN_HPP_NOEXCEPT
6862  {
6863  std::size_t seed = 0;
6864  VULKAN_HPP_HASH_COMBINE( seed, memoryRequirements2.sType );
6865  VULKAN_HPP_HASH_COMBINE( seed, memoryRequirements2.pNext );
6866  VULKAN_HPP_HASH_COMBINE( seed, memoryRequirements2.memoryRequirements );
6867  return seed;
6868  }
6869  };
6870 
6871  template <>
6872  struct hash<VULKAN_HPP_NAMESPACE::MemoryType>
6873  {
6874  std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryType const & memoryType ) const VULKAN_HPP_NOEXCEPT
6875  {
6876  std::size_t seed = 0;
6877  VULKAN_HPP_HASH_COMBINE( seed, memoryType.propertyFlags );
6878  VULKAN_HPP_HASH_COMBINE( seed, memoryType.heapIndex );
6879  return seed;
6880  }
6881  };
6882 
6883  template <>
6884  struct hash<VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR>
6885  {
6886  std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryUnmapInfoKHR const & memoryUnmapInfoKHR ) const VULKAN_HPP_NOEXCEPT
6887  {
6888  std::size_t seed = 0;
6889  VULKAN_HPP_HASH_COMBINE( seed, memoryUnmapInfoKHR.sType );
6890  VULKAN_HPP_HASH_COMBINE( seed, memoryUnmapInfoKHR.pNext );
6891  VULKAN_HPP_HASH_COMBINE( seed, memoryUnmapInfoKHR.flags );
6892  VULKAN_HPP_HASH_COMBINE( seed, memoryUnmapInfoKHR.memory );
6893  return seed;
6894  }
6895  };
6896 
6897 # if defined( VK_USE_PLATFORM_WIN32_KHR )
6898  template <>
6899  struct hash<VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR>
6900  {
6901  std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR const & memoryWin32HandlePropertiesKHR ) const VULKAN_HPP_NOEXCEPT
6902  {
6903  std::size_t seed = 0;
6904  VULKAN_HPP_HASH_COMBINE( seed, memoryWin32HandlePropertiesKHR.sType );
6905  VULKAN_HPP_HASH_COMBINE( seed, memoryWin32HandlePropertiesKHR.pNext );
6906  VULKAN_HPP_HASH_COMBINE( seed, memoryWin32HandlePropertiesKHR.memoryTypeBits );
6907  return seed;
6908  }
6909  };
6910 # endif /*VK_USE_PLATFORM_WIN32_KHR*/
6911 
6912 # if defined( VK_USE_PLATFORM_FUCHSIA )
6913  template <>
6914  struct hash<VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA>
6915  {
6916  std::size_t operator()( VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA const & memoryZirconHandlePropertiesFUCHSIA ) const VULKAN_HPP_NOEXCEPT
6917  {
6918  std::size_t seed = 0;
6919  VULKAN_HPP_HASH_COMBINE( seed, memoryZirconHandlePropertiesFUCHSIA.sType );
6920  VULKAN_HPP_HASH_COMBINE( seed, memoryZirconHandlePropertiesFUCHSIA.pNext );
6921  VULKAN_HPP_HASH_COMBINE( seed, memoryZirconHandlePropertiesFUCHSIA.memoryTypeBits );
6922  return seed;
6923  }
6924  };
6925 # endif /*VK_USE_PLATFORM_FUCHSIA*/
6926 
6927 # if defined( VK_USE_PLATFORM_METAL_EXT )
6928  template <>
6929  struct hash<VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT>
6930  {
6931  std::size_t operator()( VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT const & metalSurfaceCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
6932  {
6933  std::size_t seed = 0;
6934  VULKAN_HPP_HASH_COMBINE( seed, metalSurfaceCreateInfoEXT.sType );
6935  VULKAN_HPP_HASH_COMBINE( seed, metalSurfaceCreateInfoEXT.pNext );
6936  VULKAN_HPP_HASH_COMBINE( seed, metalSurfaceCreateInfoEXT.flags );
6937  VULKAN_HPP_HASH_COMBINE( seed, metalSurfaceCreateInfoEXT.pLayer );
6938  return seed;
6939  }
6940  };
6941 # endif /*VK_USE_PLATFORM_METAL_EXT*/
6942 
6943  template <>
6944  struct hash<VULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT>
6945  {
6946  std::size_t operator()( VULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT const & micromapBuildSizesInfoEXT ) const VULKAN_HPP_NOEXCEPT
6947  {
6948  std::size_t seed = 0;
6949  VULKAN_HPP_HASH_COMBINE( seed, micromapBuildSizesInfoEXT.sType );
6950  VULKAN_HPP_HASH_COMBINE( seed, micromapBuildSizesInfoEXT.pNext );
6951  VULKAN_HPP_HASH_COMBINE( seed, micromapBuildSizesInfoEXT.micromapSize );
6952  VULKAN_HPP_HASH_COMBINE( seed, micromapBuildSizesInfoEXT.buildScratchSize );
6953  VULKAN_HPP_HASH_COMBINE( seed, micromapBuildSizesInfoEXT.discardable );
6954  return seed;
6955  }
6956  };
6957 
6958  template <>
6959  struct hash<VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT>
6960  {
6961  std::size_t operator()( VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT const & micromapCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
6962  {
6963  std::size_t seed = 0;
6964  VULKAN_HPP_HASH_COMBINE( seed, micromapCreateInfoEXT.sType );
6965  VULKAN_HPP_HASH_COMBINE( seed, micromapCreateInfoEXT.pNext );
6966  VULKAN_HPP_HASH_COMBINE( seed, micromapCreateInfoEXT.createFlags );
6967  VULKAN_HPP_HASH_COMBINE( seed, micromapCreateInfoEXT.buffer );
6968  VULKAN_HPP_HASH_COMBINE( seed, micromapCreateInfoEXT.offset );
6969  VULKAN_HPP_HASH_COMBINE( seed, micromapCreateInfoEXT.size );
6970  VULKAN_HPP_HASH_COMBINE( seed, micromapCreateInfoEXT.type );
6971  VULKAN_HPP_HASH_COMBINE( seed, micromapCreateInfoEXT.deviceAddress );
6972  return seed;
6973  }
6974  };
6975 
6976  template <>
6977  struct hash<VULKAN_HPP_NAMESPACE::MicromapTriangleEXT>
6978  {
6979  std::size_t operator()( VULKAN_HPP_NAMESPACE::MicromapTriangleEXT const & micromapTriangleEXT ) const VULKAN_HPP_NOEXCEPT
6980  {
6981  std::size_t seed = 0;
6982  VULKAN_HPP_HASH_COMBINE( seed, micromapTriangleEXT.dataOffset );
6983  VULKAN_HPP_HASH_COMBINE( seed, micromapTriangleEXT.subdivisionLevel );
6984  VULKAN_HPP_HASH_COMBINE( seed, micromapTriangleEXT.format );
6985  return seed;
6986  }
6987  };
6988 
6989  template <>
6990  struct hash<VULKAN_HPP_NAMESPACE::MicromapVersionInfoEXT>
6991  {
6992  std::size_t operator()( VULKAN_HPP_NAMESPACE::MicromapVersionInfoEXT const & micromapVersionInfoEXT ) const VULKAN_HPP_NOEXCEPT
6993  {
6994  std::size_t seed = 0;
6995  VULKAN_HPP_HASH_COMBINE( seed, micromapVersionInfoEXT.sType );
6996  VULKAN_HPP_HASH_COMBINE( seed, micromapVersionInfoEXT.pNext );
6997  VULKAN_HPP_HASH_COMBINE( seed, micromapVersionInfoEXT.pVersionData );
6998  return seed;
6999  }
7000  };
7001 
7002  template <>
7003  struct hash<VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT>
7004  {
7005  std::size_t operator()( VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT const & multiDrawIndexedInfoEXT ) const VULKAN_HPP_NOEXCEPT
7006  {
7007  std::size_t seed = 0;
7008  VULKAN_HPP_HASH_COMBINE( seed, multiDrawIndexedInfoEXT.firstIndex );
7009  VULKAN_HPP_HASH_COMBINE( seed, multiDrawIndexedInfoEXT.indexCount );
7010  VULKAN_HPP_HASH_COMBINE( seed, multiDrawIndexedInfoEXT.vertexOffset );
7011  return seed;
7012  }
7013  };
7014 
7015  template <>
7016  struct hash<VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT>
7017  {
7018  std::size_t operator()( VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT const & multiDrawInfoEXT ) const VULKAN_HPP_NOEXCEPT
7019  {
7020  std::size_t seed = 0;
7021  VULKAN_HPP_HASH_COMBINE( seed, multiDrawInfoEXT.firstVertex );
7022  VULKAN_HPP_HASH_COMBINE( seed, multiDrawInfoEXT.vertexCount );
7023  return seed;
7024  }
7025  };
7026 
7027  template <>
7028  struct hash<VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT>
7029  {
7030  std::size_t operator()( VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT const & multisamplePropertiesEXT ) const VULKAN_HPP_NOEXCEPT
7031  {
7032  std::size_t seed = 0;
7033  VULKAN_HPP_HASH_COMBINE( seed, multisamplePropertiesEXT.sType );
7034  VULKAN_HPP_HASH_COMBINE( seed, multisamplePropertiesEXT.pNext );
7035  VULKAN_HPP_HASH_COMBINE( seed, multisamplePropertiesEXT.maxSampleLocationGridSize );
7036  return seed;
7037  }
7038  };
7039 
7040  template <>
7041  struct hash<VULKAN_HPP_NAMESPACE::MultisampledRenderToSingleSampledInfoEXT>
7042  {
7043  std::size_t
7044  operator()( VULKAN_HPP_NAMESPACE::MultisampledRenderToSingleSampledInfoEXT const & multisampledRenderToSingleSampledInfoEXT ) const VULKAN_HPP_NOEXCEPT
7045  {
7046  std::size_t seed = 0;
7047  VULKAN_HPP_HASH_COMBINE( seed, multisampledRenderToSingleSampledInfoEXT.sType );
7048  VULKAN_HPP_HASH_COMBINE( seed, multisampledRenderToSingleSampledInfoEXT.pNext );
7049  VULKAN_HPP_HASH_COMBINE( seed, multisampledRenderToSingleSampledInfoEXT.multisampledRenderToSingleSampledEnable );
7050  VULKAN_HPP_HASH_COMBINE( seed, multisampledRenderToSingleSampledInfoEXT.rasterizationSamples );
7051  return seed;
7052  }
7053  };
7054 
7055  template <>
7056  struct hash<VULKAN_HPP_NAMESPACE::MultiviewPerViewAttributesInfoNVX>
7057  {
7058  std::size_t operator()( VULKAN_HPP_NAMESPACE::MultiviewPerViewAttributesInfoNVX const & multiviewPerViewAttributesInfoNVX ) const VULKAN_HPP_NOEXCEPT
7059  {
7060  std::size_t seed = 0;
7061  VULKAN_HPP_HASH_COMBINE( seed, multiviewPerViewAttributesInfoNVX.sType );
7062  VULKAN_HPP_HASH_COMBINE( seed, multiviewPerViewAttributesInfoNVX.pNext );
7063  VULKAN_HPP_HASH_COMBINE( seed, multiviewPerViewAttributesInfoNVX.perViewAttributes );
7064  VULKAN_HPP_HASH_COMBINE( seed, multiviewPerViewAttributesInfoNVX.perViewAttributesPositionXOnly );
7065  return seed;
7066  }
7067  };
7068 
7069  template <>
7070  struct hash<VULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM>
7071  {
7072  std::size_t
7073  operator()( VULKAN_HPP_NAMESPACE::MultiviewPerViewRenderAreasRenderPassBeginInfoQCOM const & multiviewPerViewRenderAreasRenderPassBeginInfoQCOM ) const
7075  {
7076  std::size_t seed = 0;
7077  VULKAN_HPP_HASH_COMBINE( seed, multiviewPerViewRenderAreasRenderPassBeginInfoQCOM.sType );
7078  VULKAN_HPP_HASH_COMBINE( seed, multiviewPerViewRenderAreasRenderPassBeginInfoQCOM.pNext );
7079  VULKAN_HPP_HASH_COMBINE( seed, multiviewPerViewRenderAreasRenderPassBeginInfoQCOM.perViewRenderAreaCount );
7080  VULKAN_HPP_HASH_COMBINE( seed, multiviewPerViewRenderAreasRenderPassBeginInfoQCOM.pPerViewRenderAreas );
7081  return seed;
7082  }
7083  };
7084 
7085  template <>
7086  struct hash<VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT>
7087  {
7088  std::size_t operator()( VULKAN_HPP_NAMESPACE::MutableDescriptorTypeListEXT const & mutableDescriptorTypeListEXT ) const VULKAN_HPP_NOEXCEPT
7089  {
7090  std::size_t seed = 0;
7091  VULKAN_HPP_HASH_COMBINE( seed, mutableDescriptorTypeListEXT.descriptorTypeCount );
7092  VULKAN_HPP_HASH_COMBINE( seed, mutableDescriptorTypeListEXT.pDescriptorTypes );
7093  return seed;
7094  }
7095  };
7096 
7097  template <>
7098  struct hash<VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoEXT>
7099  {
7100  std::size_t operator()( VULKAN_HPP_NAMESPACE::MutableDescriptorTypeCreateInfoEXT const & mutableDescriptorTypeCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
7101  {
7102  std::size_t seed = 0;
7103  VULKAN_HPP_HASH_COMBINE( seed, mutableDescriptorTypeCreateInfoEXT.sType );
7104  VULKAN_HPP_HASH_COMBINE( seed, mutableDescriptorTypeCreateInfoEXT.pNext );
7105  VULKAN_HPP_HASH_COMBINE( seed, mutableDescriptorTypeCreateInfoEXT.mutableDescriptorTypeListCount );
7106  VULKAN_HPP_HASH_COMBINE( seed, mutableDescriptorTypeCreateInfoEXT.pMutableDescriptorTypeLists );
7107  return seed;
7108  }
7109  };
7110 
7111  template <>
7112  struct hash<VULKAN_HPP_NAMESPACE::OpaqueCaptureDescriptorDataCreateInfoEXT>
7113  {
7114  std::size_t
7115  operator()( VULKAN_HPP_NAMESPACE::OpaqueCaptureDescriptorDataCreateInfoEXT const & opaqueCaptureDescriptorDataCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
7116  {
7117  std::size_t seed = 0;
7118  VULKAN_HPP_HASH_COMBINE( seed, opaqueCaptureDescriptorDataCreateInfoEXT.sType );
7119  VULKAN_HPP_HASH_COMBINE( seed, opaqueCaptureDescriptorDataCreateInfoEXT.pNext );
7120  VULKAN_HPP_HASH_COMBINE( seed, opaqueCaptureDescriptorDataCreateInfoEXT.opaqueCaptureDescriptorData );
7121  return seed;
7122  }
7123  };
7124 
7125  template <>
7126  struct hash<VULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV>
7127  {
7128  std::size_t operator()( VULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV const & opticalFlowExecuteInfoNV ) const VULKAN_HPP_NOEXCEPT
7129  {
7130  std::size_t seed = 0;
7131  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowExecuteInfoNV.sType );
7132  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowExecuteInfoNV.pNext );
7133  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowExecuteInfoNV.flags );
7134  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowExecuteInfoNV.regionCount );
7135  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowExecuteInfoNV.pRegions );
7136  return seed;
7137  }
7138  };
7139 
7140  template <>
7141  struct hash<VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV>
7142  {
7143  std::size_t operator()( VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV const & opticalFlowImageFormatInfoNV ) const VULKAN_HPP_NOEXCEPT
7144  {
7145  std::size_t seed = 0;
7146  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowImageFormatInfoNV.sType );
7147  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowImageFormatInfoNV.pNext );
7148  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowImageFormatInfoNV.usage );
7149  return seed;
7150  }
7151  };
7152 
7153  template <>
7154  struct hash<VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV>
7155  {
7156  std::size_t operator()( VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV const & opticalFlowImageFormatPropertiesNV ) const VULKAN_HPP_NOEXCEPT
7157  {
7158  std::size_t seed = 0;
7159  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowImageFormatPropertiesNV.sType );
7160  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowImageFormatPropertiesNV.pNext );
7161  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowImageFormatPropertiesNV.format );
7162  return seed;
7163  }
7164  };
7165 
7166  template <>
7167  struct hash<VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV>
7168  {
7169  std::size_t operator()( VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV const & opticalFlowSessionCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
7170  {
7171  std::size_t seed = 0;
7172  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowSessionCreateInfoNV.sType );
7173  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowSessionCreateInfoNV.pNext );
7174  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowSessionCreateInfoNV.width );
7175  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowSessionCreateInfoNV.height );
7176  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowSessionCreateInfoNV.imageFormat );
7177  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowSessionCreateInfoNV.flowVectorFormat );
7178  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowSessionCreateInfoNV.costFormat );
7179  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowSessionCreateInfoNV.outputGridSize );
7180  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowSessionCreateInfoNV.hintGridSize );
7181  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowSessionCreateInfoNV.performanceLevel );
7182  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowSessionCreateInfoNV.flags );
7183  return seed;
7184  }
7185  };
7186 
7187  template <>
7188  struct hash<VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreatePrivateDataInfoNV>
7189  {
7190  std::size_t
7191  operator()( VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreatePrivateDataInfoNV const & opticalFlowSessionCreatePrivateDataInfoNV ) const VULKAN_HPP_NOEXCEPT
7192  {
7193  std::size_t seed = 0;
7194  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowSessionCreatePrivateDataInfoNV.sType );
7195  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowSessionCreatePrivateDataInfoNV.pNext );
7196  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowSessionCreatePrivateDataInfoNV.id );
7197  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowSessionCreatePrivateDataInfoNV.size );
7198  VULKAN_HPP_HASH_COMBINE( seed, opticalFlowSessionCreatePrivateDataInfoNV.pPrivateData );
7199  return seed;
7200  }
7201  };
7202 
7203  template <>
7204  struct hash<VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV>
7205  {
7206  std::size_t operator()( VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV const & outOfBandQueueTypeInfoNV ) const VULKAN_HPP_NOEXCEPT
7207  {
7208  std::size_t seed = 0;
7209  VULKAN_HPP_HASH_COMBINE( seed, outOfBandQueueTypeInfoNV.sType );
7210  VULKAN_HPP_HASH_COMBINE( seed, outOfBandQueueTypeInfoNV.pNext );
7211  VULKAN_HPP_HASH_COMBINE( seed, outOfBandQueueTypeInfoNV.queueType );
7212  return seed;
7213  }
7214  };
7215 
7216  template <>
7217  struct hash<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE>
7218  {
7219  std::size_t operator()( VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE const & pastPresentationTimingGOOGLE ) const VULKAN_HPP_NOEXCEPT
7220  {
7221  std::size_t seed = 0;
7222  VULKAN_HPP_HASH_COMBINE( seed, pastPresentationTimingGOOGLE.presentID );
7223  VULKAN_HPP_HASH_COMBINE( seed, pastPresentationTimingGOOGLE.desiredPresentTime );
7224  VULKAN_HPP_HASH_COMBINE( seed, pastPresentationTimingGOOGLE.actualPresentTime );
7225  VULKAN_HPP_HASH_COMBINE( seed, pastPresentationTimingGOOGLE.earliestPresentTime );
7226  VULKAN_HPP_HASH_COMBINE( seed, pastPresentationTimingGOOGLE.presentMargin );
7227  return seed;
7228  }
7229  };
7230 
7231  template <>
7232  struct hash<VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL>
7233  {
7234  std::size_t
7235  operator()( VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL const & performanceConfigurationAcquireInfoINTEL ) const VULKAN_HPP_NOEXCEPT
7236  {
7237  std::size_t seed = 0;
7238  VULKAN_HPP_HASH_COMBINE( seed, performanceConfigurationAcquireInfoINTEL.sType );
7239  VULKAN_HPP_HASH_COMBINE( seed, performanceConfigurationAcquireInfoINTEL.pNext );
7240  VULKAN_HPP_HASH_COMBINE( seed, performanceConfigurationAcquireInfoINTEL.type );
7241  return seed;
7242  }
7243  };
7244 
7245  template <>
7246  struct hash<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR>
7247  {
7248  std::size_t operator()( VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR const & performanceCounterDescriptionKHR ) const VULKAN_HPP_NOEXCEPT
7249  {
7250  std::size_t seed = 0;
7251  VULKAN_HPP_HASH_COMBINE( seed, performanceCounterDescriptionKHR.sType );
7252  VULKAN_HPP_HASH_COMBINE( seed, performanceCounterDescriptionKHR.pNext );
7253  VULKAN_HPP_HASH_COMBINE( seed, performanceCounterDescriptionKHR.flags );
7254  for ( size_t i = 0; i < VK_MAX_DESCRIPTION_SIZE; ++i )
7255  {
7256  VULKAN_HPP_HASH_COMBINE( seed, performanceCounterDescriptionKHR.name[i] );
7257  }
7258  for ( size_t i = 0; i < VK_MAX_DESCRIPTION_SIZE; ++i )
7259  {
7260  VULKAN_HPP_HASH_COMBINE( seed, performanceCounterDescriptionKHR.category[i] );
7261  }
7262  for ( size_t i = 0; i < VK_MAX_DESCRIPTION_SIZE; ++i )
7263  {
7264  VULKAN_HPP_HASH_COMBINE( seed, performanceCounterDescriptionKHR.description[i] );
7265  }
7266  return seed;
7267  }
7268  };
7269 
7270  template <>
7271  struct hash<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR>
7272  {
7273  std::size_t operator()( VULKAN_HPP_NAMESPACE::PerformanceCounterKHR const & performanceCounterKHR ) const VULKAN_HPP_NOEXCEPT
7274  {
7275  std::size_t seed = 0;
7276  VULKAN_HPP_HASH_COMBINE( seed, performanceCounterKHR.sType );
7277  VULKAN_HPP_HASH_COMBINE( seed, performanceCounterKHR.pNext );
7278  VULKAN_HPP_HASH_COMBINE( seed, performanceCounterKHR.unit );
7279  VULKAN_HPP_HASH_COMBINE( seed, performanceCounterKHR.scope );
7280  VULKAN_HPP_HASH_COMBINE( seed, performanceCounterKHR.storage );
7281  for ( size_t i = 0; i < VK_UUID_SIZE; ++i )
7282  {
7283  VULKAN_HPP_HASH_COMBINE( seed, performanceCounterKHR.uuid[i] );
7284  }
7285  return seed;
7286  }
7287  };
7288 
7289  template <>
7290  struct hash<VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL>
7291  {
7292  std::size_t operator()( VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL const & performanceMarkerInfoINTEL ) const VULKAN_HPP_NOEXCEPT
7293  {
7294  std::size_t seed = 0;
7295  VULKAN_HPP_HASH_COMBINE( seed, performanceMarkerInfoINTEL.sType );
7296  VULKAN_HPP_HASH_COMBINE( seed, performanceMarkerInfoINTEL.pNext );
7297  VULKAN_HPP_HASH_COMBINE( seed, performanceMarkerInfoINTEL.marker );
7298  return seed;
7299  }
7300  };
7301 
7302  template <>
7303  struct hash<VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL>
7304  {
7305  std::size_t operator()( VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL const & performanceOverrideInfoINTEL ) const VULKAN_HPP_NOEXCEPT
7306  {
7307  std::size_t seed = 0;
7308  VULKAN_HPP_HASH_COMBINE( seed, performanceOverrideInfoINTEL.sType );
7309  VULKAN_HPP_HASH_COMBINE( seed, performanceOverrideInfoINTEL.pNext );
7310  VULKAN_HPP_HASH_COMBINE( seed, performanceOverrideInfoINTEL.type );
7311  VULKAN_HPP_HASH_COMBINE( seed, performanceOverrideInfoINTEL.enable );
7312  VULKAN_HPP_HASH_COMBINE( seed, performanceOverrideInfoINTEL.parameter );
7313  return seed;
7314  }
7315  };
7316 
7317  template <>
7318  struct hash<VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR>
7319  {
7320  std::size_t operator()( VULKAN_HPP_NAMESPACE::PerformanceQuerySubmitInfoKHR const & performanceQuerySubmitInfoKHR ) const VULKAN_HPP_NOEXCEPT
7321  {
7322  std::size_t seed = 0;
7323  VULKAN_HPP_HASH_COMBINE( seed, performanceQuerySubmitInfoKHR.sType );
7324  VULKAN_HPP_HASH_COMBINE( seed, performanceQuerySubmitInfoKHR.pNext );
7325  VULKAN_HPP_HASH_COMBINE( seed, performanceQuerySubmitInfoKHR.counterPassIndex );
7326  return seed;
7327  }
7328  };
7329 
7330  template <>
7331  struct hash<VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL>
7332  {
7333  std::size_t operator()( VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL const & performanceStreamMarkerInfoINTEL ) const VULKAN_HPP_NOEXCEPT
7334  {
7335  std::size_t seed = 0;
7336  VULKAN_HPP_HASH_COMBINE( seed, performanceStreamMarkerInfoINTEL.sType );
7337  VULKAN_HPP_HASH_COMBINE( seed, performanceStreamMarkerInfoINTEL.pNext );
7338  VULKAN_HPP_HASH_COMBINE( seed, performanceStreamMarkerInfoINTEL.marker );
7339  return seed;
7340  }
7341  };
7342 
7343  template <>
7344  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures>
7345  {
7346  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevice16BitStorageFeatures const & physicalDevice16BitStorageFeatures ) const VULKAN_HPP_NOEXCEPT
7347  {
7348  std::size_t seed = 0;
7349  VULKAN_HPP_HASH_COMBINE( seed, physicalDevice16BitStorageFeatures.sType );
7350  VULKAN_HPP_HASH_COMBINE( seed, physicalDevice16BitStorageFeatures.pNext );
7351  VULKAN_HPP_HASH_COMBINE( seed, physicalDevice16BitStorageFeatures.storageBuffer16BitAccess );
7352  VULKAN_HPP_HASH_COMBINE( seed, physicalDevice16BitStorageFeatures.uniformAndStorageBuffer16BitAccess );
7353  VULKAN_HPP_HASH_COMBINE( seed, physicalDevice16BitStorageFeatures.storagePushConstant16 );
7354  VULKAN_HPP_HASH_COMBINE( seed, physicalDevice16BitStorageFeatures.storageInputOutput16 );
7355  return seed;
7356  }
7357  };
7358 
7359  template <>
7360  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT>
7361  {
7362  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevice4444FormatsFeaturesEXT const & physicalDevice4444FormatsFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
7363  {
7364  std::size_t seed = 0;
7365  VULKAN_HPP_HASH_COMBINE( seed, physicalDevice4444FormatsFeaturesEXT.sType );
7366  VULKAN_HPP_HASH_COMBINE( seed, physicalDevice4444FormatsFeaturesEXT.pNext );
7367  VULKAN_HPP_HASH_COMBINE( seed, physicalDevice4444FormatsFeaturesEXT.formatA4R4G4B4 );
7368  VULKAN_HPP_HASH_COMBINE( seed, physicalDevice4444FormatsFeaturesEXT.formatA4B4G4R4 );
7369  return seed;
7370  }
7371  };
7372 
7373  template <>
7374  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures>
7375  {
7376  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevice8BitStorageFeatures const & physicalDevice8BitStorageFeatures ) const VULKAN_HPP_NOEXCEPT
7377  {
7378  std::size_t seed = 0;
7379  VULKAN_HPP_HASH_COMBINE( seed, physicalDevice8BitStorageFeatures.sType );
7380  VULKAN_HPP_HASH_COMBINE( seed, physicalDevice8BitStorageFeatures.pNext );
7381  VULKAN_HPP_HASH_COMBINE( seed, physicalDevice8BitStorageFeatures.storageBuffer8BitAccess );
7382  VULKAN_HPP_HASH_COMBINE( seed, physicalDevice8BitStorageFeatures.uniformAndStorageBuffer8BitAccess );
7383  VULKAN_HPP_HASH_COMBINE( seed, physicalDevice8BitStorageFeatures.storagePushConstant8 );
7384  return seed;
7385  }
7386  };
7387 
7388  template <>
7389  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT>
7390  {
7391  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceASTCDecodeFeaturesEXT const & physicalDeviceASTCDecodeFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
7392  {
7393  std::size_t seed = 0;
7394  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceASTCDecodeFeaturesEXT.sType );
7395  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceASTCDecodeFeaturesEXT.pNext );
7396  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceASTCDecodeFeaturesEXT.decodeModeSharedExponent );
7397  return seed;
7398  }
7399  };
7400 
7401  template <>
7402  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR>
7403  {
7404  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructureFeaturesKHR const & physicalDeviceAccelerationStructureFeaturesKHR ) const
7406  {
7407  std::size_t seed = 0;
7408  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructureFeaturesKHR.sType );
7409  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructureFeaturesKHR.pNext );
7410  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructureFeaturesKHR.accelerationStructure );
7411  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructureFeaturesKHR.accelerationStructureCaptureReplay );
7412  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructureFeaturesKHR.accelerationStructureIndirectBuild );
7413  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructureFeaturesKHR.accelerationStructureHostCommands );
7414  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructureFeaturesKHR.descriptorBindingAccelerationStructureUpdateAfterBind );
7415  return seed;
7416  }
7417  };
7418 
7419  template <>
7420  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR>
7421  {
7422  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceAccelerationStructurePropertiesKHR const & physicalDeviceAccelerationStructurePropertiesKHR )
7423  const VULKAN_HPP_NOEXCEPT
7424  {
7425  std::size_t seed = 0;
7426  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructurePropertiesKHR.sType );
7427  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructurePropertiesKHR.pNext );
7428  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructurePropertiesKHR.maxGeometryCount );
7429  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructurePropertiesKHR.maxInstanceCount );
7430  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructurePropertiesKHR.maxPrimitiveCount );
7431  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructurePropertiesKHR.maxPerStageDescriptorAccelerationStructures );
7432  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructurePropertiesKHR.maxPerStageDescriptorUpdateAfterBindAccelerationStructures );
7433  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructurePropertiesKHR.maxDescriptorSetAccelerationStructures );
7434  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructurePropertiesKHR.maxDescriptorSetUpdateAfterBindAccelerationStructures );
7435  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAccelerationStructurePropertiesKHR.minAccelerationStructureScratchOffsetAlignment );
7436  return seed;
7437  }
7438  };
7439 
7440  template <>
7441  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceAddressBindingReportFeaturesEXT>
7442  {
7443  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceAddressBindingReportFeaturesEXT const & physicalDeviceAddressBindingReportFeaturesEXT ) const
7445  {
7446  std::size_t seed = 0;
7447  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAddressBindingReportFeaturesEXT.sType );
7448  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAddressBindingReportFeaturesEXT.pNext );
7449  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAddressBindingReportFeaturesEXT.reportAddressBinding );
7450  return seed;
7451  }
7452  };
7453 
7454  template <>
7455  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceAmigoProfilingFeaturesSEC>
7456  {
7457  std::size_t
7458  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceAmigoProfilingFeaturesSEC const & physicalDeviceAmigoProfilingFeaturesSEC ) const VULKAN_HPP_NOEXCEPT
7459  {
7460  std::size_t seed = 0;
7461  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAmigoProfilingFeaturesSEC.sType );
7462  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAmigoProfilingFeaturesSEC.pNext );
7463  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAmigoProfilingFeaturesSEC.amigoProfiling );
7464  return seed;
7465  }
7466  };
7467 
7468  template <>
7469  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT>
7470  {
7471  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT const &
7472  physicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
7473  {
7474  std::size_t seed = 0;
7475  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT.sType );
7476  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT.pNext );
7477  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAttachmentFeedbackLoopDynamicStateFeaturesEXT.attachmentFeedbackLoopDynamicState );
7478  return seed;
7479  }
7480  };
7481 
7482  template <>
7483  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT>
7484  {
7485  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT const &
7486  physicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
7487  {
7488  std::size_t seed = 0;
7489  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT.sType );
7490  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT.pNext );
7491  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceAttachmentFeedbackLoopLayoutFeaturesEXT.attachmentFeedbackLoopLayout );
7492  return seed;
7493  }
7494  };
7495 
7496  template <>
7497  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT>
7498  {
7499  std::size_t operator()(
7500  VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedFeaturesEXT const & physicalDeviceBlendOperationAdvancedFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
7501  {
7502  std::size_t seed = 0;
7503  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBlendOperationAdvancedFeaturesEXT.sType );
7504  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBlendOperationAdvancedFeaturesEXT.pNext );
7505  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBlendOperationAdvancedFeaturesEXT.advancedBlendCoherentOperations );
7506  return seed;
7507  }
7508  };
7509 
7510  template <>
7511  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT>
7512  {
7513  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceBlendOperationAdvancedPropertiesEXT const & physicalDeviceBlendOperationAdvancedPropertiesEXT )
7514  const VULKAN_HPP_NOEXCEPT
7515  {
7516  std::size_t seed = 0;
7517  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBlendOperationAdvancedPropertiesEXT.sType );
7518  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBlendOperationAdvancedPropertiesEXT.pNext );
7519  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBlendOperationAdvancedPropertiesEXT.advancedBlendMaxColorAttachments );
7520  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBlendOperationAdvancedPropertiesEXT.advancedBlendIndependentBlend );
7521  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBlendOperationAdvancedPropertiesEXT.advancedBlendNonPremultipliedSrcColor );
7522  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBlendOperationAdvancedPropertiesEXT.advancedBlendNonPremultipliedDstColor );
7523  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBlendOperationAdvancedPropertiesEXT.advancedBlendCorrelatedOverlap );
7524  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBlendOperationAdvancedPropertiesEXT.advancedBlendAllOperations );
7525  return seed;
7526  }
7527  };
7528 
7529  template <>
7530  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceBorderColorSwizzleFeaturesEXT>
7531  {
7532  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceBorderColorSwizzleFeaturesEXT const & physicalDeviceBorderColorSwizzleFeaturesEXT ) const
7534  {
7535  std::size_t seed = 0;
7536  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBorderColorSwizzleFeaturesEXT.sType );
7537  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBorderColorSwizzleFeaturesEXT.pNext );
7538  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBorderColorSwizzleFeaturesEXT.borderColorSwizzle );
7539  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBorderColorSwizzleFeaturesEXT.borderColorSwizzleFromImage );
7540  return seed;
7541  }
7542  };
7543 
7544  template <>
7545  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures>
7546  {
7547  std::size_t
7548  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeatures const & physicalDeviceBufferDeviceAddressFeatures ) const VULKAN_HPP_NOEXCEPT
7549  {
7550  std::size_t seed = 0;
7551  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBufferDeviceAddressFeatures.sType );
7552  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBufferDeviceAddressFeatures.pNext );
7553  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBufferDeviceAddressFeatures.bufferDeviceAddress );
7554  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBufferDeviceAddressFeatures.bufferDeviceAddressCaptureReplay );
7555  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBufferDeviceAddressFeatures.bufferDeviceAddressMultiDevice );
7556  return seed;
7557  }
7558  };
7559 
7560  template <>
7561  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT>
7562  {
7563  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceBufferDeviceAddressFeaturesEXT const & physicalDeviceBufferDeviceAddressFeaturesEXT ) const
7565  {
7566  std::size_t seed = 0;
7567  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBufferDeviceAddressFeaturesEXT.sType );
7568  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBufferDeviceAddressFeaturesEXT.pNext );
7569  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBufferDeviceAddressFeaturesEXT.bufferDeviceAddress );
7570  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBufferDeviceAddressFeaturesEXT.bufferDeviceAddressCaptureReplay );
7571  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceBufferDeviceAddressFeaturesEXT.bufferDeviceAddressMultiDevice );
7572  return seed;
7573  }
7574  };
7575 
7576  template <>
7577  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI>
7578  {
7579  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderFeaturesHUAWEI const & physicalDeviceClusterCullingShaderFeaturesHUAWEI )
7580  const VULKAN_HPP_NOEXCEPT
7581  {
7582  std::size_t seed = 0;
7583  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderFeaturesHUAWEI.sType );
7584  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderFeaturesHUAWEI.pNext );
7585  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderFeaturesHUAWEI.clustercullingShader );
7586  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderFeaturesHUAWEI.multiviewClusterCullingShader );
7587  return seed;
7588  }
7589  };
7590 
7591  template <>
7592  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderPropertiesHUAWEI>
7593  {
7594  std::size_t
7595  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderPropertiesHUAWEI const & physicalDeviceClusterCullingShaderPropertiesHUAWEI ) const
7597  {
7598  std::size_t seed = 0;
7599  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderPropertiesHUAWEI.sType );
7600  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderPropertiesHUAWEI.pNext );
7601  for ( size_t i = 0; i < 3; ++i )
7602  {
7603  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderPropertiesHUAWEI.maxWorkGroupCount[i] );
7604  }
7605  for ( size_t i = 0; i < 3; ++i )
7606  {
7607  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderPropertiesHUAWEI.maxWorkGroupSize[i] );
7608  }
7609  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderPropertiesHUAWEI.maxOutputClusterCount );
7610  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderPropertiesHUAWEI.indirectBufferOffsetAlignment );
7611  return seed;
7612  }
7613  };
7614 
7615  template <>
7616  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI>
7617  {
7618  std::size_t
7619  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceClusterCullingShaderVrsFeaturesHUAWEI const & physicalDeviceClusterCullingShaderVrsFeaturesHUAWEI ) const
7621  {
7622  std::size_t seed = 0;
7623  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderVrsFeaturesHUAWEI.sType );
7624  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderVrsFeaturesHUAWEI.pNext );
7625  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceClusterCullingShaderVrsFeaturesHUAWEI.clusterShadingRate );
7626  return seed;
7627  }
7628  };
7629 
7630  template <>
7631  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD>
7632  {
7633  std::size_t
7634  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCoherentMemoryFeaturesAMD const & physicalDeviceCoherentMemoryFeaturesAMD ) const VULKAN_HPP_NOEXCEPT
7635  {
7636  std::size_t seed = 0;
7637  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCoherentMemoryFeaturesAMD.sType );
7638  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCoherentMemoryFeaturesAMD.pNext );
7639  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCoherentMemoryFeaturesAMD.deviceCoherentMemory );
7640  return seed;
7641  }
7642  };
7643 
7644  template <>
7645  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceColorWriteEnableFeaturesEXT>
7646  {
7647  std::size_t
7648  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceColorWriteEnableFeaturesEXT const & physicalDeviceColorWriteEnableFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
7649  {
7650  std::size_t seed = 0;
7651  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceColorWriteEnableFeaturesEXT.sType );
7652  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceColorWriteEnableFeaturesEXT.pNext );
7653  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceColorWriteEnableFeaturesEXT.colorWriteEnable );
7654  return seed;
7655  }
7656  };
7657 
7658  template <>
7659  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV>
7660  {
7661  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceComputeShaderDerivativesFeaturesNV const & physicalDeviceComputeShaderDerivativesFeaturesNV )
7662  const VULKAN_HPP_NOEXCEPT
7663  {
7664  std::size_t seed = 0;
7665  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceComputeShaderDerivativesFeaturesNV.sType );
7666  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceComputeShaderDerivativesFeaturesNV.pNext );
7667  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceComputeShaderDerivativesFeaturesNV.computeDerivativeGroupQuads );
7668  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceComputeShaderDerivativesFeaturesNV.computeDerivativeGroupLinear );
7669  return seed;
7670  }
7671  };
7672 
7673  template <>
7674  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT>
7675  {
7676  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceConditionalRenderingFeaturesEXT const & physicalDeviceConditionalRenderingFeaturesEXT ) const
7678  {
7679  std::size_t seed = 0;
7680  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConditionalRenderingFeaturesEXT.sType );
7681  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConditionalRenderingFeaturesEXT.pNext );
7682  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConditionalRenderingFeaturesEXT.conditionalRendering );
7683  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConditionalRenderingFeaturesEXT.inheritedConditionalRendering );
7684  return seed;
7685  }
7686  };
7687 
7688  template <>
7689  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT>
7690  {
7691  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceConservativeRasterizationPropertiesEXT const &
7692  physicalDeviceConservativeRasterizationPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
7693  {
7694  std::size_t seed = 0;
7695  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConservativeRasterizationPropertiesEXT.sType );
7696  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConservativeRasterizationPropertiesEXT.pNext );
7697  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConservativeRasterizationPropertiesEXT.primitiveOverestimationSize );
7698  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConservativeRasterizationPropertiesEXT.maxExtraPrimitiveOverestimationSize );
7699  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConservativeRasterizationPropertiesEXT.extraPrimitiveOverestimationSizeGranularity );
7700  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConservativeRasterizationPropertiesEXT.primitiveUnderestimation );
7701  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConservativeRasterizationPropertiesEXT.conservativePointAndLineRasterization );
7702  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConservativeRasterizationPropertiesEXT.degenerateTrianglesRasterized );
7703  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConservativeRasterizationPropertiesEXT.degenerateLinesRasterized );
7704  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConservativeRasterizationPropertiesEXT.fullyCoveredFragmentShaderInputVariable );
7705  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceConservativeRasterizationPropertiesEXT.conservativeRasterizationPostDepthCoverage );
7706  return seed;
7707  }
7708  };
7709 
7710  template <>
7711  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR>
7712  {
7713  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesKHR const & physicalDeviceCooperativeMatrixFeaturesKHR ) const
7715  {
7716  std::size_t seed = 0;
7717  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixFeaturesKHR.sType );
7718  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixFeaturesKHR.pNext );
7719  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixFeaturesKHR.cooperativeMatrix );
7720  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixFeaturesKHR.cooperativeMatrixRobustBufferAccess );
7721  return seed;
7722  }
7723  };
7724 
7725  template <>
7726  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV>
7727  {
7728  std::size_t
7729  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixFeaturesNV const & physicalDeviceCooperativeMatrixFeaturesNV ) const VULKAN_HPP_NOEXCEPT
7730  {
7731  std::size_t seed = 0;
7732  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixFeaturesNV.sType );
7733  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixFeaturesNV.pNext );
7734  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixFeaturesNV.cooperativeMatrix );
7735  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixFeaturesNV.cooperativeMatrixRobustBufferAccess );
7736  return seed;
7737  }
7738  };
7739 
7740  template <>
7741  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesKHR>
7742  {
7743  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesKHR const & physicalDeviceCooperativeMatrixPropertiesKHR ) const
7745  {
7746  std::size_t seed = 0;
7747  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixPropertiesKHR.sType );
7748  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixPropertiesKHR.pNext );
7749  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixPropertiesKHR.cooperativeMatrixSupportedStages );
7750  return seed;
7751  }
7752  };
7753 
7754  template <>
7755  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV>
7756  {
7757  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCooperativeMatrixPropertiesNV const & physicalDeviceCooperativeMatrixPropertiesNV ) const
7759  {
7760  std::size_t seed = 0;
7761  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixPropertiesNV.sType );
7762  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixPropertiesNV.pNext );
7763  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCooperativeMatrixPropertiesNV.cooperativeMatrixSupportedStages );
7764  return seed;
7765  }
7766  };
7767 
7768  template <>
7769  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectFeaturesNV>
7770  {
7771  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectFeaturesNV const & physicalDeviceCopyMemoryIndirectFeaturesNV ) const
7773  {
7774  std::size_t seed = 0;
7775  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCopyMemoryIndirectFeaturesNV.sType );
7776  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCopyMemoryIndirectFeaturesNV.pNext );
7777  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCopyMemoryIndirectFeaturesNV.indirectCopy );
7778  return seed;
7779  }
7780  };
7781 
7782  template <>
7783  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectPropertiesNV>
7784  {
7785  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCopyMemoryIndirectPropertiesNV const & physicalDeviceCopyMemoryIndirectPropertiesNV ) const
7787  {
7788  std::size_t seed = 0;
7789  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCopyMemoryIndirectPropertiesNV.sType );
7790  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCopyMemoryIndirectPropertiesNV.pNext );
7791  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCopyMemoryIndirectPropertiesNV.supportedQueues );
7792  return seed;
7793  }
7794  };
7795 
7796  template <>
7797  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV>
7798  {
7799  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCornerSampledImageFeaturesNV const & physicalDeviceCornerSampledImageFeaturesNV ) const
7801  {
7802  std::size_t seed = 0;
7803  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCornerSampledImageFeaturesNV.sType );
7804  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCornerSampledImageFeaturesNV.pNext );
7805  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCornerSampledImageFeaturesNV.cornerSampledImage );
7806  return seed;
7807  }
7808  };
7809 
7810  template <>
7811  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV>
7812  {
7813  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCoverageReductionModeFeaturesNV const & physicalDeviceCoverageReductionModeFeaturesNV ) const
7815  {
7816  std::size_t seed = 0;
7817  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCoverageReductionModeFeaturesNV.sType );
7818  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCoverageReductionModeFeaturesNV.pNext );
7819  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCoverageReductionModeFeaturesNV.coverageReductionMode );
7820  return seed;
7821  }
7822  };
7823 
7824  template <>
7825  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM>
7826  {
7827  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicClampFeaturesQCOM const & physicalDeviceCubicClampFeaturesQCOM ) const VULKAN_HPP_NOEXCEPT
7828  {
7829  std::size_t seed = 0;
7830  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCubicClampFeaturesQCOM.sType );
7831  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCubicClampFeaturesQCOM.pNext );
7832  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCubicClampFeaturesQCOM.cubicRangeClamp );
7833  return seed;
7834  }
7835  };
7836 
7837  template <>
7838  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM>
7839  {
7840  std::size_t
7841  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCubicWeightsFeaturesQCOM const & physicalDeviceCubicWeightsFeaturesQCOM ) const VULKAN_HPP_NOEXCEPT
7842  {
7843  std::size_t seed = 0;
7844  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCubicWeightsFeaturesQCOM.sType );
7845  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCubicWeightsFeaturesQCOM.pNext );
7846  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCubicWeightsFeaturesQCOM.selectableCubicWeights );
7847  return seed;
7848  }
7849  };
7850 
7851 # if defined( VK_ENABLE_BETA_EXTENSIONS )
7852  template <>
7853  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCudaKernelLaunchFeaturesNV>
7854  {
7855  std::size_t
7856  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCudaKernelLaunchFeaturesNV const & physicalDeviceCudaKernelLaunchFeaturesNV ) const VULKAN_HPP_NOEXCEPT
7857  {
7858  std::size_t seed = 0;
7859  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCudaKernelLaunchFeaturesNV.sType );
7860  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCudaKernelLaunchFeaturesNV.pNext );
7861  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCudaKernelLaunchFeaturesNV.cudaKernelLaunchFeatures );
7862  return seed;
7863  }
7864  };
7865 # endif /*VK_ENABLE_BETA_EXTENSIONS*/
7866 
7867 # if defined( VK_ENABLE_BETA_EXTENSIONS )
7868  template <>
7869  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCudaKernelLaunchPropertiesNV>
7870  {
7871  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCudaKernelLaunchPropertiesNV const & physicalDeviceCudaKernelLaunchPropertiesNV ) const
7873  {
7874  std::size_t seed = 0;
7875  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCudaKernelLaunchPropertiesNV.sType );
7876  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCudaKernelLaunchPropertiesNV.pNext );
7877  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCudaKernelLaunchPropertiesNV.computeCapabilityMinor );
7878  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCudaKernelLaunchPropertiesNV.computeCapabilityMajor );
7879  return seed;
7880  }
7881  };
7882 # endif /*VK_ENABLE_BETA_EXTENSIONS*/
7883 
7884  template <>
7885  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT>
7886  {
7887  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorFeaturesEXT const & physicalDeviceCustomBorderColorFeaturesEXT ) const
7889  {
7890  std::size_t seed = 0;
7891  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCustomBorderColorFeaturesEXT.sType );
7892  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCustomBorderColorFeaturesEXT.pNext );
7893  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCustomBorderColorFeaturesEXT.customBorderColors );
7894  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCustomBorderColorFeaturesEXT.customBorderColorWithoutFormat );
7895  return seed;
7896  }
7897  };
7898 
7899  template <>
7900  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT>
7901  {
7902  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceCustomBorderColorPropertiesEXT const & physicalDeviceCustomBorderColorPropertiesEXT ) const
7904  {
7905  std::size_t seed = 0;
7906  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCustomBorderColorPropertiesEXT.sType );
7907  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCustomBorderColorPropertiesEXT.pNext );
7908  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceCustomBorderColorPropertiesEXT.maxCustomBorderColorSamplers );
7909  return seed;
7910  }
7911  };
7912 
7913  template <>
7914  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV>
7915  {
7916  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDedicatedAllocationImageAliasingFeaturesNV const &
7917  physicalDeviceDedicatedAllocationImageAliasingFeaturesNV ) const VULKAN_HPP_NOEXCEPT
7918  {
7919  std::size_t seed = 0;
7920  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDedicatedAllocationImageAliasingFeaturesNV.sType );
7921  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDedicatedAllocationImageAliasingFeaturesNV.pNext );
7922  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDedicatedAllocationImageAliasingFeaturesNV.dedicatedAllocationImageAliasing );
7923  return seed;
7924  }
7925  };
7926 
7927  template <>
7928  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT>
7929  {
7930  std::size_t
7931  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthBiasControlFeaturesEXT const & physicalDeviceDepthBiasControlFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
7932  {
7933  std::size_t seed = 0;
7934  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthBiasControlFeaturesEXT.sType );
7935  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthBiasControlFeaturesEXT.pNext );
7936  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthBiasControlFeaturesEXT.depthBiasControl );
7937  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthBiasControlFeaturesEXT.leastRepresentableValueForceUnormRepresentation );
7938  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthBiasControlFeaturesEXT.floatRepresentation );
7939  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthBiasControlFeaturesEXT.depthBiasExact );
7940  return seed;
7941  }
7942  };
7943 
7944  template <>
7945  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampZeroOneFeaturesEXT>
7946  {
7947  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClampZeroOneFeaturesEXT const & physicalDeviceDepthClampZeroOneFeaturesEXT ) const
7949  {
7950  std::size_t seed = 0;
7951  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthClampZeroOneFeaturesEXT.sType );
7952  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthClampZeroOneFeaturesEXT.pNext );
7953  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthClampZeroOneFeaturesEXT.depthClampZeroOne );
7954  return seed;
7955  }
7956  };
7957 
7958  template <>
7959  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipControlFeaturesEXT>
7960  {
7961  std::size_t
7962  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipControlFeaturesEXT const & physicalDeviceDepthClipControlFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
7963  {
7964  std::size_t seed = 0;
7965  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthClipControlFeaturesEXT.sType );
7966  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthClipControlFeaturesEXT.pNext );
7967  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthClipControlFeaturesEXT.depthClipControl );
7968  return seed;
7969  }
7970  };
7971 
7972  template <>
7973  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT>
7974  {
7975  std::size_t
7976  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthClipEnableFeaturesEXT const & physicalDeviceDepthClipEnableFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
7977  {
7978  std::size_t seed = 0;
7979  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthClipEnableFeaturesEXT.sType );
7980  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthClipEnableFeaturesEXT.pNext );
7981  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthClipEnableFeaturesEXT.depthClipEnable );
7982  return seed;
7983  }
7984  };
7985 
7986  template <>
7987  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties>
7988  {
7989  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDepthStencilResolveProperties const & physicalDeviceDepthStencilResolveProperties ) const
7991  {
7992  std::size_t seed = 0;
7993  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthStencilResolveProperties.sType );
7994  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthStencilResolveProperties.pNext );
7995  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthStencilResolveProperties.supportedDepthResolveModes );
7996  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthStencilResolveProperties.supportedStencilResolveModes );
7997  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthStencilResolveProperties.independentResolveNone );
7998  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDepthStencilResolveProperties.independentResolve );
7999  return seed;
8000  }
8001  };
8002 
8003  template <>
8004  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT>
8005  {
8006  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferDensityMapPropertiesEXT const &
8007  physicalDeviceDescriptorBufferDensityMapPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
8008  {
8009  std::size_t seed = 0;
8010  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferDensityMapPropertiesEXT.sType );
8011  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferDensityMapPropertiesEXT.pNext );
8012  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferDensityMapPropertiesEXT.combinedImageSamplerDensityMapDescriptorSize );
8013  return seed;
8014  }
8015  };
8016 
8017  template <>
8018  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferFeaturesEXT>
8019  {
8020  std::size_t
8021  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferFeaturesEXT const & physicalDeviceDescriptorBufferFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
8022  {
8023  std::size_t seed = 0;
8024  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferFeaturesEXT.sType );
8025  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferFeaturesEXT.pNext );
8026  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferFeaturesEXT.descriptorBuffer );
8027  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferFeaturesEXT.descriptorBufferCaptureReplay );
8028  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferFeaturesEXT.descriptorBufferImageLayoutIgnored );
8029  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferFeaturesEXT.descriptorBufferPushDescriptors );
8030  return seed;
8031  }
8032  };
8033 
8034  template <>
8035  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferPropertiesEXT>
8036  {
8037  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorBufferPropertiesEXT const & physicalDeviceDescriptorBufferPropertiesEXT ) const
8039  {
8040  std::size_t seed = 0;
8041  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.sType );
8042  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.pNext );
8043  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.combinedImageSamplerDescriptorSingleArray );
8044  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.bufferlessPushDescriptors );
8045  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.allowSamplerImageViewPostSubmitCreation );
8046  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.descriptorBufferOffsetAlignment );
8047  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.maxDescriptorBufferBindings );
8048  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.maxResourceDescriptorBufferBindings );
8049  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.maxSamplerDescriptorBufferBindings );
8050  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.maxEmbeddedImmutableSamplerBindings );
8051  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.maxEmbeddedImmutableSamplers );
8052  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.bufferCaptureReplayDescriptorDataSize );
8053  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.imageCaptureReplayDescriptorDataSize );
8054  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.imageViewCaptureReplayDescriptorDataSize );
8055  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.samplerCaptureReplayDescriptorDataSize );
8056  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.accelerationStructureCaptureReplayDescriptorDataSize );
8057  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.samplerDescriptorSize );
8058  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.combinedImageSamplerDescriptorSize );
8059  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.sampledImageDescriptorSize );
8060  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.storageImageDescriptorSize );
8061  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.uniformTexelBufferDescriptorSize );
8062  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.robustUniformTexelBufferDescriptorSize );
8063  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.storageTexelBufferDescriptorSize );
8064  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.robustStorageTexelBufferDescriptorSize );
8065  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.uniformBufferDescriptorSize );
8066  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.robustUniformBufferDescriptorSize );
8067  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.storageBufferDescriptorSize );
8068  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.robustStorageBufferDescriptorSize );
8069  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.inputAttachmentDescriptorSize );
8070  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.accelerationStructureDescriptorSize );
8071  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.maxSamplerDescriptorBufferRange );
8072  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.maxResourceDescriptorBufferRange );
8073  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.samplerDescriptorBufferAddressSpaceSize );
8074  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.resourceDescriptorBufferAddressSpaceSize );
8075  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorBufferPropertiesEXT.descriptorBufferAddressSpaceSize );
8076  return seed;
8077  }
8078  };
8079 
8080  template <>
8081  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures>
8082  {
8083  std::size_t
8084  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingFeatures const & physicalDeviceDescriptorIndexingFeatures ) const VULKAN_HPP_NOEXCEPT
8085  {
8086  std::size_t seed = 0;
8087  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.sType );
8088  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.pNext );
8089  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.shaderInputAttachmentArrayDynamicIndexing );
8090  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.shaderUniformTexelBufferArrayDynamicIndexing );
8091  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.shaderStorageTexelBufferArrayDynamicIndexing );
8092  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.shaderUniformBufferArrayNonUniformIndexing );
8093  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.shaderSampledImageArrayNonUniformIndexing );
8094  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.shaderStorageBufferArrayNonUniformIndexing );
8095  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.shaderStorageImageArrayNonUniformIndexing );
8096  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.shaderInputAttachmentArrayNonUniformIndexing );
8097  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.shaderUniformTexelBufferArrayNonUniformIndexing );
8098  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.shaderStorageTexelBufferArrayNonUniformIndexing );
8099  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.descriptorBindingUniformBufferUpdateAfterBind );
8100  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.descriptorBindingSampledImageUpdateAfterBind );
8101  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.descriptorBindingStorageImageUpdateAfterBind );
8102  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.descriptorBindingStorageBufferUpdateAfterBind );
8103  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.descriptorBindingUniformTexelBufferUpdateAfterBind );
8104  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.descriptorBindingStorageTexelBufferUpdateAfterBind );
8105  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.descriptorBindingUpdateUnusedWhilePending );
8106  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.descriptorBindingPartiallyBound );
8107  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.descriptorBindingVariableDescriptorCount );
8108  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingFeatures.runtimeDescriptorArray );
8109  return seed;
8110  }
8111  };
8112 
8113  template <>
8114  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties>
8115  {
8116  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorIndexingProperties const & physicalDeviceDescriptorIndexingProperties ) const
8118  {
8119  std::size_t seed = 0;
8120  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.sType );
8121  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.pNext );
8122  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxUpdateAfterBindDescriptorsInAllPools );
8123  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.shaderUniformBufferArrayNonUniformIndexingNative );
8124  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.shaderSampledImageArrayNonUniformIndexingNative );
8125  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.shaderStorageBufferArrayNonUniformIndexingNative );
8126  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.shaderStorageImageArrayNonUniformIndexingNative );
8127  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.shaderInputAttachmentArrayNonUniformIndexingNative );
8128  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.robustBufferAccessUpdateAfterBind );
8129  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.quadDivergentImplicitLod );
8130  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxPerStageDescriptorUpdateAfterBindSamplers );
8131  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxPerStageDescriptorUpdateAfterBindUniformBuffers );
8132  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxPerStageDescriptorUpdateAfterBindStorageBuffers );
8133  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxPerStageDescriptorUpdateAfterBindSampledImages );
8134  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxPerStageDescriptorUpdateAfterBindStorageImages );
8135  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxPerStageDescriptorUpdateAfterBindInputAttachments );
8136  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxPerStageUpdateAfterBindResources );
8137  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxDescriptorSetUpdateAfterBindSamplers );
8138  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxDescriptorSetUpdateAfterBindUniformBuffers );
8139  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic );
8140  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxDescriptorSetUpdateAfterBindStorageBuffers );
8141  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic );
8142  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxDescriptorSetUpdateAfterBindSampledImages );
8143  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxDescriptorSetUpdateAfterBindStorageImages );
8144  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorIndexingProperties.maxDescriptorSetUpdateAfterBindInputAttachments );
8145  return seed;
8146  }
8147  };
8148 
8149  template <>
8150  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV>
8151  {
8152  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorPoolOverallocationFeaturesNV const &
8153  physicalDeviceDescriptorPoolOverallocationFeaturesNV ) const VULKAN_HPP_NOEXCEPT
8154  {
8155  std::size_t seed = 0;
8156  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorPoolOverallocationFeaturesNV.sType );
8157  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorPoolOverallocationFeaturesNV.pNext );
8158  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorPoolOverallocationFeaturesNV.descriptorPoolOverallocation );
8159  return seed;
8160  }
8161  };
8162 
8163  template <>
8164  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE>
8165  {
8166  std::size_t
8167  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDescriptorSetHostMappingFeaturesVALVE const & physicalDeviceDescriptorSetHostMappingFeaturesVALVE ) const
8169  {
8170  std::size_t seed = 0;
8171  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorSetHostMappingFeaturesVALVE.sType );
8172  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorSetHostMappingFeaturesVALVE.pNext );
8173  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDescriptorSetHostMappingFeaturesVALVE.descriptorSetHostMapping );
8174  return seed;
8175  }
8176  };
8177 
8178  template <>
8179  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV>
8180  {
8181  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsComputeFeaturesNV const &
8182  physicalDeviceDeviceGeneratedCommandsComputeFeaturesNV ) const VULKAN_HPP_NOEXCEPT
8183  {
8184  std::size_t seed = 0;
8185  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsComputeFeaturesNV.sType );
8186  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsComputeFeaturesNV.pNext );
8187  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsComputeFeaturesNV.deviceGeneratedCompute );
8188  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsComputeFeaturesNV.deviceGeneratedComputePipelines );
8189  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsComputeFeaturesNV.deviceGeneratedComputeCaptureReplay );
8190  return seed;
8191  }
8192  };
8193 
8194  template <>
8195  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV>
8196  {
8197  std::size_t operator()(
8198  VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsFeaturesNV const & physicalDeviceDeviceGeneratedCommandsFeaturesNV ) const VULKAN_HPP_NOEXCEPT
8199  {
8200  std::size_t seed = 0;
8201  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsFeaturesNV.sType );
8202  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsFeaturesNV.pNext );
8203  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsFeaturesNV.deviceGeneratedCommands );
8204  return seed;
8205  }
8206  };
8207 
8208  template <>
8209  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV>
8210  {
8211  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceGeneratedCommandsPropertiesNV const & physicalDeviceDeviceGeneratedCommandsPropertiesNV )
8212  const VULKAN_HPP_NOEXCEPT
8213  {
8214  std::size_t seed = 0;
8215  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesNV.sType );
8216  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesNV.pNext );
8217  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesNV.maxGraphicsShaderGroupCount );
8218  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesNV.maxIndirectSequenceCount );
8219  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesNV.maxIndirectCommandsTokenCount );
8220  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesNV.maxIndirectCommandsStreamCount );
8221  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesNV.maxIndirectCommandsTokenOffset );
8222  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesNV.maxIndirectCommandsStreamStride );
8223  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesNV.minSequencesCountBufferOffsetAlignment );
8224  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesNV.minSequencesIndexBufferOffsetAlignment );
8225  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceGeneratedCommandsPropertiesNV.minIndirectCommandsBufferOffsetAlignment );
8226  return seed;
8227  }
8228  };
8229 
8230  template <>
8231  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT>
8232  {
8233  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDeviceMemoryReportFeaturesEXT const & physicalDeviceDeviceMemoryReportFeaturesEXT ) const
8235  {
8236  std::size_t seed = 0;
8237  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceMemoryReportFeaturesEXT.sType );
8238  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceMemoryReportFeaturesEXT.pNext );
8239  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDeviceMemoryReportFeaturesEXT.deviceMemoryReport );
8240  return seed;
8241  }
8242  };
8243 
8244  template <>
8245  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV>
8246  {
8247  std::size_t
8248  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDiagnosticsConfigFeaturesNV const & physicalDeviceDiagnosticsConfigFeaturesNV ) const VULKAN_HPP_NOEXCEPT
8249  {
8250  std::size_t seed = 0;
8251  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDiagnosticsConfigFeaturesNV.sType );
8252  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDiagnosticsConfigFeaturesNV.pNext );
8253  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDiagnosticsConfigFeaturesNV.diagnosticsConfig );
8254  return seed;
8255  }
8256  };
8257 
8258  template <>
8259  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT>
8260  {
8261  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDiscardRectanglePropertiesEXT const & physicalDeviceDiscardRectanglePropertiesEXT ) const
8263  {
8264  std::size_t seed = 0;
8265  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDiscardRectanglePropertiesEXT.sType );
8266  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDiscardRectanglePropertiesEXT.pNext );
8267  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDiscardRectanglePropertiesEXT.maxDiscardRectangles );
8268  return seed;
8269  }
8270  };
8271 
8272 # if defined( VK_ENABLE_BETA_EXTENSIONS )
8273  template <>
8274  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapFeaturesNV>
8275  {
8276  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapFeaturesNV const & physicalDeviceDisplacementMicromapFeaturesNV ) const
8278  {
8279  std::size_t seed = 0;
8280  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDisplacementMicromapFeaturesNV.sType );
8281  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDisplacementMicromapFeaturesNV.pNext );
8282  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDisplacementMicromapFeaturesNV.displacementMicromap );
8283  return seed;
8284  }
8285  };
8286 # endif /*VK_ENABLE_BETA_EXTENSIONS*/
8287 
8288 # if defined( VK_ENABLE_BETA_EXTENSIONS )
8289  template <>
8290  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapPropertiesNV>
8291  {
8292  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDisplacementMicromapPropertiesNV const & physicalDeviceDisplacementMicromapPropertiesNV ) const
8294  {
8295  std::size_t seed = 0;
8296  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDisplacementMicromapPropertiesNV.sType );
8297  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDisplacementMicromapPropertiesNV.pNext );
8298  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDisplacementMicromapPropertiesNV.maxDisplacementMicromapSubdivisionLevel );
8299  return seed;
8300  }
8301  };
8302 # endif /*VK_ENABLE_BETA_EXTENSIONS*/
8303 
8304  template <>
8305  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties>
8306  {
8307  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDriverProperties const & physicalDeviceDriverProperties ) const VULKAN_HPP_NOEXCEPT
8308  {
8309  std::size_t seed = 0;
8310  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDriverProperties.sType );
8311  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDriverProperties.pNext );
8312  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDriverProperties.driverID );
8313  for ( size_t i = 0; i < VK_MAX_DRIVER_NAME_SIZE; ++i )
8314  {
8315  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDriverProperties.driverName[i] );
8316  }
8317  for ( size_t i = 0; i < VK_MAX_DRIVER_INFO_SIZE; ++i )
8318  {
8319  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDriverProperties.driverInfo[i] );
8320  }
8321  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDriverProperties.conformanceVersion );
8322  return seed;
8323  }
8324  };
8325 
8326  template <>
8327  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDrmPropertiesEXT>
8328  {
8329  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDrmPropertiesEXT const & physicalDeviceDrmPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
8330  {
8331  std::size_t seed = 0;
8332  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDrmPropertiesEXT.sType );
8333  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDrmPropertiesEXT.pNext );
8334  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDrmPropertiesEXT.hasPrimary );
8335  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDrmPropertiesEXT.hasRender );
8336  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDrmPropertiesEXT.primaryMajor );
8337  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDrmPropertiesEXT.primaryMinor );
8338  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDrmPropertiesEXT.renderMajor );
8339  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDrmPropertiesEXT.renderMinor );
8340  return seed;
8341  }
8342  };
8343 
8344  template <>
8345  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingFeatures>
8346  {
8347  std::size_t
8348  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingFeatures const & physicalDeviceDynamicRenderingFeatures ) const VULKAN_HPP_NOEXCEPT
8349  {
8350  std::size_t seed = 0;
8351  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDynamicRenderingFeatures.sType );
8352  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDynamicRenderingFeatures.pNext );
8353  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDynamicRenderingFeatures.dynamicRendering );
8354  return seed;
8355  }
8356  };
8357 
8358  template <>
8359  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT>
8360  {
8361  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT const &
8362  physicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
8363  {
8364  std::size_t seed = 0;
8365  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT.sType );
8366  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT.pNext );
8367  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceDynamicRenderingUnusedAttachmentsFeaturesEXT.dynamicRenderingUnusedAttachments );
8368  return seed;
8369  }
8370  };
8371 
8372  template <>
8373  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV>
8374  {
8375  std::size_t
8376  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExclusiveScissorFeaturesNV const & physicalDeviceExclusiveScissorFeaturesNV ) const VULKAN_HPP_NOEXCEPT
8377  {
8378  std::size_t seed = 0;
8379  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExclusiveScissorFeaturesNV.sType );
8380  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExclusiveScissorFeaturesNV.pNext );
8381  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExclusiveScissorFeaturesNV.exclusiveScissor );
8382  return seed;
8383  }
8384  };
8385 
8386  template <>
8387  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState2FeaturesEXT>
8388  {
8389  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState2FeaturesEXT const & physicalDeviceExtendedDynamicState2FeaturesEXT ) const
8391  {
8392  std::size_t seed = 0;
8393  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState2FeaturesEXT.sType );
8394  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState2FeaturesEXT.pNext );
8395  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState2FeaturesEXT.extendedDynamicState2 );
8396  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState2FeaturesEXT.extendedDynamicState2LogicOp );
8397  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState2FeaturesEXT.extendedDynamicState2PatchControlPoints );
8398  return seed;
8399  }
8400  };
8401 
8402  template <>
8403  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT>
8404  {
8405  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3FeaturesEXT const & physicalDeviceExtendedDynamicState3FeaturesEXT ) const
8407  {
8408  std::size_t seed = 0;
8409  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.sType );
8410  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.pNext );
8411  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3TessellationDomainOrigin );
8412  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3DepthClampEnable );
8413  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3PolygonMode );
8414  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3RasterizationSamples );
8415  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3SampleMask );
8416  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3AlphaToCoverageEnable );
8417  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3AlphaToOneEnable );
8418  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3LogicOpEnable );
8419  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3ColorBlendEnable );
8420  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3ColorBlendEquation );
8421  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3ColorWriteMask );
8422  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3RasterizationStream );
8423  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3ConservativeRasterizationMode );
8424  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3ExtraPrimitiveOverestimationSize );
8425  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3DepthClipEnable );
8426  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3SampleLocationsEnable );
8427  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3ColorBlendAdvanced );
8428  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3ProvokingVertexMode );
8429  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3LineRasterizationMode );
8430  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3LineStippleEnable );
8431  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3DepthClipNegativeOneToOne );
8432  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3ViewportWScalingEnable );
8433  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3ViewportSwizzle );
8434  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3CoverageToColorEnable );
8435  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3CoverageToColorLocation );
8436  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3CoverageModulationMode );
8437  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3CoverageModulationTableEnable );
8438  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3CoverageModulationTable );
8439  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3CoverageReductionMode );
8440  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3RepresentativeFragmentTestEnable );
8441  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3FeaturesEXT.extendedDynamicState3ShadingRateImageEnable );
8442  return seed;
8443  }
8444  };
8445 
8446  template <>
8447  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3PropertiesEXT>
8448  {
8449  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicState3PropertiesEXT const & physicalDeviceExtendedDynamicState3PropertiesEXT )
8450  const VULKAN_HPP_NOEXCEPT
8451  {
8452  std::size_t seed = 0;
8453  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3PropertiesEXT.sType );
8454  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3PropertiesEXT.pNext );
8455  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicState3PropertiesEXT.dynamicPrimitiveTopologyUnrestricted );
8456  return seed;
8457  }
8458  };
8459 
8460  template <>
8461  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT>
8462  {
8463  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedDynamicStateFeaturesEXT const & physicalDeviceExtendedDynamicStateFeaturesEXT ) const
8465  {
8466  std::size_t seed = 0;
8467  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicStateFeaturesEXT.sType );
8468  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicStateFeaturesEXT.pNext );
8469  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedDynamicStateFeaturesEXT.extendedDynamicState );
8470  return seed;
8471  }
8472  };
8473 
8474  template <>
8475  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV>
8476  {
8477  std::size_t
8478  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpaceFeaturesNV const & physicalDeviceExtendedSparseAddressSpaceFeaturesNV ) const
8480  {
8481  std::size_t seed = 0;
8482  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpaceFeaturesNV.sType );
8483  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpaceFeaturesNV.pNext );
8484  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpaceFeaturesNV.extendedSparseAddressSpace );
8485  return seed;
8486  }
8487  };
8488 
8489  template <>
8490  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV>
8491  {
8492  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExtendedSparseAddressSpacePropertiesNV const &
8493  physicalDeviceExtendedSparseAddressSpacePropertiesNV ) const VULKAN_HPP_NOEXCEPT
8494  {
8495  std::size_t seed = 0;
8496  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpacePropertiesNV.sType );
8497  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpacePropertiesNV.pNext );
8498  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpacePropertiesNV.extendedSparseAddressSpaceSize );
8499  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpacePropertiesNV.extendedSparseImageUsageFlags );
8500  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExtendedSparseAddressSpacePropertiesNV.extendedSparseBufferUsageFlags );
8501  return seed;
8502  }
8503  };
8504 
8505  template <>
8506  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo>
8507  {
8508  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo const & physicalDeviceExternalBufferInfo ) const VULKAN_HPP_NOEXCEPT
8509  {
8510  std::size_t seed = 0;
8511  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalBufferInfo.sType );
8512  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalBufferInfo.pNext );
8513  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalBufferInfo.flags );
8514  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalBufferInfo.usage );
8515  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalBufferInfo.handleType );
8516  return seed;
8517  }
8518  };
8519 
8520  template <>
8521  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo>
8522  {
8523  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo const & physicalDeviceExternalFenceInfo ) const VULKAN_HPP_NOEXCEPT
8524  {
8525  std::size_t seed = 0;
8526  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFenceInfo.sType );
8527  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFenceInfo.pNext );
8528  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFenceInfo.handleType );
8529  return seed;
8530  }
8531  };
8532 
8533 # if defined( VK_USE_PLATFORM_ANDROID_KHR )
8534  template <>
8535  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID>
8536  {
8537  std::size_t
8538  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolveFeaturesANDROID const & physicalDeviceExternalFormatResolveFeaturesANDROID ) const
8540  {
8541  std::size_t seed = 0;
8542  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolveFeaturesANDROID.sType );
8543  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolveFeaturesANDROID.pNext );
8544  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolveFeaturesANDROID.externalFormatResolve );
8545  return seed;
8546  }
8547  };
8548 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
8549 
8550 # if defined( VK_USE_PLATFORM_ANDROID_KHR )
8551  template <>
8552  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID>
8553  {
8554  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFormatResolvePropertiesANDROID const &
8555  physicalDeviceExternalFormatResolvePropertiesANDROID ) const VULKAN_HPP_NOEXCEPT
8556  {
8557  std::size_t seed = 0;
8558  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolvePropertiesANDROID.sType );
8559  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolvePropertiesANDROID.pNext );
8560  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolvePropertiesANDROID.nullColorAttachmentWithExternalFormatResolve );
8561  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolvePropertiesANDROID.externalFormatResolveChromaOffsetX );
8562  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalFormatResolvePropertiesANDROID.externalFormatResolveChromaOffsetY );
8563  return seed;
8564  }
8565  };
8566 # endif /*VK_USE_PLATFORM_ANDROID_KHR*/
8567 
8568  template <>
8569  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo>
8570  {
8571  std::size_t
8572  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalImageFormatInfo const & physicalDeviceExternalImageFormatInfo ) const VULKAN_HPP_NOEXCEPT
8573  {
8574  std::size_t seed = 0;
8575  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalImageFormatInfo.sType );
8576  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalImageFormatInfo.pNext );
8577  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalImageFormatInfo.handleType );
8578  return seed;
8579  }
8580  };
8581 
8582  template <>
8583  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT>
8584  {
8585  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryHostPropertiesEXT const & physicalDeviceExternalMemoryHostPropertiesEXT ) const
8587  {
8588  std::size_t seed = 0;
8589  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalMemoryHostPropertiesEXT.sType );
8590  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalMemoryHostPropertiesEXT.pNext );
8591  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalMemoryHostPropertiesEXT.minImportedHostPointerAlignment );
8592  return seed;
8593  }
8594  };
8595 
8596  template <>
8597  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryRDMAFeaturesNV>
8598  {
8599  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryRDMAFeaturesNV const & physicalDeviceExternalMemoryRDMAFeaturesNV ) const
8601  {
8602  std::size_t seed = 0;
8603  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalMemoryRDMAFeaturesNV.sType );
8604  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalMemoryRDMAFeaturesNV.pNext );
8605  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalMemoryRDMAFeaturesNV.externalMemoryRDMA );
8606  return seed;
8607  }
8608  };
8609 
8610 # if defined( VK_USE_PLATFORM_SCREEN_QNX )
8611  template <>
8612  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX>
8613  {
8614  std::size_t
8615  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalMemoryScreenBufferFeaturesQNX const & physicalDeviceExternalMemoryScreenBufferFeaturesQNX ) const
8617  {
8618  std::size_t seed = 0;
8619  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalMemoryScreenBufferFeaturesQNX.sType );
8620  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalMemoryScreenBufferFeaturesQNX.pNext );
8621  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalMemoryScreenBufferFeaturesQNX.screenBufferImport );
8622  return seed;
8623  }
8624  };
8625 # endif /*VK_USE_PLATFORM_SCREEN_QNX*/
8626 
8627  template <>
8628  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo>
8629  {
8630  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo const & physicalDeviceExternalSemaphoreInfo ) const VULKAN_HPP_NOEXCEPT
8631  {
8632  std::size_t seed = 0;
8633  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalSemaphoreInfo.sType );
8634  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalSemaphoreInfo.pNext );
8635  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceExternalSemaphoreInfo.handleType );
8636  return seed;
8637  }
8638  };
8639 
8640  template <>
8641  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFaultFeaturesEXT>
8642  {
8643  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFaultFeaturesEXT const & physicalDeviceFaultFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
8644  {
8645  std::size_t seed = 0;
8646  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFaultFeaturesEXT.sType );
8647  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFaultFeaturesEXT.pNext );
8648  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFaultFeaturesEXT.deviceFault );
8649  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFaultFeaturesEXT.deviceFaultVendorBinary );
8650  return seed;
8651  }
8652  };
8653 
8654  template <>
8655  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>
8656  {
8657  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 const & physicalDeviceFeatures2 ) const VULKAN_HPP_NOEXCEPT
8658  {
8659  std::size_t seed = 0;
8660  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures2.sType );
8661  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures2.pNext );
8662  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFeatures2.features );
8663  return seed;
8664  }
8665  };
8666 
8667  template <>
8668  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties>
8669  {
8670  std::size_t
8671  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFloatControlsProperties const & physicalDeviceFloatControlsProperties ) const VULKAN_HPP_NOEXCEPT
8672  {
8673  std::size_t seed = 0;
8674  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.sType );
8675  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.pNext );
8676  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.denormBehaviorIndependence );
8677  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.roundingModeIndependence );
8678  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderSignedZeroInfNanPreserveFloat16 );
8679  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderSignedZeroInfNanPreserveFloat32 );
8680  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderSignedZeroInfNanPreserveFloat64 );
8681  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderDenormPreserveFloat16 );
8682  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderDenormPreserveFloat32 );
8683  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderDenormPreserveFloat64 );
8684  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderDenormFlushToZeroFloat16 );
8685  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderDenormFlushToZeroFloat32 );
8686  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderDenormFlushToZeroFloat64 );
8687  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderRoundingModeRTEFloat16 );
8688  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderRoundingModeRTEFloat32 );
8689  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderRoundingModeRTEFloat64 );
8690  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderRoundingModeRTZFloat16 );
8691  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderRoundingModeRTZFloat32 );
8692  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFloatControlsProperties.shaderRoundingModeRTZFloat64 );
8693  return seed;
8694  }
8695  };
8696 
8697  template <>
8698  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT>
8699  {
8700  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2FeaturesEXT const & physicalDeviceFragmentDensityMap2FeaturesEXT ) const
8702  {
8703  std::size_t seed = 0;
8704  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMap2FeaturesEXT.sType );
8705  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMap2FeaturesEXT.pNext );
8706  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMap2FeaturesEXT.fragmentDensityMapDeferred );
8707  return seed;
8708  }
8709  };
8710 
8711  template <>
8712  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT>
8713  {
8714  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMap2PropertiesEXT const & physicalDeviceFragmentDensityMap2PropertiesEXT ) const
8716  {
8717  std::size_t seed = 0;
8718  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMap2PropertiesEXT.sType );
8719  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMap2PropertiesEXT.pNext );
8720  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMap2PropertiesEXT.subsampledLoads );
8721  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMap2PropertiesEXT.subsampledCoarseReconstructionEarlyAccess );
8722  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMap2PropertiesEXT.maxSubsampledArrayLayers );
8723  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMap2PropertiesEXT.maxDescriptorSetSubsampledSamplers );
8724  return seed;
8725  }
8726  };
8727 
8728  template <>
8729  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT>
8730  {
8731  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapFeaturesEXT const & physicalDeviceFragmentDensityMapFeaturesEXT ) const
8733  {
8734  std::size_t seed = 0;
8735  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapFeaturesEXT.sType );
8736  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapFeaturesEXT.pNext );
8737  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapFeaturesEXT.fragmentDensityMap );
8738  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapFeaturesEXT.fragmentDensityMapDynamic );
8739  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapFeaturesEXT.fragmentDensityMapNonSubsampledImages );
8740  return seed;
8741  }
8742  };
8743 
8744  template <>
8745  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM>
8746  {
8747  std::size_t
8748  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetFeaturesQCOM const & physicalDeviceFragmentDensityMapOffsetFeaturesQCOM ) const
8750  {
8751  std::size_t seed = 0;
8752  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapOffsetFeaturesQCOM.sType );
8753  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapOffsetFeaturesQCOM.pNext );
8754  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapOffsetFeaturesQCOM.fragmentDensityMapOffset );
8755  return seed;
8756  }
8757  };
8758 
8759  template <>
8760  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM>
8761  {
8762  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapOffsetPropertiesQCOM const &
8763  physicalDeviceFragmentDensityMapOffsetPropertiesQCOM ) const VULKAN_HPP_NOEXCEPT
8764  {
8765  std::size_t seed = 0;
8766  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapOffsetPropertiesQCOM.sType );
8767  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapOffsetPropertiesQCOM.pNext );
8768  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapOffsetPropertiesQCOM.fragmentDensityOffsetGranularity );
8769  return seed;
8770  }
8771  };
8772 
8773  template <>
8774  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT>
8775  {
8776  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentDensityMapPropertiesEXT const & physicalDeviceFragmentDensityMapPropertiesEXT ) const
8778  {
8779  std::size_t seed = 0;
8780  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapPropertiesEXT.sType );
8781  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapPropertiesEXT.pNext );
8782  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapPropertiesEXT.minFragmentDensityTexelSize );
8783  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapPropertiesEXT.maxFragmentDensityTexelSize );
8784  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentDensityMapPropertiesEXT.fragmentDensityInvocations );
8785  return seed;
8786  }
8787  };
8788 
8789  template <>
8790  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesKHR>
8791  {
8792  std::size_t
8793  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricFeaturesKHR const & physicalDeviceFragmentShaderBarycentricFeaturesKHR ) const
8795  {
8796  std::size_t seed = 0;
8797  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShaderBarycentricFeaturesKHR.sType );
8798  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShaderBarycentricFeaturesKHR.pNext );
8799  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShaderBarycentricFeaturesKHR.fragmentShaderBarycentric );
8800  return seed;
8801  }
8802  };
8803 
8804  template <>
8805  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricPropertiesKHR>
8806  {
8807  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderBarycentricPropertiesKHR const &
8808  physicalDeviceFragmentShaderBarycentricPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
8809  {
8810  std::size_t seed = 0;
8811  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShaderBarycentricPropertiesKHR.sType );
8812  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShaderBarycentricPropertiesKHR.pNext );
8813  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShaderBarycentricPropertiesKHR.triStripVertexOrderIndependentOfProvokingVertex );
8814  return seed;
8815  }
8816  };
8817 
8818  template <>
8819  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT>
8820  {
8821  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShaderInterlockFeaturesEXT const & physicalDeviceFragmentShaderInterlockFeaturesEXT )
8822  const VULKAN_HPP_NOEXCEPT
8823  {
8824  std::size_t seed = 0;
8825  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShaderInterlockFeaturesEXT.sType );
8826  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShaderInterlockFeaturesEXT.pNext );
8827  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShaderInterlockFeaturesEXT.fragmentShaderSampleInterlock );
8828  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShaderInterlockFeaturesEXT.fragmentShaderPixelInterlock );
8829  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShaderInterlockFeaturesEXT.fragmentShaderShadingRateInterlock );
8830  return seed;
8831  }
8832  };
8833 
8834  template <>
8835  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV>
8836  {
8837  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsFeaturesNV const & physicalDeviceFragmentShadingRateEnumsFeaturesNV )
8838  const VULKAN_HPP_NOEXCEPT
8839  {
8840  std::size_t seed = 0;
8841  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateEnumsFeaturesNV.sType );
8842  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateEnumsFeaturesNV.pNext );
8843  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateEnumsFeaturesNV.fragmentShadingRateEnums );
8844  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateEnumsFeaturesNV.supersampleFragmentShadingRates );
8845  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateEnumsFeaturesNV.noInvocationFragmentShadingRates );
8846  return seed;
8847  }
8848  };
8849 
8850  template <>
8851  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV>
8852  {
8853  std::size_t
8854  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateEnumsPropertiesNV const & physicalDeviceFragmentShadingRateEnumsPropertiesNV ) const
8856  {
8857  std::size_t seed = 0;
8858  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateEnumsPropertiesNV.sType );
8859  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateEnumsPropertiesNV.pNext );
8860  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateEnumsPropertiesNV.maxFragmentShadingRateInvocationCount );
8861  return seed;
8862  }
8863  };
8864 
8865  template <>
8866  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR>
8867  {
8868  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateFeaturesKHR const & physicalDeviceFragmentShadingRateFeaturesKHR ) const
8870  {
8871  std::size_t seed = 0;
8872  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateFeaturesKHR.sType );
8873  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateFeaturesKHR.pNext );
8874  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateFeaturesKHR.pipelineFragmentShadingRate );
8875  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateFeaturesKHR.primitiveFragmentShadingRate );
8876  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateFeaturesKHR.attachmentFragmentShadingRate );
8877  return seed;
8878  }
8879  };
8880 
8881  template <>
8882  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR>
8883  {
8884  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR const & physicalDeviceFragmentShadingRateKHR ) const VULKAN_HPP_NOEXCEPT
8885  {
8886  std::size_t seed = 0;
8887  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateKHR.sType );
8888  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateKHR.pNext );
8889  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateKHR.sampleCounts );
8890  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRateKHR.fragmentSize );
8891  return seed;
8892  }
8893  };
8894 
8895  template <>
8896  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR>
8897  {
8898  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRatePropertiesKHR const & physicalDeviceFragmentShadingRatePropertiesKHR ) const
8900  {
8901  std::size_t seed = 0;
8902  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.sType );
8903  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.pNext );
8904  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.minFragmentShadingRateAttachmentTexelSize );
8905  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.maxFragmentShadingRateAttachmentTexelSize );
8906  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.maxFragmentShadingRateAttachmentTexelSizeAspectRatio );
8907  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.primitiveFragmentShadingRateWithMultipleViewports );
8908  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.layeredShadingRateAttachments );
8909  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.fragmentShadingRateNonTrivialCombinerOps );
8910  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.maxFragmentSize );
8911  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.maxFragmentSizeAspectRatio );
8912  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.maxFragmentShadingRateCoverageSamples );
8913  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.maxFragmentShadingRateRasterizationSamples );
8914  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.fragmentShadingRateWithShaderDepthStencilWrites );
8915  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.fragmentShadingRateWithSampleMask );
8916  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.fragmentShadingRateWithShaderSampleMask );
8917  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.fragmentShadingRateWithConservativeRasterization );
8918  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.fragmentShadingRateWithFragmentShaderInterlock );
8919  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.fragmentShadingRateWithCustomSampleLocations );
8920  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFragmentShadingRatePropertiesKHR.fragmentShadingRateStrictMultiplyCombiner );
8921  return seed;
8922  }
8923  };
8924 
8925  template <>
8926  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT>
8927  {
8928  std::size_t
8929  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceFrameBoundaryFeaturesEXT const & physicalDeviceFrameBoundaryFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
8930  {
8931  std::size_t seed = 0;
8932  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFrameBoundaryFeaturesEXT.sType );
8933  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFrameBoundaryFeaturesEXT.pNext );
8934  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceFrameBoundaryFeaturesEXT.frameBoundary );
8935  return seed;
8936  }
8937  };
8938 
8939  template <>
8940  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceGlobalPriorityQueryFeaturesKHR>
8941  {
8942  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceGlobalPriorityQueryFeaturesKHR const & physicalDeviceGlobalPriorityQueryFeaturesKHR ) const
8944  {
8945  std::size_t seed = 0;
8946  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGlobalPriorityQueryFeaturesKHR.sType );
8947  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGlobalPriorityQueryFeaturesKHR.pNext );
8948  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGlobalPriorityQueryFeaturesKHR.globalPriorityQuery );
8949  return seed;
8950  }
8951  };
8952 
8953  template <>
8954  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT>
8955  {
8956  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryFeaturesEXT const & physicalDeviceGraphicsPipelineLibraryFeaturesEXT )
8957  const VULKAN_HPP_NOEXCEPT
8958  {
8959  std::size_t seed = 0;
8960  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGraphicsPipelineLibraryFeaturesEXT.sType );
8961  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGraphicsPipelineLibraryFeaturesEXT.pNext );
8962  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGraphicsPipelineLibraryFeaturesEXT.graphicsPipelineLibrary );
8963  return seed;
8964  }
8965  };
8966 
8967  template <>
8968  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT>
8969  {
8970  std::size_t
8971  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceGraphicsPipelineLibraryPropertiesEXT const & physicalDeviceGraphicsPipelineLibraryPropertiesEXT ) const
8973  {
8974  std::size_t seed = 0;
8975  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGraphicsPipelineLibraryPropertiesEXT.sType );
8976  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGraphicsPipelineLibraryPropertiesEXT.pNext );
8977  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGraphicsPipelineLibraryPropertiesEXT.graphicsPipelineLibraryFastLinking );
8978  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGraphicsPipelineLibraryPropertiesEXT.graphicsPipelineLibraryIndependentInterpolationDecoration );
8979  return seed;
8980  }
8981  };
8982 
8983  template <>
8984  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties>
8985  {
8986  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties const & physicalDeviceGroupProperties ) const VULKAN_HPP_NOEXCEPT
8987  {
8988  std::size_t seed = 0;
8989  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGroupProperties.sType );
8990  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGroupProperties.pNext );
8991  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGroupProperties.physicalDeviceCount );
8992  for ( size_t i = 0; i < VK_MAX_DEVICE_GROUP_SIZE; ++i )
8993  {
8994  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGroupProperties.physicalDevices[i] );
8995  }
8996  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceGroupProperties.subsetAllocation );
8997  return seed;
8998  }
8999  };
9000 
9001  template <>
9002  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyFeaturesEXT>
9003  {
9004  std::size_t
9005  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyFeaturesEXT const & physicalDeviceHostImageCopyFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
9006  {
9007  std::size_t seed = 0;
9008  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostImageCopyFeaturesEXT.sType );
9009  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostImageCopyFeaturesEXT.pNext );
9010  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostImageCopyFeaturesEXT.hostImageCopy );
9011  return seed;
9012  }
9013  };
9014 
9015  template <>
9016  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT>
9017  {
9018  std::size_t
9019  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceHostImageCopyPropertiesEXT const & physicalDeviceHostImageCopyPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
9020  {
9021  std::size_t seed = 0;
9022  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostImageCopyPropertiesEXT.sType );
9023  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostImageCopyPropertiesEXT.pNext );
9024  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostImageCopyPropertiesEXT.copySrcLayoutCount );
9025  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostImageCopyPropertiesEXT.pCopySrcLayouts );
9026  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostImageCopyPropertiesEXT.copyDstLayoutCount );
9027  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostImageCopyPropertiesEXT.pCopyDstLayouts );
9028  for ( size_t i = 0; i < VK_UUID_SIZE; ++i )
9029  {
9030  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostImageCopyPropertiesEXT.optimalTilingLayoutUUID[i] );
9031  }
9032  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostImageCopyPropertiesEXT.identicalMemoryTypeRequirements );
9033  return seed;
9034  }
9035  };
9036 
9037  template <>
9038  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures>
9039  {
9040  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceHostQueryResetFeatures const & physicalDeviceHostQueryResetFeatures ) const VULKAN_HPP_NOEXCEPT
9041  {
9042  std::size_t seed = 0;
9043  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostQueryResetFeatures.sType );
9044  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostQueryResetFeatures.pNext );
9045  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceHostQueryResetFeatures.hostQueryReset );
9046  return seed;
9047  }
9048  };
9049 
9050  template <>
9051  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties>
9052  {
9053  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceIDProperties const & physicalDeviceIDProperties ) const VULKAN_HPP_NOEXCEPT
9054  {
9055  std::size_t seed = 0;
9056  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceIDProperties.sType );
9057  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceIDProperties.pNext );
9058  for ( size_t i = 0; i < VK_UUID_SIZE; ++i )
9059  {
9060  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceIDProperties.deviceUUID[i] );
9061  }
9062  for ( size_t i = 0; i < VK_UUID_SIZE; ++i )
9063  {
9064  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceIDProperties.driverUUID[i] );
9065  }
9066  for ( size_t i = 0; i < VK_LUID_SIZE; ++i )
9067  {
9068  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceIDProperties.deviceLUID[i] );
9069  }
9070  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceIDProperties.deviceNodeMask );
9071  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceIDProperties.deviceLUIDValid );
9072  return seed;
9073  }
9074  };
9075 
9076  template <>
9077  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImage2DViewOf3DFeaturesEXT>
9078  {
9079  std::size_t
9080  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImage2DViewOf3DFeaturesEXT const & physicalDeviceImage2DViewOf3DFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
9081  {
9082  std::size_t seed = 0;
9083  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImage2DViewOf3DFeaturesEXT.sType );
9084  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImage2DViewOf3DFeaturesEXT.pNext );
9085  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImage2DViewOf3DFeaturesEXT.image2DViewOf3D );
9086  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImage2DViewOf3DFeaturesEXT.sampler2DViewOf3D );
9087  return seed;
9088  }
9089  };
9090 
9091  template <>
9092  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlFeaturesEXT>
9093  {
9094  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlFeaturesEXT const & physicalDeviceImageCompressionControlFeaturesEXT )
9095  const VULKAN_HPP_NOEXCEPT
9096  {
9097  std::size_t seed = 0;
9098  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageCompressionControlFeaturesEXT.sType );
9099  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageCompressionControlFeaturesEXT.pNext );
9100  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageCompressionControlFeaturesEXT.imageCompressionControl );
9101  return seed;
9102  }
9103  };
9104 
9105  template <>
9106  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT>
9107  {
9108  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageCompressionControlSwapchainFeaturesEXT const &
9109  physicalDeviceImageCompressionControlSwapchainFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
9110  {
9111  std::size_t seed = 0;
9112  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageCompressionControlSwapchainFeaturesEXT.sType );
9113  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageCompressionControlSwapchainFeaturesEXT.pNext );
9114  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageCompressionControlSwapchainFeaturesEXT.imageCompressionControlSwapchain );
9115  return seed;
9116  }
9117  };
9118 
9119  template <>
9120  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT>
9121  {
9122  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageDrmFormatModifierInfoEXT const & physicalDeviceImageDrmFormatModifierInfoEXT ) const
9124  {
9125  std::size_t seed = 0;
9126  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageDrmFormatModifierInfoEXT.sType );
9127  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageDrmFormatModifierInfoEXT.pNext );
9128  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageDrmFormatModifierInfoEXT.drmFormatModifier );
9129  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageDrmFormatModifierInfoEXT.sharingMode );
9130  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageDrmFormatModifierInfoEXT.queueFamilyIndexCount );
9131  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageDrmFormatModifierInfoEXT.pQueueFamilyIndices );
9132  return seed;
9133  }
9134  };
9135 
9136  template <>
9137  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2>
9138  {
9139  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 const & physicalDeviceImageFormatInfo2 ) const VULKAN_HPP_NOEXCEPT
9140  {
9141  std::size_t seed = 0;
9142  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageFormatInfo2.sType );
9143  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageFormatInfo2.pNext );
9144  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageFormatInfo2.format );
9145  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageFormatInfo2.type );
9146  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageFormatInfo2.tiling );
9147  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageFormatInfo2.usage );
9148  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageFormatInfo2.flags );
9149  return seed;
9150  }
9151  };
9152 
9153  template <>
9154  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM>
9155  {
9156  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2FeaturesQCOM const & physicalDeviceImageProcessing2FeaturesQCOM ) const
9158  {
9159  std::size_t seed = 0;
9160  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessing2FeaturesQCOM.sType );
9161  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessing2FeaturesQCOM.pNext );
9162  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessing2FeaturesQCOM.textureBlockMatch2 );
9163  return seed;
9164  }
9165  };
9166 
9167  template <>
9168  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2PropertiesQCOM>
9169  {
9170  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessing2PropertiesQCOM const & physicalDeviceImageProcessing2PropertiesQCOM ) const
9172  {
9173  std::size_t seed = 0;
9174  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessing2PropertiesQCOM.sType );
9175  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessing2PropertiesQCOM.pNext );
9176  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessing2PropertiesQCOM.maxBlockMatchWindow );
9177  return seed;
9178  }
9179  };
9180 
9181  template <>
9182  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingFeaturesQCOM>
9183  {
9184  std::size_t
9185  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingFeaturesQCOM const & physicalDeviceImageProcessingFeaturesQCOM ) const VULKAN_HPP_NOEXCEPT
9186  {
9187  std::size_t seed = 0;
9188  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessingFeaturesQCOM.sType );
9189  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessingFeaturesQCOM.pNext );
9190  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessingFeaturesQCOM.textureSampleWeighted );
9191  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessingFeaturesQCOM.textureBoxFilter );
9192  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessingFeaturesQCOM.textureBlockMatch );
9193  return seed;
9194  }
9195  };
9196 
9197  template <>
9198  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingPropertiesQCOM>
9199  {
9200  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageProcessingPropertiesQCOM const & physicalDeviceImageProcessingPropertiesQCOM ) const
9202  {
9203  std::size_t seed = 0;
9204  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessingPropertiesQCOM.sType );
9205  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessingPropertiesQCOM.pNext );
9206  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessingPropertiesQCOM.maxWeightFilterPhases );
9207  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessingPropertiesQCOM.maxWeightFilterDimension );
9208  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessingPropertiesQCOM.maxBlockMatchRegion );
9209  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageProcessingPropertiesQCOM.maxBoxFilterBlockSize );
9210  return seed;
9211  }
9212  };
9213 
9214  template <>
9215  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeatures>
9216  {
9217  std::size_t
9218  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageRobustnessFeatures const & physicalDeviceImageRobustnessFeatures ) const VULKAN_HPP_NOEXCEPT
9219  {
9220  std::size_t seed = 0;
9221  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageRobustnessFeatures.sType );
9222  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageRobustnessFeatures.pNext );
9223  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageRobustnessFeatures.robustImageAccess );
9224  return seed;
9225  }
9226  };
9227 
9228  template <>
9229  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT>
9230  {
9231  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageSlicedViewOf3DFeaturesEXT const & physicalDeviceImageSlicedViewOf3DFeaturesEXT ) const
9233  {
9234  std::size_t seed = 0;
9235  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageSlicedViewOf3DFeaturesEXT.sType );
9236  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageSlicedViewOf3DFeaturesEXT.pNext );
9237  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageSlicedViewOf3DFeaturesEXT.imageSlicedViewOf3D );
9238  return seed;
9239  }
9240  };
9241 
9242  template <>
9243  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT>
9244  {
9245  std::size_t
9246  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewImageFormatInfoEXT const & physicalDeviceImageViewImageFormatInfoEXT ) const VULKAN_HPP_NOEXCEPT
9247  {
9248  std::size_t seed = 0;
9249  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageViewImageFormatInfoEXT.sType );
9250  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageViewImageFormatInfoEXT.pNext );
9251  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageViewImageFormatInfoEXT.imageViewType );
9252  return seed;
9253  }
9254  };
9255 
9256  template <>
9257  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewMinLodFeaturesEXT>
9258  {
9259  std::size_t
9260  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImageViewMinLodFeaturesEXT const & physicalDeviceImageViewMinLodFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
9261  {
9262  std::size_t seed = 0;
9263  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageViewMinLodFeaturesEXT.sType );
9264  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageViewMinLodFeaturesEXT.pNext );
9265  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImageViewMinLodFeaturesEXT.minLod );
9266  return seed;
9267  }
9268  };
9269 
9270  template <>
9271  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures>
9272  {
9273  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceImagelessFramebufferFeatures const & physicalDeviceImagelessFramebufferFeatures ) const
9275  {
9276  std::size_t seed = 0;
9277  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImagelessFramebufferFeatures.sType );
9278  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImagelessFramebufferFeatures.pNext );
9279  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceImagelessFramebufferFeatures.imagelessFramebuffer );
9280  return seed;
9281  }
9282  };
9283 
9284  template <>
9285  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT>
9286  {
9287  std::size_t
9288  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceIndexTypeUint8FeaturesEXT const & physicalDeviceIndexTypeUint8FeaturesEXT ) const VULKAN_HPP_NOEXCEPT
9289  {
9290  std::size_t seed = 0;
9291  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceIndexTypeUint8FeaturesEXT.sType );
9292  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceIndexTypeUint8FeaturesEXT.pNext );
9293  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceIndexTypeUint8FeaturesEXT.indexTypeUint8 );
9294  return seed;
9295  }
9296  };
9297 
9298  template <>
9299  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceInheritedViewportScissorFeaturesNV>
9300  {
9301  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceInheritedViewportScissorFeaturesNV const & physicalDeviceInheritedViewportScissorFeaturesNV )
9302  const VULKAN_HPP_NOEXCEPT
9303  {
9304  std::size_t seed = 0;
9305  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInheritedViewportScissorFeaturesNV.sType );
9306  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInheritedViewportScissorFeaturesNV.pNext );
9307  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInheritedViewportScissorFeaturesNV.inheritedViewportScissor2D );
9308  return seed;
9309  }
9310  };
9311 
9312  template <>
9313  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeatures>
9314  {
9315  std::size_t
9316  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockFeatures const & physicalDeviceInlineUniformBlockFeatures ) const VULKAN_HPP_NOEXCEPT
9317  {
9318  std::size_t seed = 0;
9319  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInlineUniformBlockFeatures.sType );
9320  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInlineUniformBlockFeatures.pNext );
9321  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInlineUniformBlockFeatures.inlineUniformBlock );
9322  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInlineUniformBlockFeatures.descriptorBindingInlineUniformBlockUpdateAfterBind );
9323  return seed;
9324  }
9325  };
9326 
9327  template <>
9328  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockProperties>
9329  {
9330  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceInlineUniformBlockProperties const & physicalDeviceInlineUniformBlockProperties ) const
9332  {
9333  std::size_t seed = 0;
9334  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInlineUniformBlockProperties.sType );
9335  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInlineUniformBlockProperties.pNext );
9336  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInlineUniformBlockProperties.maxInlineUniformBlockSize );
9337  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInlineUniformBlockProperties.maxPerStageDescriptorInlineUniformBlocks );
9338  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInlineUniformBlockProperties.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks );
9339  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInlineUniformBlockProperties.maxDescriptorSetInlineUniformBlocks );
9340  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInlineUniformBlockProperties.maxDescriptorSetUpdateAfterBindInlineUniformBlocks );
9341  return seed;
9342  }
9343  };
9344 
9345  template <>
9346  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceInvocationMaskFeaturesHUAWEI>
9347  {
9348  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceInvocationMaskFeaturesHUAWEI const & physicalDeviceInvocationMaskFeaturesHUAWEI ) const
9350  {
9351  std::size_t seed = 0;
9352  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInvocationMaskFeaturesHUAWEI.sType );
9353  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInvocationMaskFeaturesHUAWEI.pNext );
9354  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceInvocationMaskFeaturesHUAWEI.invocationMask );
9355  return seed;
9356  }
9357  };
9358 
9359  template <>
9360  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceLayeredDriverPropertiesMSFT>
9361  {
9362  std::size_t
9363  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceLayeredDriverPropertiesMSFT const & physicalDeviceLayeredDriverPropertiesMSFT ) const VULKAN_HPP_NOEXCEPT
9364  {
9365  std::size_t seed = 0;
9366  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLayeredDriverPropertiesMSFT.sType );
9367  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLayeredDriverPropertiesMSFT.pNext );
9368  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLayeredDriverPropertiesMSFT.underlyingAPI );
9369  return seed;
9370  }
9371  };
9372 
9373  template <>
9374  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyDitheringFeaturesEXT>
9375  {
9376  std::size_t
9377  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceLegacyDitheringFeaturesEXT const & physicalDeviceLegacyDitheringFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
9378  {
9379  std::size_t seed = 0;
9380  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLegacyDitheringFeaturesEXT.sType );
9381  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLegacyDitheringFeaturesEXT.pNext );
9382  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLegacyDitheringFeaturesEXT.legacyDithering );
9383  return seed;
9384  }
9385  };
9386 
9387  template <>
9388  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits>
9389  {
9390  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceLimits const & physicalDeviceLimits ) const VULKAN_HPP_NOEXCEPT
9391  {
9392  std::size_t seed = 0;
9393  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxImageDimension1D );
9394  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxImageDimension2D );
9395  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxImageDimension3D );
9396  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxImageDimensionCube );
9397  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxImageArrayLayers );
9398  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxTexelBufferElements );
9399  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxUniformBufferRange );
9400  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxStorageBufferRange );
9401  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxPushConstantsSize );
9402  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxMemoryAllocationCount );
9403  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxSamplerAllocationCount );
9404  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.bufferImageGranularity );
9405  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.sparseAddressSpaceSize );
9406  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxBoundDescriptorSets );
9407  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxPerStageDescriptorSamplers );
9408  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxPerStageDescriptorUniformBuffers );
9409  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxPerStageDescriptorStorageBuffers );
9410  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxPerStageDescriptorSampledImages );
9411  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxPerStageDescriptorStorageImages );
9412  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxPerStageDescriptorInputAttachments );
9413  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxPerStageResources );
9414  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxDescriptorSetSamplers );
9415  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxDescriptorSetUniformBuffers );
9416  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxDescriptorSetUniformBuffersDynamic );
9417  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxDescriptorSetStorageBuffers );
9418  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxDescriptorSetStorageBuffersDynamic );
9419  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxDescriptorSetSampledImages );
9420  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxDescriptorSetStorageImages );
9421  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxDescriptorSetInputAttachments );
9422  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxVertexInputAttributes );
9423  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxVertexInputBindings );
9424  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxVertexInputAttributeOffset );
9425  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxVertexInputBindingStride );
9426  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxVertexOutputComponents );
9427  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxTessellationGenerationLevel );
9428  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxTessellationPatchSize );
9429  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxTessellationControlPerVertexInputComponents );
9430  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxTessellationControlPerVertexOutputComponents );
9431  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxTessellationControlPerPatchOutputComponents );
9432  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxTessellationControlTotalOutputComponents );
9433  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxTessellationEvaluationInputComponents );
9434  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxTessellationEvaluationOutputComponents );
9435  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxGeometryShaderInvocations );
9436  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxGeometryInputComponents );
9437  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxGeometryOutputComponents );
9438  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxGeometryOutputVertices );
9439  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxGeometryTotalOutputComponents );
9440  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxFragmentInputComponents );
9441  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxFragmentOutputAttachments );
9442  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxFragmentDualSrcAttachments );
9443  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxFragmentCombinedOutputResources );
9444  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxComputeSharedMemorySize );
9445  for ( size_t i = 0; i < 3; ++i )
9446  {
9447  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxComputeWorkGroupCount[i] );
9448  }
9449  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxComputeWorkGroupInvocations );
9450  for ( size_t i = 0; i < 3; ++i )
9451  {
9452  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxComputeWorkGroupSize[i] );
9453  }
9454  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.subPixelPrecisionBits );
9455  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.subTexelPrecisionBits );
9456  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.mipmapPrecisionBits );
9457  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxDrawIndexedIndexValue );
9458  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxDrawIndirectCount );
9459  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxSamplerLodBias );
9460  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxSamplerAnisotropy );
9461  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxViewports );
9462  for ( size_t i = 0; i < 2; ++i )
9463  {
9464  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxViewportDimensions[i] );
9465  }
9466  for ( size_t i = 0; i < 2; ++i )
9467  {
9468  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.viewportBoundsRange[i] );
9469  }
9470  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.viewportSubPixelBits );
9471  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.minMemoryMapAlignment );
9472  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.minTexelBufferOffsetAlignment );
9473  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.minUniformBufferOffsetAlignment );
9474  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.minStorageBufferOffsetAlignment );
9475  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.minTexelOffset );
9476  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxTexelOffset );
9477  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.minTexelGatherOffset );
9478  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxTexelGatherOffset );
9479  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.minInterpolationOffset );
9480  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxInterpolationOffset );
9481  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.subPixelInterpolationOffsetBits );
9482  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxFramebufferWidth );
9483  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxFramebufferHeight );
9484  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxFramebufferLayers );
9485  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.framebufferColorSampleCounts );
9486  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.framebufferDepthSampleCounts );
9487  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.framebufferStencilSampleCounts );
9488  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.framebufferNoAttachmentsSampleCounts );
9489  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxColorAttachments );
9490  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.sampledImageColorSampleCounts );
9491  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.sampledImageIntegerSampleCounts );
9492  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.sampledImageDepthSampleCounts );
9493  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.sampledImageStencilSampleCounts );
9494  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.storageImageSampleCounts );
9495  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxSampleMaskWords );
9496  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.timestampComputeAndGraphics );
9497  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.timestampPeriod );
9498  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxClipDistances );
9499  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxCullDistances );
9500  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.maxCombinedClipAndCullDistances );
9501  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.discreteQueuePriorities );
9502  for ( size_t i = 0; i < 2; ++i )
9503  {
9504  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.pointSizeRange[i] );
9505  }
9506  for ( size_t i = 0; i < 2; ++i )
9507  {
9508  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.lineWidthRange[i] );
9509  }
9510  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.pointSizeGranularity );
9511  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.lineWidthGranularity );
9512  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.strictLines );
9513  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.standardSampleLocations );
9514  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.optimalBufferCopyOffsetAlignment );
9515  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.optimalBufferCopyRowPitchAlignment );
9516  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLimits.nonCoherentAtomSize );
9517  return seed;
9518  }
9519  };
9520 
9521  template <>
9522  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT>
9523  {
9524  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationFeaturesEXT const & physicalDeviceLineRasterizationFeaturesEXT ) const
9526  {
9527  std::size_t seed = 0;
9528  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLineRasterizationFeaturesEXT.sType );
9529  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLineRasterizationFeaturesEXT.pNext );
9530  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLineRasterizationFeaturesEXT.rectangularLines );
9531  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLineRasterizationFeaturesEXT.bresenhamLines );
9532  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLineRasterizationFeaturesEXT.smoothLines );
9533  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLineRasterizationFeaturesEXT.stippledRectangularLines );
9534  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLineRasterizationFeaturesEXT.stippledBresenhamLines );
9535  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLineRasterizationFeaturesEXT.stippledSmoothLines );
9536  return seed;
9537  }
9538  };
9539 
9540  template <>
9541  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT>
9542  {
9543  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceLineRasterizationPropertiesEXT const & physicalDeviceLineRasterizationPropertiesEXT ) const
9545  {
9546  std::size_t seed = 0;
9547  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLineRasterizationPropertiesEXT.sType );
9548  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLineRasterizationPropertiesEXT.pNext );
9549  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLineRasterizationPropertiesEXT.lineSubPixelPrecisionBits );
9550  return seed;
9551  }
9552  };
9553 
9554  template <>
9555  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceLinearColorAttachmentFeaturesNV>
9556  {
9557  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceLinearColorAttachmentFeaturesNV const & physicalDeviceLinearColorAttachmentFeaturesNV ) const
9559  {
9560  std::size_t seed = 0;
9561  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLinearColorAttachmentFeaturesNV.sType );
9562  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLinearColorAttachmentFeaturesNV.pNext );
9563  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceLinearColorAttachmentFeaturesNV.linearColorAttachment );
9564  return seed;
9565  }
9566  };
9567 
9568  template <>
9569  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties>
9570  {
9571  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance3Properties const & physicalDeviceMaintenance3Properties ) const VULKAN_HPP_NOEXCEPT
9572  {
9573  std::size_t seed = 0;
9574  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance3Properties.sType );
9575  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance3Properties.pNext );
9576  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance3Properties.maxPerSetDescriptors );
9577  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance3Properties.maxMemoryAllocationSize );
9578  return seed;
9579  }
9580  };
9581 
9582  template <>
9583  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Features>
9584  {
9585  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Features const & physicalDeviceMaintenance4Features ) const VULKAN_HPP_NOEXCEPT
9586  {
9587  std::size_t seed = 0;
9588  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance4Features.sType );
9589  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance4Features.pNext );
9590  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance4Features.maintenance4 );
9591  return seed;
9592  }
9593  };
9594 
9595  template <>
9596  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Properties>
9597  {
9598  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance4Properties const & physicalDeviceMaintenance4Properties ) const VULKAN_HPP_NOEXCEPT
9599  {
9600  std::size_t seed = 0;
9601  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance4Properties.sType );
9602  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance4Properties.pNext );
9603  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance4Properties.maxBufferSize );
9604  return seed;
9605  }
9606  };
9607 
9608  template <>
9609  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5FeaturesKHR>
9610  {
9611  std::size_t
9612  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5FeaturesKHR const & physicalDeviceMaintenance5FeaturesKHR ) const VULKAN_HPP_NOEXCEPT
9613  {
9614  std::size_t seed = 0;
9615  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance5FeaturesKHR.sType );
9616  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance5FeaturesKHR.pNext );
9617  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance5FeaturesKHR.maintenance5 );
9618  return seed;
9619  }
9620  };
9621 
9622  template <>
9623  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5PropertiesKHR>
9624  {
9625  std::size_t
9626  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance5PropertiesKHR const & physicalDeviceMaintenance5PropertiesKHR ) const VULKAN_HPP_NOEXCEPT
9627  {
9628  std::size_t seed = 0;
9629  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance5PropertiesKHR.sType );
9630  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance5PropertiesKHR.pNext );
9631  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance5PropertiesKHR.earlyFragmentMultisampleCoverageAfterSampleCounting );
9632  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance5PropertiesKHR.earlyFragmentSampleMaskTestBeforeSampleCounting );
9633  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance5PropertiesKHR.depthStencilSwizzleOneSupport );
9634  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance5PropertiesKHR.polygonModePointSize );
9635  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance5PropertiesKHR.nonStrictSinglePixelWideLinesUseParallelogram );
9636  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance5PropertiesKHR.nonStrictWideLinesUseParallelogram );
9637  return seed;
9638  }
9639  };
9640 
9641  template <>
9642  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance6FeaturesKHR>
9643  {
9644  std::size_t
9645  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance6FeaturesKHR const & physicalDeviceMaintenance6FeaturesKHR ) const VULKAN_HPP_NOEXCEPT
9646  {
9647  std::size_t seed = 0;
9648  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance6FeaturesKHR.sType );
9649  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance6FeaturesKHR.pNext );
9650  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance6FeaturesKHR.maintenance6 );
9651  return seed;
9652  }
9653  };
9654 
9655  template <>
9656  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance6PropertiesKHR>
9657  {
9658  std::size_t
9659  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMaintenance6PropertiesKHR const & physicalDeviceMaintenance6PropertiesKHR ) const VULKAN_HPP_NOEXCEPT
9660  {
9661  std::size_t seed = 0;
9662  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance6PropertiesKHR.sType );
9663  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance6PropertiesKHR.pNext );
9664  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance6PropertiesKHR.blockTexelViewCompatibleMultipleLayers );
9665  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance6PropertiesKHR.maxCombinedImageSamplerDescriptorCount );
9666  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMaintenance6PropertiesKHR.fragmentShadingRateClampCombinerInputs );
9667  return seed;
9668  }
9669  };
9670 
9671  template <>
9672  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT>
9673  {
9674  std::size_t
9675  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryBudgetPropertiesEXT const & physicalDeviceMemoryBudgetPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
9676  {
9677  std::size_t seed = 0;
9678  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryBudgetPropertiesEXT.sType );
9679  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryBudgetPropertiesEXT.pNext );
9680  for ( size_t i = 0; i < VK_MAX_MEMORY_HEAPS; ++i )
9681  {
9682  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryBudgetPropertiesEXT.heapBudget[i] );
9683  }
9684  for ( size_t i = 0; i < VK_MAX_MEMORY_HEAPS; ++i )
9685  {
9686  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryBudgetPropertiesEXT.heapUsage[i] );
9687  }
9688  return seed;
9689  }
9690  };
9691 
9692  template <>
9693  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionFeaturesNV>
9694  {
9695  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionFeaturesNV const & physicalDeviceMemoryDecompressionFeaturesNV ) const
9697  {
9698  std::size_t seed = 0;
9699  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryDecompressionFeaturesNV.sType );
9700  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryDecompressionFeaturesNV.pNext );
9701  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryDecompressionFeaturesNV.memoryDecompression );
9702  return seed;
9703  }
9704  };
9705 
9706  template <>
9707  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionPropertiesNV>
9708  {
9709  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryDecompressionPropertiesNV const & physicalDeviceMemoryDecompressionPropertiesNV ) const
9711  {
9712  std::size_t seed = 0;
9713  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryDecompressionPropertiesNV.sType );
9714  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryDecompressionPropertiesNV.pNext );
9715  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryDecompressionPropertiesNV.decompressionMethods );
9716  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryDecompressionPropertiesNV.maxDecompressionIndirectCount );
9717  return seed;
9718  }
9719  };
9720 
9721  template <>
9722  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT>
9723  {
9724  std::size_t
9725  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryPriorityFeaturesEXT const & physicalDeviceMemoryPriorityFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
9726  {
9727  std::size_t seed = 0;
9728  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryPriorityFeaturesEXT.sType );
9729  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryPriorityFeaturesEXT.pNext );
9730  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryPriorityFeaturesEXT.memoryPriority );
9731  return seed;
9732  }
9733  };
9734 
9735  template <>
9736  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties>
9737  {
9738  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties const & physicalDeviceMemoryProperties ) const VULKAN_HPP_NOEXCEPT
9739  {
9740  std::size_t seed = 0;
9741  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryProperties.memoryTypeCount );
9742  for ( size_t i = 0; i < VK_MAX_MEMORY_TYPES; ++i )
9743  {
9744  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryProperties.memoryTypes[i] );
9745  }
9746  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryProperties.memoryHeapCount );
9747  for ( size_t i = 0; i < VK_MAX_MEMORY_HEAPS; ++i )
9748  {
9749  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryProperties.memoryHeaps[i] );
9750  }
9751  return seed;
9752  }
9753  };
9754 
9755  template <>
9756  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>
9757  {
9758  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 const & physicalDeviceMemoryProperties2 ) const VULKAN_HPP_NOEXCEPT
9759  {
9760  std::size_t seed = 0;
9761  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryProperties2.sType );
9762  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryProperties2.pNext );
9763  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMemoryProperties2.memoryProperties );
9764  return seed;
9765  }
9766  };
9767 
9768  template <>
9769  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesEXT>
9770  {
9771  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesEXT const & physicalDeviceMeshShaderFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
9772  {
9773  std::size_t seed = 0;
9774  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderFeaturesEXT.sType );
9775  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderFeaturesEXT.pNext );
9776  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderFeaturesEXT.taskShader );
9777  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderFeaturesEXT.meshShader );
9778  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderFeaturesEXT.multiviewMeshShader );
9779  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderFeaturesEXT.primitiveFragmentShadingRateMeshShader );
9780  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderFeaturesEXT.meshShaderQueries );
9781  return seed;
9782  }
9783  };
9784 
9785  template <>
9786  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV>
9787  {
9788  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderFeaturesNV const & physicalDeviceMeshShaderFeaturesNV ) const VULKAN_HPP_NOEXCEPT
9789  {
9790  std::size_t seed = 0;
9791  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderFeaturesNV.sType );
9792  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderFeaturesNV.pNext );
9793  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderFeaturesNV.taskShader );
9794  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderFeaturesNV.meshShader );
9795  return seed;
9796  }
9797  };
9798 
9799  template <>
9800  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesEXT>
9801  {
9802  std::size_t
9803  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesEXT const & physicalDeviceMeshShaderPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
9804  {
9805  std::size_t seed = 0;
9806  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.sType );
9807  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.pNext );
9808  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxTaskWorkGroupTotalCount );
9809  for ( size_t i = 0; i < 3; ++i )
9810  {
9811  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxTaskWorkGroupCount[i] );
9812  }
9813  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxTaskWorkGroupInvocations );
9814  for ( size_t i = 0; i < 3; ++i )
9815  {
9816  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxTaskWorkGroupSize[i] );
9817  }
9818  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxTaskPayloadSize );
9819  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxTaskSharedMemorySize );
9820  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxTaskPayloadAndSharedMemorySize );
9821  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshWorkGroupTotalCount );
9822  for ( size_t i = 0; i < 3; ++i )
9823  {
9824  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshWorkGroupCount[i] );
9825  }
9826  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshWorkGroupInvocations );
9827  for ( size_t i = 0; i < 3; ++i )
9828  {
9829  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshWorkGroupSize[i] );
9830  }
9831  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshSharedMemorySize );
9832  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshPayloadAndSharedMemorySize );
9833  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshOutputMemorySize );
9834  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshPayloadAndOutputMemorySize );
9835  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshOutputComponents );
9836  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshOutputVertices );
9837  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshOutputPrimitives );
9838  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshOutputLayers );
9839  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxMeshMultiviewViewCount );
9840  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.meshOutputPerVertexGranularity );
9841  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.meshOutputPerPrimitiveGranularity );
9842  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxPreferredTaskWorkGroupInvocations );
9843  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.maxPreferredMeshWorkGroupInvocations );
9844  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.prefersLocalInvocationVertexOutput );
9845  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.prefersLocalInvocationPrimitiveOutput );
9846  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.prefersCompactVertexOutput );
9847  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesEXT.prefersCompactPrimitiveOutput );
9848  return seed;
9849  }
9850  };
9851 
9852  template <>
9853  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV>
9854  {
9855  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMeshShaderPropertiesNV const & physicalDeviceMeshShaderPropertiesNV ) const VULKAN_HPP_NOEXCEPT
9856  {
9857  std::size_t seed = 0;
9858  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.sType );
9859  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.pNext );
9860  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.maxDrawMeshTasksCount );
9861  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.maxTaskWorkGroupInvocations );
9862  for ( size_t i = 0; i < 3; ++i )
9863  {
9864  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.maxTaskWorkGroupSize[i] );
9865  }
9866  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.maxTaskTotalMemorySize );
9867  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.maxTaskOutputCount );
9868  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.maxMeshWorkGroupInvocations );
9869  for ( size_t i = 0; i < 3; ++i )
9870  {
9871  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.maxMeshWorkGroupSize[i] );
9872  }
9873  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.maxMeshTotalMemorySize );
9874  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.maxMeshOutputVertices );
9875  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.maxMeshOutputPrimitives );
9876  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.maxMeshMultiviewViewCount );
9877  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.meshOutputPerVertexGranularity );
9878  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMeshShaderPropertiesNV.meshOutputPerPrimitiveGranularity );
9879  return seed;
9880  }
9881  };
9882 
9883  template <>
9884  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawFeaturesEXT>
9885  {
9886  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawFeaturesEXT const & physicalDeviceMultiDrawFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
9887  {
9888  std::size_t seed = 0;
9889  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiDrawFeaturesEXT.sType );
9890  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiDrawFeaturesEXT.pNext );
9891  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiDrawFeaturesEXT.multiDraw );
9892  return seed;
9893  }
9894  };
9895 
9896  template <>
9897  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawPropertiesEXT>
9898  {
9899  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiDrawPropertiesEXT const & physicalDeviceMultiDrawPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
9900  {
9901  std::size_t seed = 0;
9902  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiDrawPropertiesEXT.sType );
9903  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiDrawPropertiesEXT.pNext );
9904  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiDrawPropertiesEXT.maxMultiDrawCount );
9905  return seed;
9906  }
9907  };
9908 
9909  template <>
9910  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT>
9911  {
9912  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultisampledRenderToSingleSampledFeaturesEXT const &
9913  physicalDeviceMultisampledRenderToSingleSampledFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
9914  {
9915  std::size_t seed = 0;
9916  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultisampledRenderToSingleSampledFeaturesEXT.sType );
9917  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultisampledRenderToSingleSampledFeaturesEXT.pNext );
9918  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultisampledRenderToSingleSampledFeaturesEXT.multisampledRenderToSingleSampled );
9919  return seed;
9920  }
9921  };
9922 
9923  template <>
9924  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures>
9925  {
9926  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewFeatures const & physicalDeviceMultiviewFeatures ) const VULKAN_HPP_NOEXCEPT
9927  {
9928  std::size_t seed = 0;
9929  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewFeatures.sType );
9930  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewFeatures.pNext );
9931  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewFeatures.multiview );
9932  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewFeatures.multiviewGeometryShader );
9933  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewFeatures.multiviewTessellationShader );
9934  return seed;
9935  }
9936  };
9937 
9938  template <>
9939  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX>
9940  {
9941  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewAttributesPropertiesNVX const &
9942  physicalDeviceMultiviewPerViewAttributesPropertiesNVX ) const VULKAN_HPP_NOEXCEPT
9943  {
9944  std::size_t seed = 0;
9945  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewPerViewAttributesPropertiesNVX.sType );
9946  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewPerViewAttributesPropertiesNVX.pNext );
9947  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewPerViewAttributesPropertiesNVX.perViewPositionAllComponents );
9948  return seed;
9949  }
9950  };
9951 
9952  template <>
9953  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM>
9954  {
9955  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM const &
9956  physicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM ) const VULKAN_HPP_NOEXCEPT
9957  {
9958  std::size_t seed = 0;
9959  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM.sType );
9960  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM.pNext );
9961  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewPerViewRenderAreasFeaturesQCOM.multiviewPerViewRenderAreas );
9962  return seed;
9963  }
9964  };
9965 
9966  template <>
9967  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM>
9968  {
9969  std::size_t
9970  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewPerViewViewportsFeaturesQCOM const & physicalDeviceMultiviewPerViewViewportsFeaturesQCOM ) const
9972  {
9973  std::size_t seed = 0;
9974  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewPerViewViewportsFeaturesQCOM.sType );
9975  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewPerViewViewportsFeaturesQCOM.pNext );
9976  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewPerViewViewportsFeaturesQCOM.multiviewPerViewViewports );
9977  return seed;
9978  }
9979  };
9980 
9981  template <>
9982  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties>
9983  {
9984  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMultiviewProperties const & physicalDeviceMultiviewProperties ) const VULKAN_HPP_NOEXCEPT
9985  {
9986  std::size_t seed = 0;
9987  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewProperties.sType );
9988  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewProperties.pNext );
9989  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewProperties.maxMultiviewViewCount );
9990  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMultiviewProperties.maxMultiviewInstanceIndex );
9991  return seed;
9992  }
9993  };
9994 
9995  template <>
9996  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesEXT>
9997  {
9998  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceMutableDescriptorTypeFeaturesEXT const & physicalDeviceMutableDescriptorTypeFeaturesEXT ) const
10000  {
10001  std::size_t seed = 0;
10002  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMutableDescriptorTypeFeaturesEXT.sType );
10003  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMutableDescriptorTypeFeaturesEXT.pNext );
10004  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceMutableDescriptorTypeFeaturesEXT.mutableDescriptorType );
10005  return seed;
10006  }
10007  };
10008 
10009  template <>
10010  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT>
10011  {
10012  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferFeaturesEXT const & physicalDeviceNestedCommandBufferFeaturesEXT ) const
10014  {
10015  std::size_t seed = 0;
10016  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferFeaturesEXT.sType );
10017  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferFeaturesEXT.pNext );
10018  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferFeaturesEXT.nestedCommandBuffer );
10019  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferFeaturesEXT.nestedCommandBufferRendering );
10020  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferFeaturesEXT.nestedCommandBufferSimultaneousUse );
10021  return seed;
10022  }
10023  };
10024 
10025  template <>
10026  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT>
10027  {
10028  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceNestedCommandBufferPropertiesEXT const & physicalDeviceNestedCommandBufferPropertiesEXT ) const
10030  {
10031  std::size_t seed = 0;
10032  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferPropertiesEXT.sType );
10033  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferPropertiesEXT.pNext );
10034  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNestedCommandBufferPropertiesEXT.maxCommandBufferNestingLevel );
10035  return seed;
10036  }
10037  };
10038 
10039  template <>
10040  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT>
10041  {
10042  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceNonSeamlessCubeMapFeaturesEXT const & physicalDeviceNonSeamlessCubeMapFeaturesEXT ) const
10044  {
10045  std::size_t seed = 0;
10046  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNonSeamlessCubeMapFeaturesEXT.sType );
10047  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNonSeamlessCubeMapFeaturesEXT.pNext );
10048  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceNonSeamlessCubeMapFeaturesEXT.nonSeamlessCubeMap );
10049  return seed;
10050  }
10051  };
10052 
10053  template <>
10054  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapFeaturesEXT>
10055  {
10056  std::size_t
10057  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapFeaturesEXT const & physicalDeviceOpacityMicromapFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
10058  {
10059  std::size_t seed = 0;
10060  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpacityMicromapFeaturesEXT.sType );
10061  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpacityMicromapFeaturesEXT.pNext );
10062  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpacityMicromapFeaturesEXT.micromap );
10063  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpacityMicromapFeaturesEXT.micromapCaptureReplay );
10064  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpacityMicromapFeaturesEXT.micromapHostCommands );
10065  return seed;
10066  }
10067  };
10068 
10069  template <>
10070  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapPropertiesEXT>
10071  {
10072  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceOpacityMicromapPropertiesEXT const & physicalDeviceOpacityMicromapPropertiesEXT ) const
10074  {
10075  std::size_t seed = 0;
10076  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpacityMicromapPropertiesEXT.sType );
10077  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpacityMicromapPropertiesEXT.pNext );
10078  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpacityMicromapPropertiesEXT.maxOpacity2StateSubdivisionLevel );
10079  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpacityMicromapPropertiesEXT.maxOpacity4StateSubdivisionLevel );
10080  return seed;
10081  }
10082  };
10083 
10084  template <>
10085  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowFeaturesNV>
10086  {
10087  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowFeaturesNV const & physicalDeviceOpticalFlowFeaturesNV ) const VULKAN_HPP_NOEXCEPT
10088  {
10089  std::size_t seed = 0;
10090  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpticalFlowFeaturesNV.sType );
10091  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpticalFlowFeaturesNV.pNext );
10092  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpticalFlowFeaturesNV.opticalFlow );
10093  return seed;
10094  }
10095  };
10096 
10097  template <>
10098  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowPropertiesNV>
10099  {
10100  std::size_t
10101  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceOpticalFlowPropertiesNV const & physicalDeviceOpticalFlowPropertiesNV ) const VULKAN_HPP_NOEXCEPT
10102  {
10103  std::size_t seed = 0;
10104  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpticalFlowPropertiesNV.sType );
10105  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpticalFlowPropertiesNV.pNext );
10106  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpticalFlowPropertiesNV.supportedOutputGridSizes );
10107  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpticalFlowPropertiesNV.supportedHintGridSizes );
10108  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpticalFlowPropertiesNV.hintSupported );
10109  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpticalFlowPropertiesNV.costSupported );
10110  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpticalFlowPropertiesNV.bidirectionalFlowSupported );
10111  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpticalFlowPropertiesNV.globalFlowSupported );
10112  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpticalFlowPropertiesNV.minWidth );
10113  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpticalFlowPropertiesNV.minHeight );
10114  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpticalFlowPropertiesNV.maxWidth );
10115  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpticalFlowPropertiesNV.maxHeight );
10116  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceOpticalFlowPropertiesNV.maxNumRegionsOfInterest );
10117  return seed;
10118  }
10119  };
10120 
10121  template <>
10122  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT>
10123  {
10124  std::size_t
10125  operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePCIBusInfoPropertiesEXT const & physicalDevicePCIBusInfoPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
10126  {
10127  std::size_t seed = 0;
10128  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePCIBusInfoPropertiesEXT.sType );
10129  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePCIBusInfoPropertiesEXT.pNext );
10130  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePCIBusInfoPropertiesEXT.pciDomain );
10131  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePCIBusInfoPropertiesEXT.pciBus );
10132  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePCIBusInfoPropertiesEXT.pciDevice );
10133  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePCIBusInfoPropertiesEXT.pciFunction );
10134  return seed;
10135  }
10136  };
10137 
10138  template <>
10139  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT>
10140  {
10141  std::size_t
10142  operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePageableDeviceLocalMemoryFeaturesEXT const & physicalDevicePageableDeviceLocalMemoryFeaturesEXT ) const
10144  {
10145  std::size_t seed = 0;
10146  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePageableDeviceLocalMemoryFeaturesEXT.sType );
10147  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePageableDeviceLocalMemoryFeaturesEXT.pNext );
10148  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePageableDeviceLocalMemoryFeaturesEXT.pageableDeviceLocalMemory );
10149  return seed;
10150  }
10151  };
10152 
10153  template <>
10154  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePerStageDescriptorSetFeaturesNV>
10155  {
10156  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePerStageDescriptorSetFeaturesNV const & physicalDevicePerStageDescriptorSetFeaturesNV ) const
10158  {
10159  std::size_t seed = 0;
10160  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePerStageDescriptorSetFeaturesNV.sType );
10161  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePerStageDescriptorSetFeaturesNV.pNext );
10162  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePerStageDescriptorSetFeaturesNV.perStageDescriptorSet );
10163  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePerStageDescriptorSetFeaturesNV.dynamicPipelineLayout );
10164  return seed;
10165  }
10166  };
10167 
10168  template <>
10169  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR>
10170  {
10171  std::size_t
10172  operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryFeaturesKHR const & physicalDevicePerformanceQueryFeaturesKHR ) const VULKAN_HPP_NOEXCEPT
10173  {
10174  std::size_t seed = 0;
10175  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePerformanceQueryFeaturesKHR.sType );
10176  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePerformanceQueryFeaturesKHR.pNext );
10177  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePerformanceQueryFeaturesKHR.performanceCounterQueryPools );
10178  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePerformanceQueryFeaturesKHR.performanceCounterMultipleQueryPools );
10179  return seed;
10180  }
10181  };
10182 
10183  template <>
10184  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR>
10185  {
10186  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePerformanceQueryPropertiesKHR const & physicalDevicePerformanceQueryPropertiesKHR ) const
10188  {
10189  std::size_t seed = 0;
10190  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePerformanceQueryPropertiesKHR.sType );
10191  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePerformanceQueryPropertiesKHR.pNext );
10192  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePerformanceQueryPropertiesKHR.allowCommandBufferQueryCopies );
10193  return seed;
10194  }
10195  };
10196 
10197  template <>
10198  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeatures>
10199  {
10200  std::size_t
10201  operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineCreationCacheControlFeatures const & physicalDevicePipelineCreationCacheControlFeatures ) const
10203  {
10204  std::size_t seed = 0;
10205  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineCreationCacheControlFeatures.sType );
10206  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineCreationCacheControlFeatures.pNext );
10207  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineCreationCacheControlFeatures.pipelineCreationCacheControl );
10208  return seed;
10209  }
10210  };
10211 
10212  template <>
10213  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR>
10214  {
10215  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineExecutablePropertiesFeaturesKHR const &
10216  physicalDevicePipelineExecutablePropertiesFeaturesKHR ) const VULKAN_HPP_NOEXCEPT
10217  {
10218  std::size_t seed = 0;
10219  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineExecutablePropertiesFeaturesKHR.sType );
10220  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineExecutablePropertiesFeaturesKHR.pNext );
10221  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineExecutablePropertiesFeaturesKHR.pipelineExecutableInfo );
10222  return seed;
10223  }
10224  };
10225 
10226  template <>
10227  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT>
10228  {
10229  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineLibraryGroupHandlesFeaturesEXT const &
10230  physicalDevicePipelineLibraryGroupHandlesFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
10231  {
10232  std::size_t seed = 0;
10233  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineLibraryGroupHandlesFeaturesEXT.sType );
10234  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineLibraryGroupHandlesFeaturesEXT.pNext );
10235  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineLibraryGroupHandlesFeaturesEXT.pipelineLibraryGroupHandles );
10236  return seed;
10237  }
10238  };
10239 
10240  template <>
10241  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelinePropertiesFeaturesEXT>
10242  {
10243  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePipelinePropertiesFeaturesEXT const & physicalDevicePipelinePropertiesFeaturesEXT ) const
10245  {
10246  std::size_t seed = 0;
10247  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelinePropertiesFeaturesEXT.sType );
10248  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelinePropertiesFeaturesEXT.pNext );
10249  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelinePropertiesFeaturesEXT.pipelinePropertiesIdentifier );
10250  return seed;
10251  }
10252  };
10253 
10254  template <>
10255  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineProtectedAccessFeaturesEXT>
10256  {
10257  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineProtectedAccessFeaturesEXT const & physicalDevicePipelineProtectedAccessFeaturesEXT )
10258  const VULKAN_HPP_NOEXCEPT
10259  {
10260  std::size_t seed = 0;
10261  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineProtectedAccessFeaturesEXT.sType );
10262  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineProtectedAccessFeaturesEXT.pNext );
10263  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineProtectedAccessFeaturesEXT.pipelineProtectedAccess );
10264  return seed;
10265  }
10266  };
10267 
10268  template <>
10269  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessFeaturesEXT>
10270  {
10271  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessFeaturesEXT const & physicalDevicePipelineRobustnessFeaturesEXT ) const
10273  {
10274  std::size_t seed = 0;
10275  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineRobustnessFeaturesEXT.sType );
10276  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineRobustnessFeaturesEXT.pNext );
10277  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineRobustnessFeaturesEXT.pipelineRobustness );
10278  return seed;
10279  }
10280  };
10281 
10282  template <>
10283  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessPropertiesEXT>
10284  {
10285  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePipelineRobustnessPropertiesEXT const & physicalDevicePipelineRobustnessPropertiesEXT ) const
10287  {
10288  std::size_t seed = 0;
10289  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineRobustnessPropertiesEXT.sType );
10290  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineRobustnessPropertiesEXT.pNext );
10291  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineRobustnessPropertiesEXT.defaultRobustnessStorageBuffers );
10292  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineRobustnessPropertiesEXT.defaultRobustnessUniformBuffers );
10293  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineRobustnessPropertiesEXT.defaultRobustnessVertexInputs );
10294  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePipelineRobustnessPropertiesEXT.defaultRobustnessImages );
10295  return seed;
10296  }
10297  };
10298 
10299  template <>
10300  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties>
10301  {
10302  std::size_t
10303  operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePointClippingProperties const & physicalDevicePointClippingProperties ) const VULKAN_HPP_NOEXCEPT
10304  {
10305  std::size_t seed = 0;
10306  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePointClippingProperties.sType );
10307  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePointClippingProperties.pNext );
10308  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePointClippingProperties.pointClippingBehavior );
10309  return seed;
10310  }
10311  };
10312 
10313 # if defined( VK_ENABLE_BETA_EXTENSIONS )
10314  template <>
10315  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR>
10316  {
10317  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetFeaturesKHR const & physicalDevicePortabilitySubsetFeaturesKHR ) const
10319  {
10320  std::size_t seed = 0;
10321  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.sType );
10322  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.pNext );
10323  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.constantAlphaColorBlendFactors );
10324  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.events );
10325  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.imageViewFormatReinterpretation );
10326  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.imageViewFormatSwizzle );
10327  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.imageView2DOn3DImage );
10328  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.multisampleArrayImage );
10329  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.mutableComparisonSamplers );
10330  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.pointPolygons );
10331  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.samplerMipLodBias );
10332  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.separateStencilMaskRef );
10333  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.shaderSampleRateInterpolationFunctions );
10334  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.tessellationIsolines );
10335  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.tessellationPointMode );
10336  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.triangleFans );
10337  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetFeaturesKHR.vertexAttributeAccessBeyondStride );
10338  return seed;
10339  }
10340  };
10341 # endif /*VK_ENABLE_BETA_EXTENSIONS*/
10342 
10343 # if defined( VK_ENABLE_BETA_EXTENSIONS )
10344  template <>
10345  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR>
10346  {
10347  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePortabilitySubsetPropertiesKHR const & physicalDevicePortabilitySubsetPropertiesKHR ) const
10349  {
10350  std::size_t seed = 0;
10351  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetPropertiesKHR.sType );
10352  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetPropertiesKHR.pNext );
10353  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePortabilitySubsetPropertiesKHR.minVertexInputBindingStrideAlignment );
10354  return seed;
10355  }
10356  };
10357 # endif /*VK_ENABLE_BETA_EXTENSIONS*/
10358 
10359  template <>
10360  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePresentBarrierFeaturesNV>
10361  {
10362  std::size_t
10363  operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePresentBarrierFeaturesNV const & physicalDevicePresentBarrierFeaturesNV ) const VULKAN_HPP_NOEXCEPT
10364  {
10365  std::size_t seed = 0;
10366  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePresentBarrierFeaturesNV.sType );
10367  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePresentBarrierFeaturesNV.pNext );
10368  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePresentBarrierFeaturesNV.presentBarrier );
10369  return seed;
10370  }
10371  };
10372 
10373  template <>
10374  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePresentIdFeaturesKHR>
10375  {
10376  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePresentIdFeaturesKHR const & physicalDevicePresentIdFeaturesKHR ) const VULKAN_HPP_NOEXCEPT
10377  {
10378  std::size_t seed = 0;
10379  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePresentIdFeaturesKHR.sType );
10380  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePresentIdFeaturesKHR.pNext );
10381  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePresentIdFeaturesKHR.presentId );
10382  return seed;
10383  }
10384  };
10385 
10386  template <>
10387  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePresentWaitFeaturesKHR>
10388  {
10389  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePresentWaitFeaturesKHR const & physicalDevicePresentWaitFeaturesKHR ) const VULKAN_HPP_NOEXCEPT
10390  {
10391  std::size_t seed = 0;
10392  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePresentWaitFeaturesKHR.sType );
10393  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePresentWaitFeaturesKHR.pNext );
10394  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePresentWaitFeaturesKHR.presentWait );
10395  return seed;
10396  }
10397  };
10398 
10399  template <>
10400  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT>
10401  {
10402  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitiveTopologyListRestartFeaturesEXT const &
10403  physicalDevicePrimitiveTopologyListRestartFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
10404  {
10405  std::size_t seed = 0;
10406  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrimitiveTopologyListRestartFeaturesEXT.sType );
10407  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrimitiveTopologyListRestartFeaturesEXT.pNext );
10408  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrimitiveTopologyListRestartFeaturesEXT.primitiveTopologyListRestart );
10409  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrimitiveTopologyListRestartFeaturesEXT.primitiveTopologyPatchListRestart );
10410  return seed;
10411  }
10412  };
10413 
10414  template <>
10415  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT>
10416  {
10417  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePrimitivesGeneratedQueryFeaturesEXT const & physicalDevicePrimitivesGeneratedQueryFeaturesEXT )
10418  const VULKAN_HPP_NOEXCEPT
10419  {
10420  std::size_t seed = 0;
10421  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrimitivesGeneratedQueryFeaturesEXT.sType );
10422  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrimitivesGeneratedQueryFeaturesEXT.pNext );
10423  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrimitivesGeneratedQueryFeaturesEXT.primitivesGeneratedQuery );
10424  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrimitivesGeneratedQueryFeaturesEXT.primitivesGeneratedQueryWithRasterizerDiscard );
10425  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrimitivesGeneratedQueryFeaturesEXT.primitivesGeneratedQueryWithNonZeroStreams );
10426  return seed;
10427  }
10428  };
10429 
10430  template <>
10431  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeatures>
10432  {
10433  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePrivateDataFeatures const & physicalDevicePrivateDataFeatures ) const VULKAN_HPP_NOEXCEPT
10434  {
10435  std::size_t seed = 0;
10436  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrivateDataFeatures.sType );
10437  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrivateDataFeatures.pNext );
10438  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePrivateDataFeatures.privateData );
10439  return seed;
10440  }
10441  };
10442 
10443  template <>
10444  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties>
10445  {
10446  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseProperties const & physicalDeviceSparseProperties ) const VULKAN_HPP_NOEXCEPT
10447  {
10448  std::size_t seed = 0;
10449  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseProperties.residencyStandard2DBlockShape );
10450  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseProperties.residencyStandard2DMultisampleBlockShape );
10451  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseProperties.residencyStandard3DBlockShape );
10452  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseProperties.residencyAlignedMipSize );
10453  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseProperties.residencyNonResidentStrict );
10454  return seed;
10455  }
10456  };
10457 
10458  template <>
10459  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties>
10460  {
10461  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties const & physicalDeviceProperties ) const VULKAN_HPP_NOEXCEPT
10462  {
10463  std::size_t seed = 0;
10464  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties.apiVersion );
10465  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties.driverVersion );
10466  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties.vendorID );
10467  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties.deviceID );
10468  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties.deviceType );
10469  for ( size_t i = 0; i < VK_MAX_PHYSICAL_DEVICE_NAME_SIZE; ++i )
10470  {
10471  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties.deviceName[i] );
10472  }
10473  for ( size_t i = 0; i < VK_UUID_SIZE; ++i )
10474  {
10475  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties.pipelineCacheUUID[i] );
10476  }
10477  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties.limits );
10478  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties.sparseProperties );
10479  return seed;
10480  }
10481  };
10482 
10483  template <>
10484  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>
10485  {
10486  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 const & physicalDeviceProperties2 ) const VULKAN_HPP_NOEXCEPT
10487  {
10488  std::size_t seed = 0;
10489  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties2.sType );
10490  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties2.pNext );
10491  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProperties2.properties );
10492  return seed;
10493  }
10494  };
10495 
10496  template <>
10497  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures>
10498  {
10499  std::size_t
10500  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryFeatures const & physicalDeviceProtectedMemoryFeatures ) const VULKAN_HPP_NOEXCEPT
10501  {
10502  std::size_t seed = 0;
10503  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProtectedMemoryFeatures.sType );
10504  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProtectedMemoryFeatures.pNext );
10505  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProtectedMemoryFeatures.protectedMemory );
10506  return seed;
10507  }
10508  };
10509 
10510  template <>
10511  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties>
10512  {
10513  std::size_t
10514  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceProtectedMemoryProperties const & physicalDeviceProtectedMemoryProperties ) const VULKAN_HPP_NOEXCEPT
10515  {
10516  std::size_t seed = 0;
10517  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProtectedMemoryProperties.sType );
10518  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProtectedMemoryProperties.pNext );
10519  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProtectedMemoryProperties.protectedNoFault );
10520  return seed;
10521  }
10522  };
10523 
10524  template <>
10525  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexFeaturesEXT>
10526  {
10527  std::size_t
10528  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexFeaturesEXT const & physicalDeviceProvokingVertexFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
10529  {
10530  std::size_t seed = 0;
10531  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProvokingVertexFeaturesEXT.sType );
10532  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProvokingVertexFeaturesEXT.pNext );
10533  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProvokingVertexFeaturesEXT.provokingVertexLast );
10534  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProvokingVertexFeaturesEXT.transformFeedbackPreservesProvokingVertex );
10535  return seed;
10536  }
10537  };
10538 
10539  template <>
10540  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexPropertiesEXT>
10541  {
10542  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceProvokingVertexPropertiesEXT const & physicalDeviceProvokingVertexPropertiesEXT ) const
10544  {
10545  std::size_t seed = 0;
10546  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProvokingVertexPropertiesEXT.sType );
10547  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProvokingVertexPropertiesEXT.pNext );
10548  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProvokingVertexPropertiesEXT.provokingVertexModePerPipeline );
10549  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceProvokingVertexPropertiesEXT.transformFeedbackPreservesTriangleFanProvokingVertex );
10550  return seed;
10551  }
10552  };
10553 
10554  template <>
10555  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR>
10556  {
10557  std::size_t
10558  operator()( VULKAN_HPP_NAMESPACE::PhysicalDevicePushDescriptorPropertiesKHR const & physicalDevicePushDescriptorPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
10559  {
10560  std::size_t seed = 0;
10561  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePushDescriptorPropertiesKHR.sType );
10562  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePushDescriptorPropertiesKHR.pNext );
10563  VULKAN_HPP_HASH_COMBINE( seed, physicalDevicePushDescriptorPropertiesKHR.maxPushDescriptors );
10564  return seed;
10565  }
10566  };
10567 
10568  template <>
10569  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRGBA10X6FormatsFeaturesEXT>
10570  {
10571  std::size_t
10572  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRGBA10X6FormatsFeaturesEXT const & physicalDeviceRGBA10X6FormatsFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
10573  {
10574  std::size_t seed = 0;
10575  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRGBA10X6FormatsFeaturesEXT.sType );
10576  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRGBA10X6FormatsFeaturesEXT.pNext );
10577  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRGBA10X6FormatsFeaturesEXT.formatRgba10x6WithoutYCbCrSampler );
10578  return seed;
10579  }
10580  };
10581 
10582  template <>
10583  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT>
10584  {
10585  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT const &
10586  physicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
10587  {
10588  std::size_t seed = 0;
10589  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT.sType );
10590  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT.pNext );
10591  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT.rasterizationOrderColorAttachmentAccess );
10592  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT.rasterizationOrderDepthAttachmentAccess );
10593  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRasterizationOrderAttachmentAccessFeaturesEXT.rasterizationOrderStencilAttachmentAccess );
10594  return seed;
10595  }
10596  };
10597 
10598  template <>
10599  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR>
10600  {
10601  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayQueryFeaturesKHR const & physicalDeviceRayQueryFeaturesKHR ) const VULKAN_HPP_NOEXCEPT
10602  {
10603  std::size_t seed = 0;
10604  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayQueryFeaturesKHR.sType );
10605  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayQueryFeaturesKHR.pNext );
10606  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayQueryFeaturesKHR.rayQuery );
10607  return seed;
10608  }
10609  };
10610 
10611  template <>
10612  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderFeaturesNV>
10613  {
10614  std::size_t
10615  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderFeaturesNV const & physicalDeviceRayTracingInvocationReorderFeaturesNV ) const
10617  {
10618  std::size_t seed = 0;
10619  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingInvocationReorderFeaturesNV.sType );
10620  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingInvocationReorderFeaturesNV.pNext );
10621  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingInvocationReorderFeaturesNV.rayTracingInvocationReorder );
10622  return seed;
10623  }
10624  };
10625 
10626  template <>
10627  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderPropertiesNV>
10628  {
10629  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingInvocationReorderPropertiesNV const &
10630  physicalDeviceRayTracingInvocationReorderPropertiesNV ) const VULKAN_HPP_NOEXCEPT
10631  {
10632  std::size_t seed = 0;
10633  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingInvocationReorderPropertiesNV.sType );
10634  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingInvocationReorderPropertiesNV.pNext );
10635  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingInvocationReorderPropertiesNV.rayTracingInvocationReorderReorderingHint );
10636  return seed;
10637  }
10638  };
10639 
10640  template <>
10641  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMaintenance1FeaturesKHR>
10642  {
10643  std::size_t operator()(
10644  VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMaintenance1FeaturesKHR const & physicalDeviceRayTracingMaintenance1FeaturesKHR ) const VULKAN_HPP_NOEXCEPT
10645  {
10646  std::size_t seed = 0;
10647  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingMaintenance1FeaturesKHR.sType );
10648  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingMaintenance1FeaturesKHR.pNext );
10649  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingMaintenance1FeaturesKHR.rayTracingMaintenance1 );
10650  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingMaintenance1FeaturesKHR.rayTracingPipelineTraceRaysIndirect2 );
10651  return seed;
10652  }
10653  };
10654 
10655  template <>
10656  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMotionBlurFeaturesNV>
10657  {
10658  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingMotionBlurFeaturesNV const & physicalDeviceRayTracingMotionBlurFeaturesNV ) const
10660  {
10661  std::size_t seed = 0;
10662  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingMotionBlurFeaturesNV.sType );
10663  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingMotionBlurFeaturesNV.pNext );
10664  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingMotionBlurFeaturesNV.rayTracingMotionBlur );
10665  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingMotionBlurFeaturesNV.rayTracingMotionBlurPipelineTraceRaysIndirect );
10666  return seed;
10667  }
10668  };
10669 
10670  template <>
10671  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR>
10672  {
10673  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelineFeaturesKHR const & physicalDeviceRayTracingPipelineFeaturesKHR ) const
10675  {
10676  std::size_t seed = 0;
10677  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelineFeaturesKHR.sType );
10678  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelineFeaturesKHR.pNext );
10679  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelineFeaturesKHR.rayTracingPipeline );
10680  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelineFeaturesKHR.rayTracingPipelineShaderGroupHandleCaptureReplay );
10681  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelineFeaturesKHR.rayTracingPipelineShaderGroupHandleCaptureReplayMixed );
10682  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelineFeaturesKHR.rayTracingPipelineTraceRaysIndirect );
10683  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelineFeaturesKHR.rayTraversalPrimitiveCulling );
10684  return seed;
10685  }
10686  };
10687 
10688  template <>
10689  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR>
10690  {
10691  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPipelinePropertiesKHR const & physicalDeviceRayTracingPipelinePropertiesKHR ) const
10693  {
10694  std::size_t seed = 0;
10695  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelinePropertiesKHR.sType );
10696  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelinePropertiesKHR.pNext );
10697  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelinePropertiesKHR.shaderGroupHandleSize );
10698  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelinePropertiesKHR.maxRayRecursionDepth );
10699  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelinePropertiesKHR.maxShaderGroupStride );
10700  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelinePropertiesKHR.shaderGroupBaseAlignment );
10701  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelinePropertiesKHR.shaderGroupHandleCaptureReplaySize );
10702  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelinePropertiesKHR.maxRayDispatchInvocationCount );
10703  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelinePropertiesKHR.shaderGroupHandleAlignment );
10704  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPipelinePropertiesKHR.maxRayHitAttributeSize );
10705  return seed;
10706  }
10707  };
10708 
10709  template <>
10710  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPositionFetchFeaturesKHR>
10711  {
10712  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPositionFetchFeaturesKHR const & physicalDeviceRayTracingPositionFetchFeaturesKHR )
10713  const VULKAN_HPP_NOEXCEPT
10714  {
10715  std::size_t seed = 0;
10716  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPositionFetchFeaturesKHR.sType );
10717  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPositionFetchFeaturesKHR.pNext );
10718  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPositionFetchFeaturesKHR.rayTracingPositionFetch );
10719  return seed;
10720  }
10721  };
10722 
10723  template <>
10724  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV>
10725  {
10726  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRayTracingPropertiesNV const & physicalDeviceRayTracingPropertiesNV ) const VULKAN_HPP_NOEXCEPT
10727  {
10728  std::size_t seed = 0;
10729  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPropertiesNV.sType );
10730  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPropertiesNV.pNext );
10731  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPropertiesNV.shaderGroupHandleSize );
10732  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPropertiesNV.maxRecursionDepth );
10733  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPropertiesNV.maxShaderGroupStride );
10734  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPropertiesNV.shaderGroupBaseAlignment );
10735  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPropertiesNV.maxGeometryCount );
10736  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPropertiesNV.maxInstanceCount );
10737  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPropertiesNV.maxTriangleCount );
10738  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRayTracingPropertiesNV.maxDescriptorSetAccelerationStructures );
10739  return seed;
10740  }
10741  };
10742 
10743  template <>
10744  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRelaxedLineRasterizationFeaturesIMG>
10745  {
10746  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRelaxedLineRasterizationFeaturesIMG const & physicalDeviceRelaxedLineRasterizationFeaturesIMG )
10747  const VULKAN_HPP_NOEXCEPT
10748  {
10749  std::size_t seed = 0;
10750  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRelaxedLineRasterizationFeaturesIMG.sType );
10751  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRelaxedLineRasterizationFeaturesIMG.pNext );
10752  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRelaxedLineRasterizationFeaturesIMG.relaxedLineRasterization );
10753  return seed;
10754  }
10755  };
10756 
10757  template <>
10758  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRenderPassStripedFeaturesARM>
10759  {
10760  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRenderPassStripedFeaturesARM const & physicalDeviceRenderPassStripedFeaturesARM ) const
10762  {
10763  std::size_t seed = 0;
10764  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRenderPassStripedFeaturesARM.sType );
10765  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRenderPassStripedFeaturesARM.pNext );
10766  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRenderPassStripedFeaturesARM.renderPassStriped );
10767  return seed;
10768  }
10769  };
10770 
10771  template <>
10772  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRenderPassStripedPropertiesARM>
10773  {
10774  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRenderPassStripedPropertiesARM const & physicalDeviceRenderPassStripedPropertiesARM ) const
10776  {
10777  std::size_t seed = 0;
10778  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRenderPassStripedPropertiesARM.sType );
10779  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRenderPassStripedPropertiesARM.pNext );
10780  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRenderPassStripedPropertiesARM.renderPassStripeGranularity );
10781  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRenderPassStripedPropertiesARM.maxRenderPassStripes );
10782  return seed;
10783  }
10784  };
10785 
10786  template <>
10787  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV>
10788  {
10789  std::size_t
10790  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRepresentativeFragmentTestFeaturesNV const & physicalDeviceRepresentativeFragmentTestFeaturesNV ) const
10792  {
10793  std::size_t seed = 0;
10794  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRepresentativeFragmentTestFeaturesNV.sType );
10795  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRepresentativeFragmentTestFeaturesNV.pNext );
10796  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRepresentativeFragmentTestFeaturesNV.representativeFragmentTest );
10797  return seed;
10798  }
10799  };
10800 
10801  template <>
10802  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT>
10803  {
10804  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2FeaturesEXT const & physicalDeviceRobustness2FeaturesEXT ) const VULKAN_HPP_NOEXCEPT
10805  {
10806  std::size_t seed = 0;
10807  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRobustness2FeaturesEXT.sType );
10808  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRobustness2FeaturesEXT.pNext );
10809  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRobustness2FeaturesEXT.robustBufferAccess2 );
10810  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRobustness2FeaturesEXT.robustImageAccess2 );
10811  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRobustness2FeaturesEXT.nullDescriptor );
10812  return seed;
10813  }
10814  };
10815 
10816  template <>
10817  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT>
10818  {
10819  std::size_t
10820  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceRobustness2PropertiesEXT const & physicalDeviceRobustness2PropertiesEXT ) const VULKAN_HPP_NOEXCEPT
10821  {
10822  std::size_t seed = 0;
10823  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRobustness2PropertiesEXT.sType );
10824  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRobustness2PropertiesEXT.pNext );
10825  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRobustness2PropertiesEXT.robustStorageBufferAccessSizeAlignment );
10826  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceRobustness2PropertiesEXT.robustUniformBufferAccessSizeAlignment );
10827  return seed;
10828  }
10829  };
10830 
10831  template <>
10832  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT>
10833  {
10834  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSampleLocationsPropertiesEXT const & physicalDeviceSampleLocationsPropertiesEXT ) const
10836  {
10837  std::size_t seed = 0;
10838  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSampleLocationsPropertiesEXT.sType );
10839  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSampleLocationsPropertiesEXT.pNext );
10840  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSampleLocationsPropertiesEXT.sampleLocationSampleCounts );
10841  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSampleLocationsPropertiesEXT.maxSampleLocationGridSize );
10842  for ( size_t i = 0; i < 2; ++i )
10843  {
10844  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSampleLocationsPropertiesEXT.sampleLocationCoordinateRange[i] );
10845  }
10846  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSampleLocationsPropertiesEXT.sampleLocationSubPixelBits );
10847  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSampleLocationsPropertiesEXT.variableSampleLocations );
10848  return seed;
10849  }
10850  };
10851 
10852  template <>
10853  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties>
10854  {
10855  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerFilterMinmaxProperties const & physicalDeviceSamplerFilterMinmaxProperties ) const
10857  {
10858  std::size_t seed = 0;
10859  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSamplerFilterMinmaxProperties.sType );
10860  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSamplerFilterMinmaxProperties.pNext );
10861  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSamplerFilterMinmaxProperties.filterMinmaxSingleComponentFormats );
10862  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSamplerFilterMinmaxProperties.filterMinmaxImageComponentMapping );
10863  return seed;
10864  }
10865  };
10866 
10867  template <>
10868  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures>
10869  {
10870  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSamplerYcbcrConversionFeatures const & physicalDeviceSamplerYcbcrConversionFeatures ) const
10872  {
10873  std::size_t seed = 0;
10874  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSamplerYcbcrConversionFeatures.sType );
10875  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSamplerYcbcrConversionFeatures.pNext );
10876  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSamplerYcbcrConversionFeatures.samplerYcbcrConversion );
10877  return seed;
10878  }
10879  };
10880 
10881  template <>
10882  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures>
10883  {
10884  std::size_t
10885  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceScalarBlockLayoutFeatures const & physicalDeviceScalarBlockLayoutFeatures ) const VULKAN_HPP_NOEXCEPT
10886  {
10887  std::size_t seed = 0;
10888  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceScalarBlockLayoutFeatures.sType );
10889  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceScalarBlockLayoutFeatures.pNext );
10890  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceScalarBlockLayoutFeatures.scalarBlockLayout );
10891  return seed;
10892  }
10893  };
10894 
10895  template <>
10896  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsFeaturesARM>
10897  {
10898  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsFeaturesARM const & physicalDeviceSchedulingControlsFeaturesARM ) const
10900  {
10901  std::size_t seed = 0;
10902  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSchedulingControlsFeaturesARM.sType );
10903  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSchedulingControlsFeaturesARM.pNext );
10904  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSchedulingControlsFeaturesARM.schedulingControls );
10905  return seed;
10906  }
10907  };
10908 
10909  template <>
10910  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsPropertiesARM>
10911  {
10912  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSchedulingControlsPropertiesARM const & physicalDeviceSchedulingControlsPropertiesARM ) const
10914  {
10915  std::size_t seed = 0;
10916  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSchedulingControlsPropertiesARM.sType );
10917  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSchedulingControlsPropertiesARM.pNext );
10918  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSchedulingControlsPropertiesARM.schedulingControlsFlags );
10919  return seed;
10920  }
10921  };
10922 
10923  template <>
10924  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures>
10925  {
10926  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSeparateDepthStencilLayoutsFeatures const & physicalDeviceSeparateDepthStencilLayoutsFeatures )
10927  const VULKAN_HPP_NOEXCEPT
10928  {
10929  std::size_t seed = 0;
10930  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSeparateDepthStencilLayoutsFeatures.sType );
10931  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSeparateDepthStencilLayoutsFeatures.pNext );
10932  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSeparateDepthStencilLayoutsFeatures.separateDepthStencilLayouts );
10933  return seed;
10934  }
10935  };
10936 
10937  template <>
10938  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT>
10939  {
10940  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloat2FeaturesEXT const & physicalDeviceShaderAtomicFloat2FeaturesEXT ) const
10942  {
10943  std::size_t seed = 0;
10944  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.sType );
10945  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.pNext );
10946  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.shaderBufferFloat16Atomics );
10947  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.shaderBufferFloat16AtomicAdd );
10948  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.shaderBufferFloat16AtomicMinMax );
10949  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.shaderBufferFloat32AtomicMinMax );
10950  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.shaderBufferFloat64AtomicMinMax );
10951  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.shaderSharedFloat16Atomics );
10952  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.shaderSharedFloat16AtomicAdd );
10953  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.shaderSharedFloat16AtomicMinMax );
10954  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.shaderSharedFloat32AtomicMinMax );
10955  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.shaderSharedFloat64AtomicMinMax );
10956  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.shaderImageFloat32AtomicMinMax );
10957  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloat2FeaturesEXT.sparseImageFloat32AtomicMinMax );
10958  return seed;
10959  }
10960  };
10961 
10962  template <>
10963  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT>
10964  {
10965  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicFloatFeaturesEXT const & physicalDeviceShaderAtomicFloatFeaturesEXT ) const
10967  {
10968  std::size_t seed = 0;
10969  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.sType );
10970  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.pNext );
10971  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.shaderBufferFloat32Atomics );
10972  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.shaderBufferFloat32AtomicAdd );
10973  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.shaderBufferFloat64Atomics );
10974  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.shaderBufferFloat64AtomicAdd );
10975  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.shaderSharedFloat32Atomics );
10976  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.shaderSharedFloat32AtomicAdd );
10977  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.shaderSharedFloat64Atomics );
10978  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.shaderSharedFloat64AtomicAdd );
10979  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.shaderImageFloat32Atomics );
10980  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.shaderImageFloat32AtomicAdd );
10981  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.sparseImageFloat32Atomics );
10982  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicFloatFeaturesEXT.sparseImageFloat32AtomicAdd );
10983  return seed;
10984  }
10985  };
10986 
10987  template <>
10988  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features>
10989  {
10990  std::size_t
10991  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderAtomicInt64Features const & physicalDeviceShaderAtomicInt64Features ) const VULKAN_HPP_NOEXCEPT
10992  {
10993  std::size_t seed = 0;
10994  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicInt64Features.sType );
10995  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicInt64Features.pNext );
10996  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicInt64Features.shaderBufferInt64Atomics );
10997  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderAtomicInt64Features.shaderSharedInt64Atomics );
10998  return seed;
10999  }
11000  };
11001 
11002  template <>
11003  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR>
11004  {
11005  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderClockFeaturesKHR const & physicalDeviceShaderClockFeaturesKHR ) const VULKAN_HPP_NOEXCEPT
11006  {
11007  std::size_t seed = 0;
11008  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderClockFeaturesKHR.sType );
11009  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderClockFeaturesKHR.pNext );
11010  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderClockFeaturesKHR.shaderSubgroupClock );
11011  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderClockFeaturesKHR.shaderDeviceClock );
11012  return seed;
11013  }
11014  };
11015 
11016  template <>
11017  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsFeaturesARM>
11018  {
11019  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsFeaturesARM const & physicalDeviceShaderCoreBuiltinsFeaturesARM ) const
11021  {
11022  std::size_t seed = 0;
11023  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCoreBuiltinsFeaturesARM.sType );
11024  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCoreBuiltinsFeaturesARM.pNext );
11025  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCoreBuiltinsFeaturesARM.shaderCoreBuiltins );
11026  return seed;
11027  }
11028  };
11029 
11030  template <>
11031  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsPropertiesARM>
11032  {
11033  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreBuiltinsPropertiesARM const & physicalDeviceShaderCoreBuiltinsPropertiesARM ) const
11035  {
11036  std::size_t seed = 0;
11037  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCoreBuiltinsPropertiesARM.sType );
11038  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCoreBuiltinsPropertiesARM.pNext );
11039  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCoreBuiltinsPropertiesARM.shaderCoreMask );
11040  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCoreBuiltinsPropertiesARM.shaderCoreCount );
11041  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCoreBuiltinsPropertiesARM.shaderWarpsPerCore );
11042  return seed;
11043  }
11044  };
11045 
11046  template <>
11047  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD>
11048  {
11049  std::size_t
11050  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCoreProperties2AMD const & physicalDeviceShaderCoreProperties2AMD ) const VULKAN_HPP_NOEXCEPT
11051  {
11052  std::size_t seed = 0;
11053  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCoreProperties2AMD.sType );
11054  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCoreProperties2AMD.pNext );
11055  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCoreProperties2AMD.shaderCoreFeatures );
11056  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCoreProperties2AMD.activeComputeUnitCount );
11057  return seed;
11058  }
11059  };
11060 
11061  template <>
11062  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD>
11063  {
11064  std::size_t
11065  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesAMD const & physicalDeviceShaderCorePropertiesAMD ) const VULKAN_HPP_NOEXCEPT
11066  {
11067  std::size_t seed = 0;
11068  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.sType );
11069  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.pNext );
11070  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.shaderEngineCount );
11071  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.shaderArraysPerEngineCount );
11072  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.computeUnitsPerShaderArray );
11073  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.simdPerComputeUnit );
11074  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.wavefrontsPerSimd );
11075  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.wavefrontSize );
11076  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.sgprsPerSimd );
11077  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.minSgprAllocation );
11078  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.maxSgprAllocation );
11079  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.sgprAllocationGranularity );
11080  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.vgprsPerSimd );
11081  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.minVgprAllocation );
11082  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.maxVgprAllocation );
11083  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesAMD.vgprAllocationGranularity );
11084  return seed;
11085  }
11086  };
11087 
11088  template <>
11089  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesARM>
11090  {
11091  std::size_t
11092  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderCorePropertiesARM const & physicalDeviceShaderCorePropertiesARM ) const VULKAN_HPP_NOEXCEPT
11093  {
11094  std::size_t seed = 0;
11095  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesARM.sType );
11096  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesARM.pNext );
11097  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesARM.pixelRate );
11098  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesARM.texelRate );
11099  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderCorePropertiesARM.fmaRate );
11100  return seed;
11101  }
11102  };
11103 
11104  template <>
11105  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeatures>
11106  {
11107  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDemoteToHelperInvocationFeatures const &
11108  physicalDeviceShaderDemoteToHelperInvocationFeatures ) const VULKAN_HPP_NOEXCEPT
11109  {
11110  std::size_t seed = 0;
11111  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderDemoteToHelperInvocationFeatures.sType );
11112  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderDemoteToHelperInvocationFeatures.pNext );
11113  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderDemoteToHelperInvocationFeatures.shaderDemoteToHelperInvocation );
11114  return seed;
11115  }
11116  };
11117 
11118  template <>
11119  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures>
11120  {
11121  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderDrawParametersFeatures const & physicalDeviceShaderDrawParametersFeatures ) const
11123  {
11124  std::size_t seed = 0;
11125  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderDrawParametersFeatures.sType );
11126  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderDrawParametersFeatures.pNext );
11127  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderDrawParametersFeatures.shaderDrawParameters );
11128  return seed;
11129  }
11130  };
11131 
11132  template <>
11133  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD>
11134  {
11135  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD const &
11136  physicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD ) const VULKAN_HPP_NOEXCEPT
11137  {
11138  std::size_t seed = 0;
11139  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD.sType );
11140  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD.pNext );
11141  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEarlyAndLateFragmentTestsFeaturesAMD.shaderEarlyAndLateFragmentTests );
11142  return seed;
11143  }
11144  };
11145 
11146 # if defined( VK_ENABLE_BETA_EXTENSIONS )
11147  template <>
11148  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueueFeaturesAMDX>
11149  {
11150  std::size_t
11151  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueueFeaturesAMDX const & physicalDeviceShaderEnqueueFeaturesAMDX ) const VULKAN_HPP_NOEXCEPT
11152  {
11153  std::size_t seed = 0;
11154  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEnqueueFeaturesAMDX.sType );
11155  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEnqueueFeaturesAMDX.pNext );
11156  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEnqueueFeaturesAMDX.shaderEnqueue );
11157  return seed;
11158  }
11159  };
11160 # endif /*VK_ENABLE_BETA_EXTENSIONS*/
11161 
11162 # if defined( VK_ENABLE_BETA_EXTENSIONS )
11163  template <>
11164  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX>
11165  {
11166  std::size_t
11167  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderEnqueuePropertiesAMDX const & physicalDeviceShaderEnqueuePropertiesAMDX ) const VULKAN_HPP_NOEXCEPT
11168  {
11169  std::size_t seed = 0;
11170  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEnqueuePropertiesAMDX.sType );
11171  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEnqueuePropertiesAMDX.pNext );
11172  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEnqueuePropertiesAMDX.maxExecutionGraphDepth );
11173  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEnqueuePropertiesAMDX.maxExecutionGraphShaderOutputNodes );
11174  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEnqueuePropertiesAMDX.maxExecutionGraphShaderPayloadSize );
11175  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEnqueuePropertiesAMDX.maxExecutionGraphShaderPayloadCount );
11176  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderEnqueuePropertiesAMDX.executionGraphDispatchAddressAlignment );
11177  return seed;
11178  }
11179  };
11180 # endif /*VK_ENABLE_BETA_EXTENSIONS*/
11181 
11182  template <>
11183  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features>
11184  {
11185  std::size_t
11186  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderFloat16Int8Features const & physicalDeviceShaderFloat16Int8Features ) const VULKAN_HPP_NOEXCEPT
11187  {
11188  std::size_t seed = 0;
11189  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderFloat16Int8Features.sType );
11190  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderFloat16Int8Features.pNext );
11191  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderFloat16Int8Features.shaderFloat16 );
11192  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderFloat16Int8Features.shaderInt8 );
11193  return seed;
11194  }
11195  };
11196 
11197  template <>
11198  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT>
11199  {
11200  std::size_t operator()(
11201  VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageAtomicInt64FeaturesEXT const & physicalDeviceShaderImageAtomicInt64FeaturesEXT ) const VULKAN_HPP_NOEXCEPT
11202  {
11203  std::size_t seed = 0;
11204  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderImageAtomicInt64FeaturesEXT.sType );
11205  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderImageAtomicInt64FeaturesEXT.pNext );
11206  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderImageAtomicInt64FeaturesEXT.shaderImageInt64Atomics );
11207  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderImageAtomicInt64FeaturesEXT.sparseImageInt64Atomics );
11208  return seed;
11209  }
11210  };
11211 
11212  template <>
11213  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV>
11214  {
11215  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderImageFootprintFeaturesNV const & physicalDeviceShaderImageFootprintFeaturesNV ) const
11217  {
11218  std::size_t seed = 0;
11219  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderImageFootprintFeaturesNV.sType );
11220  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderImageFootprintFeaturesNV.pNext );
11221  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderImageFootprintFeaturesNV.imageFootprint );
11222  return seed;
11223  }
11224  };
11225 
11226  template <>
11227  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductFeatures>
11228  {
11229  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductFeatures const & physicalDeviceShaderIntegerDotProductFeatures ) const
11231  {
11232  std::size_t seed = 0;
11233  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductFeatures.sType );
11234  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductFeatures.pNext );
11235  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductFeatures.shaderIntegerDotProduct );
11236  return seed;
11237  }
11238  };
11239 
11240  template <>
11241  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductProperties>
11242  {
11243  std::size_t operator()(
11244  VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerDotProductProperties const & physicalDeviceShaderIntegerDotProductProperties ) const VULKAN_HPP_NOEXCEPT
11245  {
11246  std::size_t seed = 0;
11247  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.sType );
11248  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.pNext );
11249  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct8BitUnsignedAccelerated );
11250  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct8BitSignedAccelerated );
11251  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct8BitMixedSignednessAccelerated );
11252  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct4x8BitPackedUnsignedAccelerated );
11253  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct4x8BitPackedSignedAccelerated );
11254  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct4x8BitPackedMixedSignednessAccelerated );
11255  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct16BitUnsignedAccelerated );
11256  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct16BitSignedAccelerated );
11257  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct16BitMixedSignednessAccelerated );
11258  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct32BitUnsignedAccelerated );
11259  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct32BitSignedAccelerated );
11260  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct32BitMixedSignednessAccelerated );
11261  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct64BitUnsignedAccelerated );
11262  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct64BitSignedAccelerated );
11263  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProduct64BitMixedSignednessAccelerated );
11264  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated );
11265  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating8BitSignedAccelerated );
11266  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated );
11267  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated );
11268  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated );
11269  VULKAN_HPP_HASH_COMBINE( seed,
11270  physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated );
11271  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated );
11272  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating16BitSignedAccelerated );
11273  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated );
11274  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated );
11275  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating32BitSignedAccelerated );
11276  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated );
11277  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated );
11278  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating64BitSignedAccelerated );
11279  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerDotProductProperties.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated );
11280  return seed;
11281  }
11282  };
11283 
11284  template <>
11285  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL>
11286  {
11287  std::size_t
11288  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderIntegerFunctions2FeaturesINTEL const & physicalDeviceShaderIntegerFunctions2FeaturesINTEL ) const
11290  {
11291  std::size_t seed = 0;
11292  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerFunctions2FeaturesINTEL.sType );
11293  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerFunctions2FeaturesINTEL.pNext );
11294  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderIntegerFunctions2FeaturesINTEL.shaderIntegerFunctions2 );
11295  return seed;
11296  }
11297  };
11298 
11299  template <>
11300  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierFeaturesEXT>
11301  {
11302  std::size_t operator()(
11303  VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierFeaturesEXT const & physicalDeviceShaderModuleIdentifierFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
11304  {
11305  std::size_t seed = 0;
11306  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderModuleIdentifierFeaturesEXT.sType );
11307  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderModuleIdentifierFeaturesEXT.pNext );
11308  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderModuleIdentifierFeaturesEXT.shaderModuleIdentifier );
11309  return seed;
11310  }
11311  };
11312 
11313  template <>
11314  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierPropertiesEXT>
11315  {
11316  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderModuleIdentifierPropertiesEXT const & physicalDeviceShaderModuleIdentifierPropertiesEXT )
11317  const VULKAN_HPP_NOEXCEPT
11318  {
11319  std::size_t seed = 0;
11320  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderModuleIdentifierPropertiesEXT.sType );
11321  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderModuleIdentifierPropertiesEXT.pNext );
11322  for ( size_t i = 0; i < VK_UUID_SIZE; ++i )
11323  {
11324  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderModuleIdentifierPropertiesEXT.shaderModuleIdentifierAlgorithmUUID[i] );
11325  }
11326  return seed;
11327  }
11328  };
11329 
11330  template <>
11331  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectFeaturesEXT>
11332  {
11333  std::size_t
11334  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectFeaturesEXT const & physicalDeviceShaderObjectFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
11335  {
11336  std::size_t seed = 0;
11337  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderObjectFeaturesEXT.sType );
11338  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderObjectFeaturesEXT.pNext );
11339  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderObjectFeaturesEXT.shaderObject );
11340  return seed;
11341  }
11342  };
11343 
11344  template <>
11345  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectPropertiesEXT>
11346  {
11347  std::size_t
11348  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderObjectPropertiesEXT const & physicalDeviceShaderObjectPropertiesEXT ) const VULKAN_HPP_NOEXCEPT
11349  {
11350  std::size_t seed = 0;
11351  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderObjectPropertiesEXT.sType );
11352  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderObjectPropertiesEXT.pNext );
11353  for ( size_t i = 0; i < VK_UUID_SIZE; ++i )
11354  {
11355  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderObjectPropertiesEXT.shaderBinaryUUID[i] );
11356  }
11357  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderObjectPropertiesEXT.shaderBinaryVersion );
11358  return seed;
11359  }
11360  };
11361 
11362  template <>
11363  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV>
11364  {
11365  std::size_t
11366  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsFeaturesNV const & physicalDeviceShaderSMBuiltinsFeaturesNV ) const VULKAN_HPP_NOEXCEPT
11367  {
11368  std::size_t seed = 0;
11369  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSMBuiltinsFeaturesNV.sType );
11370  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSMBuiltinsFeaturesNV.pNext );
11371  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSMBuiltinsFeaturesNV.shaderSMBuiltins );
11372  return seed;
11373  }
11374  };
11375 
11376  template <>
11377  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV>
11378  {
11379  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSMBuiltinsPropertiesNV const & physicalDeviceShaderSMBuiltinsPropertiesNV ) const
11381  {
11382  std::size_t seed = 0;
11383  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSMBuiltinsPropertiesNV.sType );
11384  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSMBuiltinsPropertiesNV.pNext );
11385  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSMBuiltinsPropertiesNV.shaderSMCount );
11386  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSMBuiltinsPropertiesNV.shaderWarpsPerSM );
11387  return seed;
11388  }
11389  };
11390 
11391  template <>
11392  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures>
11393  {
11394  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupExtendedTypesFeatures const & physicalDeviceShaderSubgroupExtendedTypesFeatures )
11395  const VULKAN_HPP_NOEXCEPT
11396  {
11397  std::size_t seed = 0;
11398  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSubgroupExtendedTypesFeatures.sType );
11399  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSubgroupExtendedTypesFeatures.pNext );
11400  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSubgroupExtendedTypesFeatures.shaderSubgroupExtendedTypes );
11401  return seed;
11402  }
11403  };
11404 
11405  template <>
11406  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR>
11407  {
11408  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR const &
11409  physicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR ) const VULKAN_HPP_NOEXCEPT
11410  {
11411  std::size_t seed = 0;
11412  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.sType );
11413  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.pNext );
11414  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderSubgroupUniformControlFlowFeaturesKHR.shaderSubgroupUniformControlFlow );
11415  return seed;
11416  }
11417  };
11418 
11419  template <>
11420  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeatures>
11421  {
11422  std::size_t operator()(
11423  VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTerminateInvocationFeatures const & physicalDeviceShaderTerminateInvocationFeatures ) const VULKAN_HPP_NOEXCEPT
11424  {
11425  std::size_t seed = 0;
11426  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTerminateInvocationFeatures.sType );
11427  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTerminateInvocationFeatures.pNext );
11428  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTerminateInvocationFeatures.shaderTerminateInvocation );
11429  return seed;
11430  }
11431  };
11432 
11433  template <>
11434  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImageFeaturesEXT>
11435  {
11436  std::size_t
11437  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImageFeaturesEXT const & physicalDeviceShaderTileImageFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
11438  {
11439  std::size_t seed = 0;
11440  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTileImageFeaturesEXT.sType );
11441  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTileImageFeaturesEXT.pNext );
11442  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTileImageFeaturesEXT.shaderTileImageColorReadAccess );
11443  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTileImageFeaturesEXT.shaderTileImageDepthReadAccess );
11444  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTileImageFeaturesEXT.shaderTileImageStencilReadAccess );
11445  return seed;
11446  }
11447  };
11448 
11449  template <>
11450  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImagePropertiesEXT>
11451  {
11452  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShaderTileImagePropertiesEXT const & physicalDeviceShaderTileImagePropertiesEXT ) const
11454  {
11455  std::size_t seed = 0;
11456  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTileImagePropertiesEXT.sType );
11457  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTileImagePropertiesEXT.pNext );
11458  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTileImagePropertiesEXT.shaderTileImageCoherentReadAccelerated );
11459  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTileImagePropertiesEXT.shaderTileImageReadSampleFromPixelRateInvocation );
11460  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShaderTileImagePropertiesEXT.shaderTileImageReadFromHelperInvocation );
11461  return seed;
11462  }
11463  };
11464 
11465  template <>
11466  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV>
11467  {
11468  std::size_t
11469  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImageFeaturesNV const & physicalDeviceShadingRateImageFeaturesNV ) const VULKAN_HPP_NOEXCEPT
11470  {
11471  std::size_t seed = 0;
11472  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShadingRateImageFeaturesNV.sType );
11473  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShadingRateImageFeaturesNV.pNext );
11474  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShadingRateImageFeaturesNV.shadingRateImage );
11475  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShadingRateImageFeaturesNV.shadingRateCoarseSampleOrder );
11476  return seed;
11477  }
11478  };
11479 
11480  template <>
11481  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV>
11482  {
11483  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceShadingRateImagePropertiesNV const & physicalDeviceShadingRateImagePropertiesNV ) const
11485  {
11486  std::size_t seed = 0;
11487  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShadingRateImagePropertiesNV.sType );
11488  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShadingRateImagePropertiesNV.pNext );
11489  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShadingRateImagePropertiesNV.shadingRateTexelSize );
11490  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShadingRateImagePropertiesNV.shadingRatePaletteSize );
11491  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceShadingRateImagePropertiesNV.shadingRateMaxCoarseSamples );
11492  return seed;
11493  }
11494  };
11495 
11496  template <>
11497  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2>
11498  {
11499  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 const & physicalDeviceSparseImageFormatInfo2 ) const VULKAN_HPP_NOEXCEPT
11500  {
11501  std::size_t seed = 0;
11502  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseImageFormatInfo2.sType );
11503  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseImageFormatInfo2.pNext );
11504  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseImageFormatInfo2.format );
11505  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseImageFormatInfo2.type );
11506  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseImageFormatInfo2.samples );
11507  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseImageFormatInfo2.usage );
11508  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSparseImageFormatInfo2.tiling );
11509  return seed;
11510  }
11511  };
11512 
11513  template <>
11514  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties>
11515  {
11516  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupProperties const & physicalDeviceSubgroupProperties ) const VULKAN_HPP_NOEXCEPT
11517  {
11518  std::size_t seed = 0;
11519  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupProperties.sType );
11520  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupProperties.pNext );
11521  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupProperties.subgroupSize );
11522  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupProperties.supportedStages );
11523  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupProperties.supportedOperations );
11524  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupProperties.quadOperationsInAllStages );
11525  return seed;
11526  }
11527  };
11528 
11529  template <>
11530  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeatures>
11531  {
11532  std::size_t
11533  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlFeatures const & physicalDeviceSubgroupSizeControlFeatures ) const VULKAN_HPP_NOEXCEPT
11534  {
11535  std::size_t seed = 0;
11536  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupSizeControlFeatures.sType );
11537  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupSizeControlFeatures.pNext );
11538  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupSizeControlFeatures.subgroupSizeControl );
11539  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupSizeControlFeatures.computeFullSubgroups );
11540  return seed;
11541  }
11542  };
11543 
11544  template <>
11545  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlProperties>
11546  {
11547  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSubgroupSizeControlProperties const & physicalDeviceSubgroupSizeControlProperties ) const
11549  {
11550  std::size_t seed = 0;
11551  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupSizeControlProperties.sType );
11552  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupSizeControlProperties.pNext );
11553  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupSizeControlProperties.minSubgroupSize );
11554  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupSizeControlProperties.maxSubgroupSize );
11555  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupSizeControlProperties.maxComputeWorkgroupSubgroups );
11556  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubgroupSizeControlProperties.requiredSubgroupSizeStages );
11557  return seed;
11558  }
11559  };
11560 
11561  template <>
11562  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassMergeFeedbackFeaturesEXT>
11563  {
11564  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassMergeFeedbackFeaturesEXT const & physicalDeviceSubpassMergeFeedbackFeaturesEXT ) const
11566  {
11567  std::size_t seed = 0;
11568  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubpassMergeFeedbackFeaturesEXT.sType );
11569  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubpassMergeFeedbackFeaturesEXT.pNext );
11570  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubpassMergeFeedbackFeaturesEXT.subpassMergeFeedback );
11571  return seed;
11572  }
11573  };
11574 
11575  template <>
11576  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingFeaturesHUAWEI>
11577  {
11578  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingFeaturesHUAWEI const & physicalDeviceSubpassShadingFeaturesHUAWEI ) const
11580  {
11581  std::size_t seed = 0;
11582  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubpassShadingFeaturesHUAWEI.sType );
11583  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubpassShadingFeaturesHUAWEI.pNext );
11584  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubpassShadingFeaturesHUAWEI.subpassShading );
11585  return seed;
11586  }
11587  };
11588 
11589  template <>
11590  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingPropertiesHUAWEI>
11591  {
11592  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSubpassShadingPropertiesHUAWEI const & physicalDeviceSubpassShadingPropertiesHUAWEI ) const
11594  {
11595  std::size_t seed = 0;
11596  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubpassShadingPropertiesHUAWEI.sType );
11597  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubpassShadingPropertiesHUAWEI.pNext );
11598  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSubpassShadingPropertiesHUAWEI.maxSubpassShadingWorkgroupSizeAspectRatio );
11599  return seed;
11600  }
11601  };
11602 
11603  template <>
11604  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR>
11605  {
11606  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR const & physicalDeviceSurfaceInfo2KHR ) const VULKAN_HPP_NOEXCEPT
11607  {
11608  std::size_t seed = 0;
11609  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSurfaceInfo2KHR.sType );
11610  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSurfaceInfo2KHR.pNext );
11611  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSurfaceInfo2KHR.surface );
11612  return seed;
11613  }
11614  };
11615 
11616  template <>
11617  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSwapchainMaintenance1FeaturesEXT>
11618  {
11619  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSwapchainMaintenance1FeaturesEXT const & physicalDeviceSwapchainMaintenance1FeaturesEXT ) const
11621  {
11622  std::size_t seed = 0;
11623  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSwapchainMaintenance1FeaturesEXT.sType );
11624  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSwapchainMaintenance1FeaturesEXT.pNext );
11625  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSwapchainMaintenance1FeaturesEXT.swapchainMaintenance1 );
11626  return seed;
11627  }
11628  };
11629 
11630  template <>
11631  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2Features>
11632  {
11633  std::size_t
11634  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceSynchronization2Features const & physicalDeviceSynchronization2Features ) const VULKAN_HPP_NOEXCEPT
11635  {
11636  std::size_t seed = 0;
11637  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSynchronization2Features.sType );
11638  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSynchronization2Features.pNext );
11639  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceSynchronization2Features.synchronization2 );
11640  return seed;
11641  }
11642  };
11643 
11644  template <>
11645  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT>
11646  {
11647  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentFeaturesEXT const & physicalDeviceTexelBufferAlignmentFeaturesEXT ) const
11649  {
11650  std::size_t seed = 0;
11651  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTexelBufferAlignmentFeaturesEXT.sType );
11652  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTexelBufferAlignmentFeaturesEXT.pNext );
11653  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTexelBufferAlignmentFeaturesEXT.texelBufferAlignment );
11654  return seed;
11655  }
11656  };
11657 
11658  template <>
11659  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentProperties>
11660  {
11661  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceTexelBufferAlignmentProperties const & physicalDeviceTexelBufferAlignmentProperties ) const
11663  {
11664  std::size_t seed = 0;
11665  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTexelBufferAlignmentProperties.sType );
11666  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTexelBufferAlignmentProperties.pNext );
11667  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTexelBufferAlignmentProperties.storageTexelBufferOffsetAlignmentBytes );
11668  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTexelBufferAlignmentProperties.storageTexelBufferOffsetSingleTexelAlignment );
11669  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTexelBufferAlignmentProperties.uniformTexelBufferOffsetAlignmentBytes );
11670  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTexelBufferAlignmentProperties.uniformTexelBufferOffsetSingleTexelAlignment );
11671  return seed;
11672  }
11673  };
11674 
11675  template <>
11676  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeatures>
11677  {
11678  std::size_t operator()(
11679  VULKAN_HPP_NAMESPACE::PhysicalDeviceTextureCompressionASTCHDRFeatures const & physicalDeviceTextureCompressionASTCHDRFeatures ) const VULKAN_HPP_NOEXCEPT
11680  {
11681  std::size_t seed = 0;
11682  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTextureCompressionASTCHDRFeatures.sType );
11683  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTextureCompressionASTCHDRFeatures.pNext );
11684  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTextureCompressionASTCHDRFeatures.textureCompressionASTC_HDR );
11685  return seed;
11686  }
11687  };
11688 
11689  template <>
11690  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceTilePropertiesFeaturesQCOM>
11691  {
11692  std::size_t
11693  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceTilePropertiesFeaturesQCOM const & physicalDeviceTilePropertiesFeaturesQCOM ) const VULKAN_HPP_NOEXCEPT
11694  {
11695  std::size_t seed = 0;
11696  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTilePropertiesFeaturesQCOM.sType );
11697  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTilePropertiesFeaturesQCOM.pNext );
11698  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTilePropertiesFeaturesQCOM.tileProperties );
11699  return seed;
11700  }
11701  };
11702 
11703  template <>
11704  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures>
11705  {
11706  std::size_t
11707  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreFeatures const & physicalDeviceTimelineSemaphoreFeatures ) const VULKAN_HPP_NOEXCEPT
11708  {
11709  std::size_t seed = 0;
11710  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTimelineSemaphoreFeatures.sType );
11711  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTimelineSemaphoreFeatures.pNext );
11712  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTimelineSemaphoreFeatures.timelineSemaphore );
11713  return seed;
11714  }
11715  };
11716 
11717  template <>
11718  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties>
11719  {
11720  std::size_t
11721  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceTimelineSemaphoreProperties const & physicalDeviceTimelineSemaphoreProperties ) const VULKAN_HPP_NOEXCEPT
11722  {
11723  std::size_t seed = 0;
11724  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTimelineSemaphoreProperties.sType );
11725  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTimelineSemaphoreProperties.pNext );
11726  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTimelineSemaphoreProperties.maxTimelineSemaphoreValueDifference );
11727  return seed;
11728  }
11729  };
11730 
11731  template <>
11732  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties>
11733  {
11734  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties const & physicalDeviceToolProperties ) const VULKAN_HPP_NOEXCEPT
11735  {
11736  std::size_t seed = 0;
11737  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceToolProperties.sType );
11738  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceToolProperties.pNext );
11739  for ( size_t i = 0; i < VK_MAX_EXTENSION_NAME_SIZE; ++i )
11740  {
11741  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceToolProperties.name[i] );
11742  }
11743  for ( size_t i = 0; i < VK_MAX_EXTENSION_NAME_SIZE; ++i )
11744  {
11745  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceToolProperties.version[i] );
11746  }
11747  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceToolProperties.purposes );
11748  for ( size_t i = 0; i < VK_MAX_DESCRIPTION_SIZE; ++i )
11749  {
11750  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceToolProperties.description[i] );
11751  }
11752  for ( size_t i = 0; i < VK_MAX_EXTENSION_NAME_SIZE; ++i )
11753  {
11754  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceToolProperties.layer[i] );
11755  }
11756  return seed;
11757  }
11758  };
11759 
11760  template <>
11761  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT>
11762  {
11763  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackFeaturesEXT const & physicalDeviceTransformFeedbackFeaturesEXT ) const
11765  {
11766  std::size_t seed = 0;
11767  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackFeaturesEXT.sType );
11768  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackFeaturesEXT.pNext );
11769  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackFeaturesEXT.transformFeedback );
11770  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackFeaturesEXT.geometryStreams );
11771  return seed;
11772  }
11773  };
11774 
11775  template <>
11776  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT>
11777  {
11778  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceTransformFeedbackPropertiesEXT const & physicalDeviceTransformFeedbackPropertiesEXT ) const
11780  {
11781  std::size_t seed = 0;
11782  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.sType );
11783  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.pNext );
11784  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.maxTransformFeedbackStreams );
11785  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.maxTransformFeedbackBuffers );
11786  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.maxTransformFeedbackBufferSize );
11787  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.maxTransformFeedbackStreamDataSize );
11788  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.maxTransformFeedbackBufferDataSize );
11789  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.maxTransformFeedbackBufferDataStride );
11790  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.transformFeedbackQueries );
11791  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.transformFeedbackStreamsLinesTriangles );
11792  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.transformFeedbackRasterizationStreamSelect );
11793  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceTransformFeedbackPropertiesEXT.transformFeedbackDraw );
11794  return seed;
11795  }
11796  };
11797 
11798  template <>
11799  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures>
11800  {
11801  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceUniformBufferStandardLayoutFeatures const & physicalDeviceUniformBufferStandardLayoutFeatures )
11802  const VULKAN_HPP_NOEXCEPT
11803  {
11804  std::size_t seed = 0;
11805  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceUniformBufferStandardLayoutFeatures.sType );
11806  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceUniformBufferStandardLayoutFeatures.pNext );
11807  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceUniformBufferStandardLayoutFeatures.uniformBufferStandardLayout );
11808  return seed;
11809  }
11810  };
11811 
11812  template <>
11813  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures>
11814  {
11815  std::size_t
11816  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVariablePointersFeatures const & physicalDeviceVariablePointersFeatures ) const VULKAN_HPP_NOEXCEPT
11817  {
11818  std::size_t seed = 0;
11819  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVariablePointersFeatures.sType );
11820  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVariablePointersFeatures.pNext );
11821  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVariablePointersFeatures.variablePointersStorageBuffer );
11822  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVariablePointersFeatures.variablePointers );
11823  return seed;
11824  }
11825  };
11826 
11827  template <>
11828  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesKHR>
11829  {
11830  std::size_t operator()(
11831  VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorFeaturesKHR const & physicalDeviceVertexAttributeDivisorFeaturesKHR ) const VULKAN_HPP_NOEXCEPT
11832  {
11833  std::size_t seed = 0;
11834  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorFeaturesKHR.sType );
11835  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorFeaturesKHR.pNext );
11836  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorFeaturesKHR.vertexAttributeInstanceRateDivisor );
11837  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorFeaturesKHR.vertexAttributeInstanceRateZeroDivisor );
11838  return seed;
11839  }
11840  };
11841 
11842  template <>
11843  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT>
11844  {
11845  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesEXT const & physicalDeviceVertexAttributeDivisorPropertiesEXT )
11846  const VULKAN_HPP_NOEXCEPT
11847  {
11848  std::size_t seed = 0;
11849  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorPropertiesEXT.sType );
11850  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorPropertiesEXT.pNext );
11851  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorPropertiesEXT.maxVertexAttribDivisor );
11852  return seed;
11853  }
11854  };
11855 
11856  template <>
11857  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesKHR>
11858  {
11859  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexAttributeDivisorPropertiesKHR const & physicalDeviceVertexAttributeDivisorPropertiesKHR )
11860  const VULKAN_HPP_NOEXCEPT
11861  {
11862  std::size_t seed = 0;
11863  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorPropertiesKHR.sType );
11864  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorPropertiesKHR.pNext );
11865  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorPropertiesKHR.maxVertexAttribDivisor );
11866  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexAttributeDivisorPropertiesKHR.supportsNonZeroFirstInstance );
11867  return seed;
11868  }
11869  };
11870 
11871  template <>
11872  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexInputDynamicStateFeaturesEXT>
11873  {
11874  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVertexInputDynamicStateFeaturesEXT const & physicalDeviceVertexInputDynamicStateFeaturesEXT )
11875  const VULKAN_HPP_NOEXCEPT
11876  {
11877  std::size_t seed = 0;
11878  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexInputDynamicStateFeaturesEXT.sType );
11879  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexInputDynamicStateFeaturesEXT.pNext );
11880  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVertexInputDynamicStateFeaturesEXT.vertexInputDynamicState );
11881  return seed;
11882  }
11883  };
11884 
11885  template <>
11886  struct hash<VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR>
11887  {
11888  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR const & videoProfileInfoKHR ) const VULKAN_HPP_NOEXCEPT
11889  {
11890  std::size_t seed = 0;
11891  VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.sType );
11892  VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.pNext );
11893  VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.videoCodecOperation );
11894  VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.chromaSubsampling );
11895  VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.lumaBitDepth );
11896  VULKAN_HPP_HASH_COMBINE( seed, videoProfileInfoKHR.chromaBitDepth );
11897  return seed;
11898  }
11899  };
11900 
11901  template <>
11902  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR>
11903  {
11904  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR const & physicalDeviceVideoEncodeQualityLevelInfoKHR ) const
11906  {
11907  std::size_t seed = 0;
11908  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVideoEncodeQualityLevelInfoKHR.sType );
11909  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVideoEncodeQualityLevelInfoKHR.pNext );
11910  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVideoEncodeQualityLevelInfoKHR.pVideoProfile );
11911  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVideoEncodeQualityLevelInfoKHR.qualityLevel );
11912  return seed;
11913  }
11914  };
11915 
11916  template <>
11917  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR>
11918  {
11919  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR const & physicalDeviceVideoFormatInfoKHR ) const VULKAN_HPP_NOEXCEPT
11920  {
11921  std::size_t seed = 0;
11922  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVideoFormatInfoKHR.sType );
11923  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVideoFormatInfoKHR.pNext );
11924  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVideoFormatInfoKHR.imageUsage );
11925  return seed;
11926  }
11927  };
11928 
11929  template <>
11930  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoMaintenance1FeaturesKHR>
11931  {
11932  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoMaintenance1FeaturesKHR const & physicalDeviceVideoMaintenance1FeaturesKHR ) const
11934  {
11935  std::size_t seed = 0;
11936  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVideoMaintenance1FeaturesKHR.sType );
11937  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVideoMaintenance1FeaturesKHR.pNext );
11938  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVideoMaintenance1FeaturesKHR.videoMaintenance1 );
11939  return seed;
11940  }
11941  };
11942 
11943  template <>
11944  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features>
11945  {
11946  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Features const & physicalDeviceVulkan11Features ) const VULKAN_HPP_NOEXCEPT
11947  {
11948  std::size_t seed = 0;
11949  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.sType );
11950  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.pNext );
11951  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.storageBuffer16BitAccess );
11952  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.uniformAndStorageBuffer16BitAccess );
11953  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.storagePushConstant16 );
11954  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.storageInputOutput16 );
11955  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.multiview );
11956  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.multiviewGeometryShader );
11957  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.multiviewTessellationShader );
11958  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.variablePointersStorageBuffer );
11959  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.variablePointers );
11960  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.protectedMemory );
11961  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.samplerYcbcrConversion );
11962  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Features.shaderDrawParameters );
11963  return seed;
11964  }
11965  };
11966 
11967  template <>
11968  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties>
11969  {
11970  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan11Properties const & physicalDeviceVulkan11Properties ) const VULKAN_HPP_NOEXCEPT
11971  {
11972  std::size_t seed = 0;
11973  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.sType );
11974  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.pNext );
11975  for ( size_t i = 0; i < VK_UUID_SIZE; ++i )
11976  {
11977  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.deviceUUID[i] );
11978  }
11979  for ( size_t i = 0; i < VK_UUID_SIZE; ++i )
11980  {
11981  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.driverUUID[i] );
11982  }
11983  for ( size_t i = 0; i < VK_LUID_SIZE; ++i )
11984  {
11985  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.deviceLUID[i] );
11986  }
11987  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.deviceNodeMask );
11988  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.deviceLUIDValid );
11989  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.subgroupSize );
11990  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.subgroupSupportedStages );
11991  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.subgroupSupportedOperations );
11992  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.subgroupQuadOperationsInAllStages );
11993  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.pointClippingBehavior );
11994  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.maxMultiviewViewCount );
11995  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.maxMultiviewInstanceIndex );
11996  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.protectedNoFault );
11997  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.maxPerSetDescriptors );
11998  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan11Properties.maxMemoryAllocationSize );
11999  return seed;
12000  }
12001  };
12002 
12003  template <>
12004  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features>
12005  {
12006  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Features const & physicalDeviceVulkan12Features ) const VULKAN_HPP_NOEXCEPT
12007  {
12008  std::size_t seed = 0;
12009  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.sType );
12010  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.pNext );
12011  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.samplerMirrorClampToEdge );
12012  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.drawIndirectCount );
12013  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.storageBuffer8BitAccess );
12014  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.uniformAndStorageBuffer8BitAccess );
12015  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.storagePushConstant8 );
12016  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderBufferInt64Atomics );
12017  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderSharedInt64Atomics );
12018  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderFloat16 );
12019  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderInt8 );
12020  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.descriptorIndexing );
12021  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderInputAttachmentArrayDynamicIndexing );
12022  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderUniformTexelBufferArrayDynamicIndexing );
12023  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderStorageTexelBufferArrayDynamicIndexing );
12024  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderUniformBufferArrayNonUniformIndexing );
12025  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderSampledImageArrayNonUniformIndexing );
12026  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderStorageBufferArrayNonUniformIndexing );
12027  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderStorageImageArrayNonUniformIndexing );
12028  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderInputAttachmentArrayNonUniformIndexing );
12029  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderUniformTexelBufferArrayNonUniformIndexing );
12030  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderStorageTexelBufferArrayNonUniformIndexing );
12031  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.descriptorBindingUniformBufferUpdateAfterBind );
12032  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.descriptorBindingSampledImageUpdateAfterBind );
12033  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.descriptorBindingStorageImageUpdateAfterBind );
12034  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.descriptorBindingStorageBufferUpdateAfterBind );
12035  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.descriptorBindingUniformTexelBufferUpdateAfterBind );
12036  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.descriptorBindingStorageTexelBufferUpdateAfterBind );
12037  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.descriptorBindingUpdateUnusedWhilePending );
12038  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.descriptorBindingPartiallyBound );
12039  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.descriptorBindingVariableDescriptorCount );
12040  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.runtimeDescriptorArray );
12041  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.samplerFilterMinmax );
12042  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.scalarBlockLayout );
12043  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.imagelessFramebuffer );
12044  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.uniformBufferStandardLayout );
12045  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderSubgroupExtendedTypes );
12046  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.separateDepthStencilLayouts );
12047  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.hostQueryReset );
12048  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.timelineSemaphore );
12049  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.bufferDeviceAddress );
12050  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.bufferDeviceAddressCaptureReplay );
12051  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.bufferDeviceAddressMultiDevice );
12052  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.vulkanMemoryModel );
12053  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.vulkanMemoryModelDeviceScope );
12054  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.vulkanMemoryModelAvailabilityVisibilityChains );
12055  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderOutputViewportIndex );
12056  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.shaderOutputLayer );
12057  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Features.subgroupBroadcastDynamicId );
12058  return seed;
12059  }
12060  };
12061 
12062  template <>
12063  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties>
12064  {
12065  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan12Properties const & physicalDeviceVulkan12Properties ) const VULKAN_HPP_NOEXCEPT
12066  {
12067  std::size_t seed = 0;
12068  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.sType );
12069  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.pNext );
12070  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.driverID );
12071  for ( size_t i = 0; i < VK_MAX_DRIVER_NAME_SIZE; ++i )
12072  {
12073  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.driverName[i] );
12074  }
12075  for ( size_t i = 0; i < VK_MAX_DRIVER_INFO_SIZE; ++i )
12076  {
12077  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.driverInfo[i] );
12078  }
12079  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.conformanceVersion );
12080  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.denormBehaviorIndependence );
12081  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.roundingModeIndependence );
12082  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderSignedZeroInfNanPreserveFloat16 );
12083  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderSignedZeroInfNanPreserveFloat32 );
12084  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderSignedZeroInfNanPreserveFloat64 );
12085  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderDenormPreserveFloat16 );
12086  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderDenormPreserveFloat32 );
12087  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderDenormPreserveFloat64 );
12088  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderDenormFlushToZeroFloat16 );
12089  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderDenormFlushToZeroFloat32 );
12090  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderDenormFlushToZeroFloat64 );
12091  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderRoundingModeRTEFloat16 );
12092  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderRoundingModeRTEFloat32 );
12093  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderRoundingModeRTEFloat64 );
12094  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderRoundingModeRTZFloat16 );
12095  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderRoundingModeRTZFloat32 );
12096  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderRoundingModeRTZFloat64 );
12097  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxUpdateAfterBindDescriptorsInAllPools );
12098  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderUniformBufferArrayNonUniformIndexingNative );
12099  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderSampledImageArrayNonUniformIndexingNative );
12100  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderStorageBufferArrayNonUniformIndexingNative );
12101  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderStorageImageArrayNonUniformIndexingNative );
12102  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.shaderInputAttachmentArrayNonUniformIndexingNative );
12103  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.robustBufferAccessUpdateAfterBind );
12104  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.quadDivergentImplicitLod );
12105  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxPerStageDescriptorUpdateAfterBindSamplers );
12106  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxPerStageDescriptorUpdateAfterBindUniformBuffers );
12107  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxPerStageDescriptorUpdateAfterBindStorageBuffers );
12108  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxPerStageDescriptorUpdateAfterBindSampledImages );
12109  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxPerStageDescriptorUpdateAfterBindStorageImages );
12110  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxPerStageDescriptorUpdateAfterBindInputAttachments );
12111  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxPerStageUpdateAfterBindResources );
12112  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxDescriptorSetUpdateAfterBindSamplers );
12113  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxDescriptorSetUpdateAfterBindUniformBuffers );
12114  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxDescriptorSetUpdateAfterBindUniformBuffersDynamic );
12115  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxDescriptorSetUpdateAfterBindStorageBuffers );
12116  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxDescriptorSetUpdateAfterBindStorageBuffersDynamic );
12117  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxDescriptorSetUpdateAfterBindSampledImages );
12118  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxDescriptorSetUpdateAfterBindStorageImages );
12119  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxDescriptorSetUpdateAfterBindInputAttachments );
12120  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.supportedDepthResolveModes );
12121  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.supportedStencilResolveModes );
12122  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.independentResolveNone );
12123  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.independentResolve );
12124  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.filterMinmaxSingleComponentFormats );
12125  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.filterMinmaxImageComponentMapping );
12126  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.maxTimelineSemaphoreValueDifference );
12127  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan12Properties.framebufferIntegerColorSampleCounts );
12128  return seed;
12129  }
12130  };
12131 
12132  template <>
12133  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features>
12134  {
12135  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Features const & physicalDeviceVulkan13Features ) const VULKAN_HPP_NOEXCEPT
12136  {
12137  std::size_t seed = 0;
12138  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.sType );
12139  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.pNext );
12140  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.robustImageAccess );
12141  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.inlineUniformBlock );
12142  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.descriptorBindingInlineUniformBlockUpdateAfterBind );
12143  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.pipelineCreationCacheControl );
12144  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.privateData );
12145  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.shaderDemoteToHelperInvocation );
12146  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.shaderTerminateInvocation );
12147  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.subgroupSizeControl );
12148  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.computeFullSubgroups );
12149  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.synchronization2 );
12150  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.textureCompressionASTC_HDR );
12151  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.shaderZeroInitializeWorkgroupMemory );
12152  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.dynamicRendering );
12153  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.shaderIntegerDotProduct );
12154  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Features.maintenance4 );
12155  return seed;
12156  }
12157  };
12158 
12159  template <>
12160  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Properties>
12161  {
12162  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkan13Properties const & physicalDeviceVulkan13Properties ) const VULKAN_HPP_NOEXCEPT
12163  {
12164  std::size_t seed = 0;
12165  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.sType );
12166  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.pNext );
12167  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.minSubgroupSize );
12168  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.maxSubgroupSize );
12169  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.maxComputeWorkgroupSubgroups );
12170  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.requiredSubgroupSizeStages );
12171  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.maxInlineUniformBlockSize );
12172  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.maxPerStageDescriptorInlineUniformBlocks );
12173  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.maxPerStageDescriptorUpdateAfterBindInlineUniformBlocks );
12174  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.maxDescriptorSetInlineUniformBlocks );
12175  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.maxDescriptorSetUpdateAfterBindInlineUniformBlocks );
12176  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.maxInlineUniformTotalSize );
12177  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct8BitUnsignedAccelerated );
12178  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct8BitSignedAccelerated );
12179  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct8BitMixedSignednessAccelerated );
12180  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct4x8BitPackedUnsignedAccelerated );
12181  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct4x8BitPackedSignedAccelerated );
12182  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct4x8BitPackedMixedSignednessAccelerated );
12183  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct16BitUnsignedAccelerated );
12184  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct16BitSignedAccelerated );
12185  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct16BitMixedSignednessAccelerated );
12186  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct32BitUnsignedAccelerated );
12187  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct32BitSignedAccelerated );
12188  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct32BitMixedSignednessAccelerated );
12189  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct64BitUnsignedAccelerated );
12190  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct64BitSignedAccelerated );
12191  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProduct64BitMixedSignednessAccelerated );
12192  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating8BitUnsignedAccelerated );
12193  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating8BitSignedAccelerated );
12194  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating8BitMixedSignednessAccelerated );
12195  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating4x8BitPackedUnsignedAccelerated );
12196  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating4x8BitPackedSignedAccelerated );
12197  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating4x8BitPackedMixedSignednessAccelerated );
12198  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating16BitUnsignedAccelerated );
12199  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating16BitSignedAccelerated );
12200  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating16BitMixedSignednessAccelerated );
12201  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating32BitUnsignedAccelerated );
12202  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating32BitSignedAccelerated );
12203  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating32BitMixedSignednessAccelerated );
12204  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating64BitUnsignedAccelerated );
12205  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating64BitSignedAccelerated );
12206  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.integerDotProductAccumulatingSaturating64BitMixedSignednessAccelerated );
12207  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.storageTexelBufferOffsetAlignmentBytes );
12208  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.storageTexelBufferOffsetSingleTexelAlignment );
12209  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.uniformTexelBufferOffsetAlignmentBytes );
12210  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.uniformTexelBufferOffsetSingleTexelAlignment );
12211  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkan13Properties.maxBufferSize );
12212  return seed;
12213  }
12214  };
12215 
12216  template <>
12217  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures>
12218  {
12219  std::size_t
12220  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceVulkanMemoryModelFeatures const & physicalDeviceVulkanMemoryModelFeatures ) const VULKAN_HPP_NOEXCEPT
12221  {
12222  std::size_t seed = 0;
12223  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkanMemoryModelFeatures.sType );
12224  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkanMemoryModelFeatures.pNext );
12225  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkanMemoryModelFeatures.vulkanMemoryModel );
12226  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkanMemoryModelFeatures.vulkanMemoryModelDeviceScope );
12227  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceVulkanMemoryModelFeatures.vulkanMemoryModelAvailabilityVisibilityChains );
12228  return seed;
12229  }
12230  };
12231 
12232  template <>
12233  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR>
12234  {
12235  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR const &
12236  physicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR ) const VULKAN_HPP_NOEXCEPT
12237  {
12238  std::size_t seed = 0;
12239  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.sType );
12240  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.pNext );
12241  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.workgroupMemoryExplicitLayout );
12242  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.workgroupMemoryExplicitLayoutScalarBlockLayout );
12243  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.workgroupMemoryExplicitLayout8BitAccess );
12244  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceWorkgroupMemoryExplicitLayoutFeaturesKHR.workgroupMemoryExplicitLayout16BitAccess );
12245  return seed;
12246  }
12247  };
12248 
12249  template <>
12250  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT>
12251  {
12252  std::size_t operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcr2Plane444FormatsFeaturesEXT const & physicalDeviceYcbcr2Plane444FormatsFeaturesEXT ) const
12254  {
12255  std::size_t seed = 0;
12256  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceYcbcr2Plane444FormatsFeaturesEXT.sType );
12257  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceYcbcr2Plane444FormatsFeaturesEXT.pNext );
12258  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceYcbcr2Plane444FormatsFeaturesEXT.ycbcr2plane444Formats );
12259  return seed;
12260  }
12261  };
12262 
12263  template <>
12264  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM>
12265  {
12266  std::size_t
12267  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrDegammaFeaturesQCOM const & physicalDeviceYcbcrDegammaFeaturesQCOM ) const VULKAN_HPP_NOEXCEPT
12268  {
12269  std::size_t seed = 0;
12270  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceYcbcrDegammaFeaturesQCOM.sType );
12271  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceYcbcrDegammaFeaturesQCOM.pNext );
12272  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceYcbcrDegammaFeaturesQCOM.ycbcrDegamma );
12273  return seed;
12274  }
12275  };
12276 
12277  template <>
12278  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT>
12279  {
12280  std::size_t
12281  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceYcbcrImageArraysFeaturesEXT const & physicalDeviceYcbcrImageArraysFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
12282  {
12283  std::size_t seed = 0;
12284  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceYcbcrImageArraysFeaturesEXT.sType );
12285  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceYcbcrImageArraysFeaturesEXT.pNext );
12286  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceYcbcrImageArraysFeaturesEXT.ycbcrImageArrays );
12287  return seed;
12288  }
12289  };
12290 
12291  template <>
12292  struct hash<VULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures>
12293  {
12294  std::size_t
12295  operator()( VULKAN_HPP_NAMESPACE::PhysicalDeviceZeroInitializeWorkgroupMemoryFeatures const & physicalDeviceZeroInitializeWorkgroupMemoryFeatures ) const
12297  {
12298  std::size_t seed = 0;
12299  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceZeroInitializeWorkgroupMemoryFeatures.sType );
12300  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceZeroInitializeWorkgroupMemoryFeatures.pNext );
12301  VULKAN_HPP_HASH_COMBINE( seed, physicalDeviceZeroInitializeWorkgroupMemoryFeatures.shaderZeroInitializeWorkgroupMemory );
12302  return seed;
12303  }
12304  };
12305 
12306  template <>
12307  struct hash<VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo>
12308  {
12309  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo const & pipelineCacheCreateInfo ) const VULKAN_HPP_NOEXCEPT
12310  {
12311  std::size_t seed = 0;
12312  VULKAN_HPP_HASH_COMBINE( seed, pipelineCacheCreateInfo.sType );
12313  VULKAN_HPP_HASH_COMBINE( seed, pipelineCacheCreateInfo.pNext );
12314  VULKAN_HPP_HASH_COMBINE( seed, pipelineCacheCreateInfo.flags );
12315  VULKAN_HPP_HASH_COMBINE( seed, pipelineCacheCreateInfo.initialDataSize );
12316  VULKAN_HPP_HASH_COMBINE( seed, pipelineCacheCreateInfo.pInitialData );
12317  return seed;
12318  }
12319  };
12320 
12321  template <>
12322  struct hash<VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersionOne>
12323  {
12324  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCacheHeaderVersionOne const & pipelineCacheHeaderVersionOne ) const VULKAN_HPP_NOEXCEPT
12325  {
12326  std::size_t seed = 0;
12327  VULKAN_HPP_HASH_COMBINE( seed, pipelineCacheHeaderVersionOne.headerSize );
12328  VULKAN_HPP_HASH_COMBINE( seed, pipelineCacheHeaderVersionOne.headerVersion );
12329  VULKAN_HPP_HASH_COMBINE( seed, pipelineCacheHeaderVersionOne.vendorID );
12330  VULKAN_HPP_HASH_COMBINE( seed, pipelineCacheHeaderVersionOne.deviceID );
12331  for ( size_t i = 0; i < VK_UUID_SIZE; ++i )
12332  {
12333  VULKAN_HPP_HASH_COMBINE( seed, pipelineCacheHeaderVersionOne.pipelineCacheUUID[i] );
12334  }
12335  return seed;
12336  }
12337  };
12338 
12339  template <>
12340  struct hash<VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT>
12341  {
12342  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineColorBlendAdvancedStateCreateInfoEXT const & pipelineColorBlendAdvancedStateCreateInfoEXT ) const
12344  {
12345  std::size_t seed = 0;
12346  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAdvancedStateCreateInfoEXT.sType );
12347  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAdvancedStateCreateInfoEXT.pNext );
12348  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAdvancedStateCreateInfoEXT.srcPremultiplied );
12349  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAdvancedStateCreateInfoEXT.dstPremultiplied );
12350  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorBlendAdvancedStateCreateInfoEXT.blendOverlap );
12351  return seed;
12352  }
12353  };
12354 
12355  template <>
12356  struct hash<VULKAN_HPP_NAMESPACE::PipelineColorWriteCreateInfoEXT>
12357  {
12358  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineColorWriteCreateInfoEXT const & pipelineColorWriteCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
12359  {
12360  std::size_t seed = 0;
12361  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorWriteCreateInfoEXT.sType );
12362  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorWriteCreateInfoEXT.pNext );
12363  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorWriteCreateInfoEXT.attachmentCount );
12364  VULKAN_HPP_HASH_COMBINE( seed, pipelineColorWriteCreateInfoEXT.pColorWriteEnables );
12365  return seed;
12366  }
12367  };
12368 
12369  template <>
12370  struct hash<VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD>
12371  {
12372  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCompilerControlCreateInfoAMD const & pipelineCompilerControlCreateInfoAMD ) const VULKAN_HPP_NOEXCEPT
12373  {
12374  std::size_t seed = 0;
12375  VULKAN_HPP_HASH_COMBINE( seed, pipelineCompilerControlCreateInfoAMD.sType );
12376  VULKAN_HPP_HASH_COMBINE( seed, pipelineCompilerControlCreateInfoAMD.pNext );
12377  VULKAN_HPP_HASH_COMBINE( seed, pipelineCompilerControlCreateInfoAMD.compilerControlFlags );
12378  return seed;
12379  }
12380  };
12381 
12382  template <>
12383  struct hash<VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV>
12384  {
12385  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCoverageModulationStateCreateInfoNV const & pipelineCoverageModulationStateCreateInfoNV ) const
12387  {
12388  std::size_t seed = 0;
12389  VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageModulationStateCreateInfoNV.sType );
12390  VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageModulationStateCreateInfoNV.pNext );
12391  VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageModulationStateCreateInfoNV.flags );
12392  VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageModulationStateCreateInfoNV.coverageModulationMode );
12393  VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageModulationStateCreateInfoNV.coverageModulationTableEnable );
12394  VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageModulationStateCreateInfoNV.coverageModulationTableCount );
12395  VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageModulationStateCreateInfoNV.pCoverageModulationTable );
12396  return seed;
12397  }
12398  };
12399 
12400  template <>
12401  struct hash<VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV>
12402  {
12403  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCoverageReductionStateCreateInfoNV const & pipelineCoverageReductionStateCreateInfoNV ) const
12405  {
12406  std::size_t seed = 0;
12407  VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageReductionStateCreateInfoNV.sType );
12408  VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageReductionStateCreateInfoNV.pNext );
12409  VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageReductionStateCreateInfoNV.flags );
12410  VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageReductionStateCreateInfoNV.coverageReductionMode );
12411  return seed;
12412  }
12413  };
12414 
12415  template <>
12416  struct hash<VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV>
12417  {
12418  std::size_t
12419  operator()( VULKAN_HPP_NAMESPACE::PipelineCoverageToColorStateCreateInfoNV const & pipelineCoverageToColorStateCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
12420  {
12421  std::size_t seed = 0;
12422  VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageToColorStateCreateInfoNV.sType );
12423  VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageToColorStateCreateInfoNV.pNext );
12424  VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageToColorStateCreateInfoNV.flags );
12425  VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageToColorStateCreateInfoNV.coverageToColorEnable );
12426  VULKAN_HPP_HASH_COMBINE( seed, pipelineCoverageToColorStateCreateInfoNV.coverageToColorLocation );
12427  return seed;
12428  }
12429  };
12430 
12431  template <>
12432  struct hash<VULKAN_HPP_NAMESPACE::PipelineCreateFlags2CreateInfoKHR>
12433  {
12434  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCreateFlags2CreateInfoKHR const & pipelineCreateFlags2CreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
12435  {
12436  std::size_t seed = 0;
12437  VULKAN_HPP_HASH_COMBINE( seed, pipelineCreateFlags2CreateInfoKHR.sType );
12438  VULKAN_HPP_HASH_COMBINE( seed, pipelineCreateFlags2CreateInfoKHR.pNext );
12439  VULKAN_HPP_HASH_COMBINE( seed, pipelineCreateFlags2CreateInfoKHR.flags );
12440  return seed;
12441  }
12442  };
12443 
12444  template <>
12445  struct hash<VULKAN_HPP_NAMESPACE::PipelineCreationFeedback>
12446  {
12447  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCreationFeedback const & pipelineCreationFeedback ) const VULKAN_HPP_NOEXCEPT
12448  {
12449  std::size_t seed = 0;
12450  VULKAN_HPP_HASH_COMBINE( seed, pipelineCreationFeedback.flags );
12451  VULKAN_HPP_HASH_COMBINE( seed, pipelineCreationFeedback.duration );
12452  return seed;
12453  }
12454  };
12455 
12456  template <>
12457  struct hash<VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfo>
12458  {
12459  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineCreationFeedbackCreateInfo const & pipelineCreationFeedbackCreateInfo ) const VULKAN_HPP_NOEXCEPT
12460  {
12461  std::size_t seed = 0;
12462  VULKAN_HPP_HASH_COMBINE( seed, pipelineCreationFeedbackCreateInfo.sType );
12463  VULKAN_HPP_HASH_COMBINE( seed, pipelineCreationFeedbackCreateInfo.pNext );
12464  VULKAN_HPP_HASH_COMBINE( seed, pipelineCreationFeedbackCreateInfo.pPipelineCreationFeedback );
12465  VULKAN_HPP_HASH_COMBINE( seed, pipelineCreationFeedbackCreateInfo.pipelineStageCreationFeedbackCount );
12466  VULKAN_HPP_HASH_COMBINE( seed, pipelineCreationFeedbackCreateInfo.pPipelineStageCreationFeedbacks );
12467  return seed;
12468  }
12469  };
12470 
12471  template <>
12472  struct hash<VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT>
12473  {
12474  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineDiscardRectangleStateCreateInfoEXT const & pipelineDiscardRectangleStateCreateInfoEXT ) const
12476  {
12477  std::size_t seed = 0;
12478  VULKAN_HPP_HASH_COMBINE( seed, pipelineDiscardRectangleStateCreateInfoEXT.sType );
12479  VULKAN_HPP_HASH_COMBINE( seed, pipelineDiscardRectangleStateCreateInfoEXT.pNext );
12480  VULKAN_HPP_HASH_COMBINE( seed, pipelineDiscardRectangleStateCreateInfoEXT.flags );
12481  VULKAN_HPP_HASH_COMBINE( seed, pipelineDiscardRectangleStateCreateInfoEXT.discardRectangleMode );
12482  VULKAN_HPP_HASH_COMBINE( seed, pipelineDiscardRectangleStateCreateInfoEXT.discardRectangleCount );
12483  VULKAN_HPP_HASH_COMBINE( seed, pipelineDiscardRectangleStateCreateInfoEXT.pDiscardRectangles );
12484  return seed;
12485  }
12486  };
12487 
12488  template <>
12489  struct hash<VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR>
12490  {
12491  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR const & pipelineExecutableInfoKHR ) const VULKAN_HPP_NOEXCEPT
12492  {
12493  std::size_t seed = 0;
12494  VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutableInfoKHR.sType );
12495  VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutableInfoKHR.pNext );
12496  VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutableInfoKHR.pipeline );
12497  VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutableInfoKHR.executableIndex );
12498  return seed;
12499  }
12500  };
12501 
12502  template <>
12503  struct hash<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR>
12504  {
12505  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR const & pipelineExecutableInternalRepresentationKHR ) const
12507  {
12508  std::size_t seed = 0;
12509  VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutableInternalRepresentationKHR.sType );
12510  VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutableInternalRepresentationKHR.pNext );
12511  for ( size_t i = 0; i < VK_MAX_DESCRIPTION_SIZE; ++i )
12512  {
12513  VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutableInternalRepresentationKHR.name[i] );
12514  }
12515  for ( size_t i = 0; i < VK_MAX_DESCRIPTION_SIZE; ++i )
12516  {
12517  VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutableInternalRepresentationKHR.description[i] );
12518  }
12519  VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutableInternalRepresentationKHR.isText );
12520  VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutableInternalRepresentationKHR.dataSize );
12521  VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutableInternalRepresentationKHR.pData );
12522  return seed;
12523  }
12524  };
12525 
12526  template <>
12527  struct hash<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR>
12528  {
12529  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR const & pipelineExecutablePropertiesKHR ) const VULKAN_HPP_NOEXCEPT
12530  {
12531  std::size_t seed = 0;
12532  VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutablePropertiesKHR.sType );
12533  VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutablePropertiesKHR.pNext );
12534  VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutablePropertiesKHR.stages );
12535  for ( size_t i = 0; i < VK_MAX_DESCRIPTION_SIZE; ++i )
12536  {
12537  VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutablePropertiesKHR.name[i] );
12538  }
12539  for ( size_t i = 0; i < VK_MAX_DESCRIPTION_SIZE; ++i )
12540  {
12541  VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutablePropertiesKHR.description[i] );
12542  }
12543  VULKAN_HPP_HASH_COMBINE( seed, pipelineExecutablePropertiesKHR.subgroupSize );
12544  return seed;
12545  }
12546  };
12547 
12548  template <>
12549  struct hash<VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV>
12550  {
12551  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateEnumStateCreateInfoNV const & pipelineFragmentShadingRateEnumStateCreateInfoNV )
12552  const VULKAN_HPP_NOEXCEPT
12553  {
12554  std::size_t seed = 0;
12555  VULKAN_HPP_HASH_COMBINE( seed, pipelineFragmentShadingRateEnumStateCreateInfoNV.sType );
12556  VULKAN_HPP_HASH_COMBINE( seed, pipelineFragmentShadingRateEnumStateCreateInfoNV.pNext );
12557  VULKAN_HPP_HASH_COMBINE( seed, pipelineFragmentShadingRateEnumStateCreateInfoNV.shadingRateType );
12558  VULKAN_HPP_HASH_COMBINE( seed, pipelineFragmentShadingRateEnumStateCreateInfoNV.shadingRate );
12559  for ( size_t i = 0; i < 2; ++i )
12560  {
12561  VULKAN_HPP_HASH_COMBINE( seed, pipelineFragmentShadingRateEnumStateCreateInfoNV.combinerOps[i] );
12562  }
12563  return seed;
12564  }
12565  };
12566 
12567  template <>
12568  struct hash<VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR>
12569  {
12570  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineFragmentShadingRateStateCreateInfoKHR const & pipelineFragmentShadingRateStateCreateInfoKHR ) const
12572  {
12573  std::size_t seed = 0;
12574  VULKAN_HPP_HASH_COMBINE( seed, pipelineFragmentShadingRateStateCreateInfoKHR.sType );
12575  VULKAN_HPP_HASH_COMBINE( seed, pipelineFragmentShadingRateStateCreateInfoKHR.pNext );
12576  VULKAN_HPP_HASH_COMBINE( seed, pipelineFragmentShadingRateStateCreateInfoKHR.fragmentSize );
12577  for ( size_t i = 0; i < 2; ++i )
12578  {
12579  VULKAN_HPP_HASH_COMBINE( seed, pipelineFragmentShadingRateStateCreateInfoKHR.combinerOps[i] );
12580  }
12581  return seed;
12582  }
12583  };
12584 
12585  template <>
12586  struct hash<VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV>
12587  {
12588  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV const & pipelineIndirectDeviceAddressInfoNV ) const VULKAN_HPP_NOEXCEPT
12589  {
12590  std::size_t seed = 0;
12591  VULKAN_HPP_HASH_COMBINE( seed, pipelineIndirectDeviceAddressInfoNV.sType );
12592  VULKAN_HPP_HASH_COMBINE( seed, pipelineIndirectDeviceAddressInfoNV.pNext );
12593  VULKAN_HPP_HASH_COMBINE( seed, pipelineIndirectDeviceAddressInfoNV.pipelineBindPoint );
12594  VULKAN_HPP_HASH_COMBINE( seed, pipelineIndirectDeviceAddressInfoNV.pipeline );
12595  return seed;
12596  }
12597  };
12598 
12599  template <>
12600  struct hash<VULKAN_HPP_NAMESPACE::PipelineInfoKHR>
12601  {
12602  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineInfoKHR const & pipelineInfoKHR ) const VULKAN_HPP_NOEXCEPT
12603  {
12604  std::size_t seed = 0;
12605  VULKAN_HPP_HASH_COMBINE( seed, pipelineInfoKHR.sType );
12606  VULKAN_HPP_HASH_COMBINE( seed, pipelineInfoKHR.pNext );
12607  VULKAN_HPP_HASH_COMBINE( seed, pipelineInfoKHR.pipeline );
12608  return seed;
12609  }
12610  };
12611 
12612  template <>
12613  struct hash<VULKAN_HPP_NAMESPACE::PushConstantRange>
12614  {
12615  std::size_t operator()( VULKAN_HPP_NAMESPACE::PushConstantRange const & pushConstantRange ) const VULKAN_HPP_NOEXCEPT
12616  {
12617  std::size_t seed = 0;
12618  VULKAN_HPP_HASH_COMBINE( seed, pushConstantRange.stageFlags );
12619  VULKAN_HPP_HASH_COMBINE( seed, pushConstantRange.offset );
12620  VULKAN_HPP_HASH_COMBINE( seed, pushConstantRange.size );
12621  return seed;
12622  }
12623  };
12624 
12625  template <>
12626  struct hash<VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo>
12627  {
12628  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo const & pipelineLayoutCreateInfo ) const VULKAN_HPP_NOEXCEPT
12629  {
12630  std::size_t seed = 0;
12631  VULKAN_HPP_HASH_COMBINE( seed, pipelineLayoutCreateInfo.sType );
12632  VULKAN_HPP_HASH_COMBINE( seed, pipelineLayoutCreateInfo.pNext );
12633  VULKAN_HPP_HASH_COMBINE( seed, pipelineLayoutCreateInfo.flags );
12634  VULKAN_HPP_HASH_COMBINE( seed, pipelineLayoutCreateInfo.setLayoutCount );
12635  VULKAN_HPP_HASH_COMBINE( seed, pipelineLayoutCreateInfo.pSetLayouts );
12636  VULKAN_HPP_HASH_COMBINE( seed, pipelineLayoutCreateInfo.pushConstantRangeCount );
12637  VULKAN_HPP_HASH_COMBINE( seed, pipelineLayoutCreateInfo.pPushConstantRanges );
12638  return seed;
12639  }
12640  };
12641 
12642  template <>
12643  struct hash<VULKAN_HPP_NAMESPACE::PipelinePropertiesIdentifierEXT>
12644  {
12645  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelinePropertiesIdentifierEXT const & pipelinePropertiesIdentifierEXT ) const VULKAN_HPP_NOEXCEPT
12646  {
12647  std::size_t seed = 0;
12648  VULKAN_HPP_HASH_COMBINE( seed, pipelinePropertiesIdentifierEXT.sType );
12649  VULKAN_HPP_HASH_COMBINE( seed, pipelinePropertiesIdentifierEXT.pNext );
12650  for ( size_t i = 0; i < VK_UUID_SIZE; ++i )
12651  {
12652  VULKAN_HPP_HASH_COMBINE( seed, pipelinePropertiesIdentifierEXT.pipelineIdentifier[i] );
12653  }
12654  return seed;
12655  }
12656  };
12657 
12658  template <>
12659  struct hash<VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT>
12660  {
12661  std::size_t
12662  operator()( VULKAN_HPP_NAMESPACE::PipelineRasterizationConservativeStateCreateInfoEXT const & pipelineRasterizationConservativeStateCreateInfoEXT ) const
12664  {
12665  std::size_t seed = 0;
12666  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationConservativeStateCreateInfoEXT.sType );
12667  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationConservativeStateCreateInfoEXT.pNext );
12668  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationConservativeStateCreateInfoEXT.flags );
12669  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationConservativeStateCreateInfoEXT.conservativeRasterizationMode );
12670  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationConservativeStateCreateInfoEXT.extraPrimitiveOverestimationSize );
12671  return seed;
12672  }
12673  };
12674 
12675  template <>
12676  struct hash<VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT>
12677  {
12678  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineRasterizationDepthClipStateCreateInfoEXT const & pipelineRasterizationDepthClipStateCreateInfoEXT )
12679  const VULKAN_HPP_NOEXCEPT
12680  {
12681  std::size_t seed = 0;
12682  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationDepthClipStateCreateInfoEXT.sType );
12683  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationDepthClipStateCreateInfoEXT.pNext );
12684  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationDepthClipStateCreateInfoEXT.flags );
12685  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationDepthClipStateCreateInfoEXT.depthClipEnable );
12686  return seed;
12687  }
12688  };
12689 
12690  template <>
12691  struct hash<VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT>
12692  {
12693  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineRasterizationLineStateCreateInfoEXT const & pipelineRasterizationLineStateCreateInfoEXT ) const
12695  {
12696  std::size_t seed = 0;
12697  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationLineStateCreateInfoEXT.sType );
12698  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationLineStateCreateInfoEXT.pNext );
12699  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationLineStateCreateInfoEXT.lineRasterizationMode );
12700  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationLineStateCreateInfoEXT.stippledLineEnable );
12701  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationLineStateCreateInfoEXT.lineStippleFactor );
12702  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationLineStateCreateInfoEXT.lineStipplePattern );
12703  return seed;
12704  }
12705  };
12706 
12707  template <>
12708  struct hash<VULKAN_HPP_NAMESPACE::PipelineRasterizationProvokingVertexStateCreateInfoEXT>
12709  {
12710  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineRasterizationProvokingVertexStateCreateInfoEXT const &
12711  pipelineRasterizationProvokingVertexStateCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
12712  {
12713  std::size_t seed = 0;
12714  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationProvokingVertexStateCreateInfoEXT.sType );
12715  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationProvokingVertexStateCreateInfoEXT.pNext );
12716  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationProvokingVertexStateCreateInfoEXT.provokingVertexMode );
12717  return seed;
12718  }
12719  };
12720 
12721  template <>
12722  struct hash<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD>
12723  {
12724  std::size_t operator()(
12725  VULKAN_HPP_NAMESPACE::PipelineRasterizationStateRasterizationOrderAMD const & pipelineRasterizationStateRasterizationOrderAMD ) const VULKAN_HPP_NOEXCEPT
12726  {
12727  std::size_t seed = 0;
12728  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateRasterizationOrderAMD.sType );
12729  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateRasterizationOrderAMD.pNext );
12730  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateRasterizationOrderAMD.rasterizationOrder );
12731  return seed;
12732  }
12733  };
12734 
12735  template <>
12736  struct hash<VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT>
12737  {
12738  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineRasterizationStateStreamCreateInfoEXT const & pipelineRasterizationStateStreamCreateInfoEXT ) const
12740  {
12741  std::size_t seed = 0;
12742  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateStreamCreateInfoEXT.sType );
12743  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateStreamCreateInfoEXT.pNext );
12744  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateStreamCreateInfoEXT.flags );
12745  VULKAN_HPP_HASH_COMBINE( seed, pipelineRasterizationStateStreamCreateInfoEXT.rasterizationStream );
12746  return seed;
12747  }
12748  };
12749 
12750  template <>
12751  struct hash<VULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo>
12752  {
12753  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineRenderingCreateInfo const & pipelineRenderingCreateInfo ) const VULKAN_HPP_NOEXCEPT
12754  {
12755  std::size_t seed = 0;
12756  VULKAN_HPP_HASH_COMBINE( seed, pipelineRenderingCreateInfo.sType );
12757  VULKAN_HPP_HASH_COMBINE( seed, pipelineRenderingCreateInfo.pNext );
12758  VULKAN_HPP_HASH_COMBINE( seed, pipelineRenderingCreateInfo.viewMask );
12759  VULKAN_HPP_HASH_COMBINE( seed, pipelineRenderingCreateInfo.colorAttachmentCount );
12760  VULKAN_HPP_HASH_COMBINE( seed, pipelineRenderingCreateInfo.pColorAttachmentFormats );
12761  VULKAN_HPP_HASH_COMBINE( seed, pipelineRenderingCreateInfo.depthAttachmentFormat );
12762  VULKAN_HPP_HASH_COMBINE( seed, pipelineRenderingCreateInfo.stencilAttachmentFormat );
12763  return seed;
12764  }
12765  };
12766 
12767  template <>
12768  struct hash<VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV>
12769  {
12770  std::size_t
12771  operator()( VULKAN_HPP_NAMESPACE::PipelineRepresentativeFragmentTestStateCreateInfoNV const & pipelineRepresentativeFragmentTestStateCreateInfoNV ) const
12773  {
12774  std::size_t seed = 0;
12775  VULKAN_HPP_HASH_COMBINE( seed, pipelineRepresentativeFragmentTestStateCreateInfoNV.sType );
12776  VULKAN_HPP_HASH_COMBINE( seed, pipelineRepresentativeFragmentTestStateCreateInfoNV.pNext );
12777  VULKAN_HPP_HASH_COMBINE( seed, pipelineRepresentativeFragmentTestStateCreateInfoNV.representativeFragmentTestEnable );
12778  return seed;
12779  }
12780  };
12781 
12782  template <>
12783  struct hash<VULKAN_HPP_NAMESPACE::PipelineRobustnessCreateInfoEXT>
12784  {
12785  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineRobustnessCreateInfoEXT const & pipelineRobustnessCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
12786  {
12787  std::size_t seed = 0;
12788  VULKAN_HPP_HASH_COMBINE( seed, pipelineRobustnessCreateInfoEXT.sType );
12789  VULKAN_HPP_HASH_COMBINE( seed, pipelineRobustnessCreateInfoEXT.pNext );
12790  VULKAN_HPP_HASH_COMBINE( seed, pipelineRobustnessCreateInfoEXT.storageBuffers );
12791  VULKAN_HPP_HASH_COMBINE( seed, pipelineRobustnessCreateInfoEXT.uniformBuffers );
12792  VULKAN_HPP_HASH_COMBINE( seed, pipelineRobustnessCreateInfoEXT.vertexInputs );
12793  VULKAN_HPP_HASH_COMBINE( seed, pipelineRobustnessCreateInfoEXT.images );
12794  return seed;
12795  }
12796  };
12797 
12798  template <>
12799  struct hash<VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT>
12800  {
12801  std::size_t
12802  operator()( VULKAN_HPP_NAMESPACE::PipelineSampleLocationsStateCreateInfoEXT const & pipelineSampleLocationsStateCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
12803  {
12804  std::size_t seed = 0;
12805  VULKAN_HPP_HASH_COMBINE( seed, pipelineSampleLocationsStateCreateInfoEXT.sType );
12806  VULKAN_HPP_HASH_COMBINE( seed, pipelineSampleLocationsStateCreateInfoEXT.pNext );
12807  VULKAN_HPP_HASH_COMBINE( seed, pipelineSampleLocationsStateCreateInfoEXT.sampleLocationsEnable );
12808  VULKAN_HPP_HASH_COMBINE( seed, pipelineSampleLocationsStateCreateInfoEXT.sampleLocationsInfo );
12809  return seed;
12810  }
12811  };
12812 
12813  template <>
12814  struct hash<VULKAN_HPP_NAMESPACE::PipelineShaderStageModuleIdentifierCreateInfoEXT>
12815  {
12816  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineShaderStageModuleIdentifierCreateInfoEXT const & pipelineShaderStageModuleIdentifierCreateInfoEXT )
12817  const VULKAN_HPP_NOEXCEPT
12818  {
12819  std::size_t seed = 0;
12820  VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageModuleIdentifierCreateInfoEXT.sType );
12821  VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageModuleIdentifierCreateInfoEXT.pNext );
12822  VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageModuleIdentifierCreateInfoEXT.identifierSize );
12823  VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageModuleIdentifierCreateInfoEXT.pIdentifier );
12824  return seed;
12825  }
12826  };
12827 
12828 # if defined( VK_ENABLE_BETA_EXTENSIONS )
12829  template <>
12830  struct hash<VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX>
12831  {
12832  std::size_t
12833  operator()( VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX const & pipelineShaderStageNodeCreateInfoAMDX ) const VULKAN_HPP_NOEXCEPT
12834  {
12835  std::size_t seed = 0;
12836  VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageNodeCreateInfoAMDX.sType );
12837  VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageNodeCreateInfoAMDX.pNext );
12838  for ( const char * p = pipelineShaderStageNodeCreateInfoAMDX.pName; *p != '\0'; ++p )
12839  {
12840  VULKAN_HPP_HASH_COMBINE( seed, *p );
12841  }
12842  VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageNodeCreateInfoAMDX.index );
12843  return seed;
12844  }
12845  };
12846 # endif /*VK_ENABLE_BETA_EXTENSIONS*/
12847 
12848  template <>
12849  struct hash<VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfo>
12850  {
12851  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineShaderStageRequiredSubgroupSizeCreateInfo const & pipelineShaderStageRequiredSubgroupSizeCreateInfo )
12852  const VULKAN_HPP_NOEXCEPT
12853  {
12854  std::size_t seed = 0;
12855  VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageRequiredSubgroupSizeCreateInfo.sType );
12856  VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageRequiredSubgroupSizeCreateInfo.pNext );
12857  VULKAN_HPP_HASH_COMBINE( seed, pipelineShaderStageRequiredSubgroupSizeCreateInfo.requiredSubgroupSize );
12858  return seed;
12859  }
12860  };
12861 
12862  template <>
12863  struct hash<VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo>
12864  {
12865  std::size_t operator()(
12866  VULKAN_HPP_NAMESPACE::PipelineTessellationDomainOriginStateCreateInfo const & pipelineTessellationDomainOriginStateCreateInfo ) const VULKAN_HPP_NOEXCEPT
12867  {
12868  std::size_t seed = 0;
12869  VULKAN_HPP_HASH_COMBINE( seed, pipelineTessellationDomainOriginStateCreateInfo.sType );
12870  VULKAN_HPP_HASH_COMBINE( seed, pipelineTessellationDomainOriginStateCreateInfo.pNext );
12871  VULKAN_HPP_HASH_COMBINE( seed, pipelineTessellationDomainOriginStateCreateInfo.domainOrigin );
12872  return seed;
12873  }
12874  };
12875 
12876  template <>
12877  struct hash<VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionKHR>
12878  {
12879  std::size_t
12880  operator()( VULKAN_HPP_NAMESPACE::VertexInputBindingDivisorDescriptionKHR const & vertexInputBindingDivisorDescriptionKHR ) const VULKAN_HPP_NOEXCEPT
12881  {
12882  std::size_t seed = 0;
12883  VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDivisorDescriptionKHR.binding );
12884  VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDivisorDescriptionKHR.divisor );
12885  return seed;
12886  }
12887  };
12888 
12889  template <>
12890  struct hash<VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoKHR>
12891  {
12892  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineVertexInputDivisorStateCreateInfoKHR const & pipelineVertexInputDivisorStateCreateInfoKHR ) const
12894  {
12895  std::size_t seed = 0;
12896  VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputDivisorStateCreateInfoKHR.sType );
12897  VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputDivisorStateCreateInfoKHR.pNext );
12898  VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputDivisorStateCreateInfoKHR.vertexBindingDivisorCount );
12899  VULKAN_HPP_HASH_COMBINE( seed, pipelineVertexInputDivisorStateCreateInfoKHR.pVertexBindingDivisors );
12900  return seed;
12901  }
12902  };
12903 
12904  template <>
12905  struct hash<VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV>
12906  {
12907  std::size_t
12908  operator()( VULKAN_HPP_NAMESPACE::PipelineViewportCoarseSampleOrderStateCreateInfoNV const & pipelineViewportCoarseSampleOrderStateCreateInfoNV ) const
12910  {
12911  std::size_t seed = 0;
12912  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportCoarseSampleOrderStateCreateInfoNV.sType );
12913  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportCoarseSampleOrderStateCreateInfoNV.pNext );
12914  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportCoarseSampleOrderStateCreateInfoNV.sampleOrderType );
12915  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportCoarseSampleOrderStateCreateInfoNV.customSampleOrderCount );
12916  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportCoarseSampleOrderStateCreateInfoNV.pCustomSampleOrders );
12917  return seed;
12918  }
12919  };
12920 
12921  template <>
12922  struct hash<VULKAN_HPP_NAMESPACE::PipelineViewportDepthClipControlCreateInfoEXT>
12923  {
12924  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineViewportDepthClipControlCreateInfoEXT const & pipelineViewportDepthClipControlCreateInfoEXT ) const
12926  {
12927  std::size_t seed = 0;
12928  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportDepthClipControlCreateInfoEXT.sType );
12929  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportDepthClipControlCreateInfoEXT.pNext );
12930  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportDepthClipControlCreateInfoEXT.negativeOneToOne );
12931  return seed;
12932  }
12933  };
12934 
12935  template <>
12936  struct hash<VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV>
12937  {
12938  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineViewportExclusiveScissorStateCreateInfoNV const & pipelineViewportExclusiveScissorStateCreateInfoNV )
12939  const VULKAN_HPP_NOEXCEPT
12940  {
12941  std::size_t seed = 0;
12942  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportExclusiveScissorStateCreateInfoNV.sType );
12943  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportExclusiveScissorStateCreateInfoNV.pNext );
12944  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportExclusiveScissorStateCreateInfoNV.exclusiveScissorCount );
12945  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportExclusiveScissorStateCreateInfoNV.pExclusiveScissors );
12946  return seed;
12947  }
12948  };
12949 
12950  template <>
12951  struct hash<VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV>
12952  {
12953  std::size_t operator()( VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV const & shadingRatePaletteNV ) const VULKAN_HPP_NOEXCEPT
12954  {
12955  std::size_t seed = 0;
12956  VULKAN_HPP_HASH_COMBINE( seed, shadingRatePaletteNV.shadingRatePaletteEntryCount );
12957  VULKAN_HPP_HASH_COMBINE( seed, shadingRatePaletteNV.pShadingRatePaletteEntries );
12958  return seed;
12959  }
12960  };
12961 
12962  template <>
12963  struct hash<VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV>
12964  {
12965  std::size_t operator()( VULKAN_HPP_NAMESPACE::PipelineViewportShadingRateImageStateCreateInfoNV const & pipelineViewportShadingRateImageStateCreateInfoNV )
12966  const VULKAN_HPP_NOEXCEPT
12967  {
12968  std::size_t seed = 0;
12969  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportShadingRateImageStateCreateInfoNV.sType );
12970  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportShadingRateImageStateCreateInfoNV.pNext );
12971  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportShadingRateImageStateCreateInfoNV.shadingRateImageEnable );
12972  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportShadingRateImageStateCreateInfoNV.viewportCount );
12973  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportShadingRateImageStateCreateInfoNV.pShadingRatePalettes );
12974  return seed;
12975  }
12976  };
12977 
12978  template <>
12979  struct hash<VULKAN_HPP_NAMESPACE::ViewportSwizzleNV>
12980  {
12981  std::size_t operator()( VULKAN_HPP_NAMESPACE::ViewportSwizzleNV const & viewportSwizzleNV ) const VULKAN_HPP_NOEXCEPT
12982  {
12983  std::size_t seed = 0;
12984  VULKAN_HPP_HASH_COMBINE( seed, viewportSwizzleNV.x );
12985  VULKAN_HPP_HASH_COMBINE( seed, viewportSwizzleNV.y );
12986  VULKAN_HPP_HASH_COMBINE( seed, viewportSwizzleNV.z );
12987  VULKAN_HPP_HASH_COMBINE( seed, viewportSwizzleNV.w );
12988  return seed;
12989  }
12990  };
12991 
12992  template <>
12993  struct hash<VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV>
12994  {
12995  std::size_t
12996  operator()( VULKAN_HPP_NAMESPACE::PipelineViewportSwizzleStateCreateInfoNV const & pipelineViewportSwizzleStateCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
12997  {
12998  std::size_t seed = 0;
12999  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportSwizzleStateCreateInfoNV.sType );
13000  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportSwizzleStateCreateInfoNV.pNext );
13001  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportSwizzleStateCreateInfoNV.flags );
13002  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportSwizzleStateCreateInfoNV.viewportCount );
13003  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportSwizzleStateCreateInfoNV.pViewportSwizzles );
13004  return seed;
13005  }
13006  };
13007 
13008  template <>
13009  struct hash<VULKAN_HPP_NAMESPACE::ViewportWScalingNV>
13010  {
13011  std::size_t operator()( VULKAN_HPP_NAMESPACE::ViewportWScalingNV const & viewportWScalingNV ) const VULKAN_HPP_NOEXCEPT
13012  {
13013  std::size_t seed = 0;
13014  VULKAN_HPP_HASH_COMBINE( seed, viewportWScalingNV.xcoeff );
13015  VULKAN_HPP_HASH_COMBINE( seed, viewportWScalingNV.ycoeff );
13016  return seed;
13017  }
13018  };
13019 
13020  template <>
13021  struct hash<VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV>
13022  {
13023  std::size_t
13024  operator()( VULKAN_HPP_NAMESPACE::PipelineViewportWScalingStateCreateInfoNV const & pipelineViewportWScalingStateCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
13025  {
13026  std::size_t seed = 0;
13027  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportWScalingStateCreateInfoNV.sType );
13028  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportWScalingStateCreateInfoNV.pNext );
13029  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportWScalingStateCreateInfoNV.viewportWScalingEnable );
13030  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportWScalingStateCreateInfoNV.viewportCount );
13031  VULKAN_HPP_HASH_COMBINE( seed, pipelineViewportWScalingStateCreateInfoNV.pViewportWScalings );
13032  return seed;
13033  }
13034  };
13035 
13036 # if defined( VK_USE_PLATFORM_GGP )
13037  template <>
13038  struct hash<VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP>
13039  {
13040  std::size_t operator()( VULKAN_HPP_NAMESPACE::PresentFrameTokenGGP const & presentFrameTokenGGP ) const VULKAN_HPP_NOEXCEPT
13041  {
13042  std::size_t seed = 0;
13043  VULKAN_HPP_HASH_COMBINE( seed, presentFrameTokenGGP.sType );
13044  VULKAN_HPP_HASH_COMBINE( seed, presentFrameTokenGGP.pNext );
13045  VULKAN_HPP_HASH_COMBINE( seed, presentFrameTokenGGP.frameToken );
13046  return seed;
13047  }
13048  };
13049 # endif /*VK_USE_PLATFORM_GGP*/
13050 
13051  template <>
13052  struct hash<VULKAN_HPP_NAMESPACE::PresentIdKHR>
13053  {
13054  std::size_t operator()( VULKAN_HPP_NAMESPACE::PresentIdKHR const & presentIdKHR ) const VULKAN_HPP_NOEXCEPT
13055  {
13056  std::size_t seed = 0;
13057  VULKAN_HPP_HASH_COMBINE( seed, presentIdKHR.sType );
13058  VULKAN_HPP_HASH_COMBINE( seed, presentIdKHR.pNext );
13059  VULKAN_HPP_HASH_COMBINE( seed, presentIdKHR.swapchainCount );
13060  VULKAN_HPP_HASH_COMBINE( seed, presentIdKHR.pPresentIds );
13061  return seed;
13062  }
13063  };
13064 
13065  template <>
13066  struct hash<VULKAN_HPP_NAMESPACE::PresentInfoKHR>
13067  {
13068  std::size_t operator()( VULKAN_HPP_NAMESPACE::PresentInfoKHR const & presentInfoKHR ) const VULKAN_HPP_NOEXCEPT
13069  {
13070  std::size_t seed = 0;
13071  VULKAN_HPP_HASH_COMBINE( seed, presentInfoKHR.sType );
13072  VULKAN_HPP_HASH_COMBINE( seed, presentInfoKHR.pNext );
13073  VULKAN_HPP_HASH_COMBINE( seed, presentInfoKHR.waitSemaphoreCount );
13074  VULKAN_HPP_HASH_COMBINE( seed, presentInfoKHR.pWaitSemaphores );
13075  VULKAN_HPP_HASH_COMBINE( seed, presentInfoKHR.swapchainCount );
13076  VULKAN_HPP_HASH_COMBINE( seed, presentInfoKHR.pSwapchains );
13077  VULKAN_HPP_HASH_COMBINE( seed, presentInfoKHR.pImageIndices );
13078  VULKAN_HPP_HASH_COMBINE( seed, presentInfoKHR.pResults );
13079  return seed;
13080  }
13081  };
13082 
13083  template <>
13084  struct hash<VULKAN_HPP_NAMESPACE::RectLayerKHR>
13085  {
13086  std::size_t operator()( VULKAN_HPP_NAMESPACE::RectLayerKHR const & rectLayerKHR ) const VULKAN_HPP_NOEXCEPT
13087  {
13088  std::size_t seed = 0;
13089  VULKAN_HPP_HASH_COMBINE( seed, rectLayerKHR.offset );
13090  VULKAN_HPP_HASH_COMBINE( seed, rectLayerKHR.extent );
13091  VULKAN_HPP_HASH_COMBINE( seed, rectLayerKHR.layer );
13092  return seed;
13093  }
13094  };
13095 
13096  template <>
13097  struct hash<VULKAN_HPP_NAMESPACE::PresentRegionKHR>
13098  {
13099  std::size_t operator()( VULKAN_HPP_NAMESPACE::PresentRegionKHR const & presentRegionKHR ) const VULKAN_HPP_NOEXCEPT
13100  {
13101  std::size_t seed = 0;
13102  VULKAN_HPP_HASH_COMBINE( seed, presentRegionKHR.rectangleCount );
13103  VULKAN_HPP_HASH_COMBINE( seed, presentRegionKHR.pRectangles );
13104  return seed;
13105  }
13106  };
13107 
13108  template <>
13109  struct hash<VULKAN_HPP_NAMESPACE::PresentRegionsKHR>
13110  {
13111  std::size_t operator()( VULKAN_HPP_NAMESPACE::PresentRegionsKHR const & presentRegionsKHR ) const VULKAN_HPP_NOEXCEPT
13112  {
13113  std::size_t seed = 0;
13114  VULKAN_HPP_HASH_COMBINE( seed, presentRegionsKHR.sType );
13115  VULKAN_HPP_HASH_COMBINE( seed, presentRegionsKHR.pNext );
13116  VULKAN_HPP_HASH_COMBINE( seed, presentRegionsKHR.swapchainCount );
13117  VULKAN_HPP_HASH_COMBINE( seed, presentRegionsKHR.pRegions );
13118  return seed;
13119  }
13120  };
13121 
13122  template <>
13123  struct hash<VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE>
13124  {
13125  std::size_t operator()( VULKAN_HPP_NAMESPACE::PresentTimeGOOGLE const & presentTimeGOOGLE ) const VULKAN_HPP_NOEXCEPT
13126  {
13127  std::size_t seed = 0;
13128  VULKAN_HPP_HASH_COMBINE( seed, presentTimeGOOGLE.presentID );
13129  VULKAN_HPP_HASH_COMBINE( seed, presentTimeGOOGLE.desiredPresentTime );
13130  return seed;
13131  }
13132  };
13133 
13134  template <>
13135  struct hash<VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE>
13136  {
13137  std::size_t operator()( VULKAN_HPP_NAMESPACE::PresentTimesInfoGOOGLE const & presentTimesInfoGOOGLE ) const VULKAN_HPP_NOEXCEPT
13138  {
13139  std::size_t seed = 0;
13140  VULKAN_HPP_HASH_COMBINE( seed, presentTimesInfoGOOGLE.sType );
13141  VULKAN_HPP_HASH_COMBINE( seed, presentTimesInfoGOOGLE.pNext );
13142  VULKAN_HPP_HASH_COMBINE( seed, presentTimesInfoGOOGLE.swapchainCount );
13143  VULKAN_HPP_HASH_COMBINE( seed, presentTimesInfoGOOGLE.pTimes );
13144  return seed;
13145  }
13146  };
13147 
13148  template <>
13149  struct hash<VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo>
13150  {
13151  std::size_t operator()( VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo const & privateDataSlotCreateInfo ) const VULKAN_HPP_NOEXCEPT
13152  {
13153  std::size_t seed = 0;
13154  VULKAN_HPP_HASH_COMBINE( seed, privateDataSlotCreateInfo.sType );
13155  VULKAN_HPP_HASH_COMBINE( seed, privateDataSlotCreateInfo.pNext );
13156  VULKAN_HPP_HASH_COMBINE( seed, privateDataSlotCreateInfo.flags );
13157  return seed;
13158  }
13159  };
13160 
13161  template <>
13162  struct hash<VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo>
13163  {
13164  std::size_t operator()( VULKAN_HPP_NAMESPACE::ProtectedSubmitInfo const & protectedSubmitInfo ) const VULKAN_HPP_NOEXCEPT
13165  {
13166  std::size_t seed = 0;
13167  VULKAN_HPP_HASH_COMBINE( seed, protectedSubmitInfo.sType );
13168  VULKAN_HPP_HASH_COMBINE( seed, protectedSubmitInfo.pNext );
13169  VULKAN_HPP_HASH_COMBINE( seed, protectedSubmitInfo.protectedSubmit );
13170  return seed;
13171  }
13172  };
13173 
13174  template <>
13175  struct hash<VULKAN_HPP_NAMESPACE::PushConstantsInfoKHR>
13176  {
13177  std::size_t operator()( VULKAN_HPP_NAMESPACE::PushConstantsInfoKHR const & pushConstantsInfoKHR ) const VULKAN_HPP_NOEXCEPT
13178  {
13179  std::size_t seed = 0;
13180  VULKAN_HPP_HASH_COMBINE( seed, pushConstantsInfoKHR.sType );
13181  VULKAN_HPP_HASH_COMBINE( seed, pushConstantsInfoKHR.pNext );
13182  VULKAN_HPP_HASH_COMBINE( seed, pushConstantsInfoKHR.layout );
13183  VULKAN_HPP_HASH_COMBINE( seed, pushConstantsInfoKHR.stageFlags );
13184  VULKAN_HPP_HASH_COMBINE( seed, pushConstantsInfoKHR.offset );
13185  VULKAN_HPP_HASH_COMBINE( seed, pushConstantsInfoKHR.size );
13186  VULKAN_HPP_HASH_COMBINE( seed, pushConstantsInfoKHR.pValues );
13187  return seed;
13188  }
13189  };
13190 
13191  template <>
13192  struct hash<VULKAN_HPP_NAMESPACE::WriteDescriptorSet>
13193  {
13194  std::size_t operator()( VULKAN_HPP_NAMESPACE::WriteDescriptorSet const & writeDescriptorSet ) const VULKAN_HPP_NOEXCEPT
13195  {
13196  std::size_t seed = 0;
13197  VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.sType );
13198  VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.pNext );
13199  VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.dstSet );
13200  VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.dstBinding );
13201  VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.dstArrayElement );
13202  VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.descriptorCount );
13203  VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.descriptorType );
13204  VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.pImageInfo );
13205  VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.pBufferInfo );
13206  VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSet.pTexelBufferView );
13207  return seed;
13208  }
13209  };
13210 
13211  template <>
13212  struct hash<VULKAN_HPP_NAMESPACE::PushDescriptorSetInfoKHR>
13213  {
13214  std::size_t operator()( VULKAN_HPP_NAMESPACE::PushDescriptorSetInfoKHR const & pushDescriptorSetInfoKHR ) const VULKAN_HPP_NOEXCEPT
13215  {
13216  std::size_t seed = 0;
13217  VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetInfoKHR.sType );
13218  VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetInfoKHR.pNext );
13219  VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetInfoKHR.stageFlags );
13220  VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetInfoKHR.layout );
13221  VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetInfoKHR.set );
13222  VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetInfoKHR.descriptorWriteCount );
13223  VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetInfoKHR.pDescriptorWrites );
13224  return seed;
13225  }
13226  };
13227 
13228  template <>
13229  struct hash<VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfoKHR>
13230  {
13231  std::size_t operator()( VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfoKHR const & pushDescriptorSetWithTemplateInfoKHR ) const VULKAN_HPP_NOEXCEPT
13232  {
13233  std::size_t seed = 0;
13234  VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetWithTemplateInfoKHR.sType );
13235  VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetWithTemplateInfoKHR.pNext );
13236  VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetWithTemplateInfoKHR.descriptorUpdateTemplate );
13237  VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetWithTemplateInfoKHR.layout );
13238  VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetWithTemplateInfoKHR.set );
13239  VULKAN_HPP_HASH_COMBINE( seed, pushDescriptorSetWithTemplateInfoKHR.pData );
13240  return seed;
13241  }
13242  };
13243 
13244  template <>
13245  struct hash<VULKAN_HPP_NAMESPACE::QueryLowLatencySupportNV>
13246  {
13247  std::size_t operator()( VULKAN_HPP_NAMESPACE::QueryLowLatencySupportNV const & queryLowLatencySupportNV ) const VULKAN_HPP_NOEXCEPT
13248  {
13249  std::size_t seed = 0;
13250  VULKAN_HPP_HASH_COMBINE( seed, queryLowLatencySupportNV.sType );
13251  VULKAN_HPP_HASH_COMBINE( seed, queryLowLatencySupportNV.pNext );
13252  VULKAN_HPP_HASH_COMBINE( seed, queryLowLatencySupportNV.pQueriedLowLatencyData );
13253  return seed;
13254  }
13255  };
13256 
13257  template <>
13258  struct hash<VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo>
13259  {
13260  std::size_t operator()( VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo const & queryPoolCreateInfo ) const VULKAN_HPP_NOEXCEPT
13261  {
13262  std::size_t seed = 0;
13263  VULKAN_HPP_HASH_COMBINE( seed, queryPoolCreateInfo.sType );
13264  VULKAN_HPP_HASH_COMBINE( seed, queryPoolCreateInfo.pNext );
13265  VULKAN_HPP_HASH_COMBINE( seed, queryPoolCreateInfo.flags );
13266  VULKAN_HPP_HASH_COMBINE( seed, queryPoolCreateInfo.queryType );
13267  VULKAN_HPP_HASH_COMBINE( seed, queryPoolCreateInfo.queryCount );
13268  VULKAN_HPP_HASH_COMBINE( seed, queryPoolCreateInfo.pipelineStatistics );
13269  return seed;
13270  }
13271  };
13272 
13273  template <>
13274  struct hash<VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR>
13275  {
13276  std::size_t operator()( VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR const & queryPoolPerformanceCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
13277  {
13278  std::size_t seed = 0;
13279  VULKAN_HPP_HASH_COMBINE( seed, queryPoolPerformanceCreateInfoKHR.sType );
13280  VULKAN_HPP_HASH_COMBINE( seed, queryPoolPerformanceCreateInfoKHR.pNext );
13281  VULKAN_HPP_HASH_COMBINE( seed, queryPoolPerformanceCreateInfoKHR.queueFamilyIndex );
13282  VULKAN_HPP_HASH_COMBINE( seed, queryPoolPerformanceCreateInfoKHR.counterIndexCount );
13283  VULKAN_HPP_HASH_COMBINE( seed, queryPoolPerformanceCreateInfoKHR.pCounterIndices );
13284  return seed;
13285  }
13286  };
13287 
13288  template <>
13289  struct hash<VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL>
13290  {
13291  std::size_t
13292  operator()( VULKAN_HPP_NAMESPACE::QueryPoolPerformanceQueryCreateInfoINTEL const & queryPoolPerformanceQueryCreateInfoINTEL ) const VULKAN_HPP_NOEXCEPT
13293  {
13294  std::size_t seed = 0;
13295  VULKAN_HPP_HASH_COMBINE( seed, queryPoolPerformanceQueryCreateInfoINTEL.sType );
13296  VULKAN_HPP_HASH_COMBINE( seed, queryPoolPerformanceQueryCreateInfoINTEL.pNext );
13297  VULKAN_HPP_HASH_COMBINE( seed, queryPoolPerformanceQueryCreateInfoINTEL.performanceCountersSampling );
13298  return seed;
13299  }
13300  };
13301 
13302  template <>
13303  struct hash<VULKAN_HPP_NAMESPACE::QueryPoolVideoEncodeFeedbackCreateInfoKHR>
13304  {
13305  std::size_t
13306  operator()( VULKAN_HPP_NAMESPACE::QueryPoolVideoEncodeFeedbackCreateInfoKHR const & queryPoolVideoEncodeFeedbackCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
13307  {
13308  std::size_t seed = 0;
13309  VULKAN_HPP_HASH_COMBINE( seed, queryPoolVideoEncodeFeedbackCreateInfoKHR.sType );
13310  VULKAN_HPP_HASH_COMBINE( seed, queryPoolVideoEncodeFeedbackCreateInfoKHR.pNext );
13311  VULKAN_HPP_HASH_COMBINE( seed, queryPoolVideoEncodeFeedbackCreateInfoKHR.encodeFeedbackFlags );
13312  return seed;
13313  }
13314  };
13315 
13316  template <>
13317  struct hash<VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV>
13318  {
13319  std::size_t operator()( VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointProperties2NV const & queueFamilyCheckpointProperties2NV ) const VULKAN_HPP_NOEXCEPT
13320  {
13321  std::size_t seed = 0;
13322  VULKAN_HPP_HASH_COMBINE( seed, queueFamilyCheckpointProperties2NV.sType );
13323  VULKAN_HPP_HASH_COMBINE( seed, queueFamilyCheckpointProperties2NV.pNext );
13324  VULKAN_HPP_HASH_COMBINE( seed, queueFamilyCheckpointProperties2NV.checkpointExecutionStageMask );
13325  return seed;
13326  }
13327  };
13328 
13329  template <>
13330  struct hash<VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV>
13331  {
13332  std::size_t operator()( VULKAN_HPP_NAMESPACE::QueueFamilyCheckpointPropertiesNV const & queueFamilyCheckpointPropertiesNV ) const VULKAN_HPP_NOEXCEPT
13333  {
13334  std::size_t seed = 0;
13335  VULKAN_HPP_HASH_COMBINE( seed, queueFamilyCheckpointPropertiesNV.sType );
13336  VULKAN_HPP_HASH_COMBINE( seed, queueFamilyCheckpointPropertiesNV.pNext );
13337  VULKAN_HPP_HASH_COMBINE( seed, queueFamilyCheckpointPropertiesNV.checkpointExecutionStageMask );
13338  return seed;
13339  }
13340  };
13341 
13342  template <>
13343  struct hash<VULKAN_HPP_NAMESPACE::QueueFamilyGlobalPriorityPropertiesKHR>
13344  {
13345  std::size_t
13346  operator()( VULKAN_HPP_NAMESPACE::QueueFamilyGlobalPriorityPropertiesKHR const & queueFamilyGlobalPriorityPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
13347  {
13348  std::size_t seed = 0;
13349  VULKAN_HPP_HASH_COMBINE( seed, queueFamilyGlobalPriorityPropertiesKHR.sType );
13350  VULKAN_HPP_HASH_COMBINE( seed, queueFamilyGlobalPriorityPropertiesKHR.pNext );
13351  VULKAN_HPP_HASH_COMBINE( seed, queueFamilyGlobalPriorityPropertiesKHR.priorityCount );
13352  for ( size_t i = 0; i < VK_MAX_GLOBAL_PRIORITY_SIZE_KHR; ++i )
13353  {
13354  VULKAN_HPP_HASH_COMBINE( seed, queueFamilyGlobalPriorityPropertiesKHR.priorities[i] );
13355  }
13356  return seed;
13357  }
13358  };
13359 
13360  template <>
13361  struct hash<VULKAN_HPP_NAMESPACE::QueueFamilyProperties>
13362  {
13363  std::size_t operator()( VULKAN_HPP_NAMESPACE::QueueFamilyProperties const & queueFamilyProperties ) const VULKAN_HPP_NOEXCEPT
13364  {
13365  std::size_t seed = 0;
13366  VULKAN_HPP_HASH_COMBINE( seed, queueFamilyProperties.queueFlags );
13367  VULKAN_HPP_HASH_COMBINE( seed, queueFamilyProperties.queueCount );
13368  VULKAN_HPP_HASH_COMBINE( seed, queueFamilyProperties.timestampValidBits );
13369  VULKAN_HPP_HASH_COMBINE( seed, queueFamilyProperties.minImageTransferGranularity );
13370  return seed;
13371  }
13372  };
13373 
13374  template <>
13375  struct hash<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>
13376  {
13377  std::size_t operator()( VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 const & queueFamilyProperties2 ) const VULKAN_HPP_NOEXCEPT
13378  {
13379  std::size_t seed = 0;
13380  VULKAN_HPP_HASH_COMBINE( seed, queueFamilyProperties2.sType );
13381  VULKAN_HPP_HASH_COMBINE( seed, queueFamilyProperties2.pNext );
13382  VULKAN_HPP_HASH_COMBINE( seed, queueFamilyProperties2.queueFamilyProperties );
13383  return seed;
13384  }
13385  };
13386 
13387  template <>
13388  struct hash<VULKAN_HPP_NAMESPACE::QueueFamilyQueryResultStatusPropertiesKHR>
13389  {
13390  std::size_t
13391  operator()( VULKAN_HPP_NAMESPACE::QueueFamilyQueryResultStatusPropertiesKHR const & queueFamilyQueryResultStatusPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
13392  {
13393  std::size_t seed = 0;
13394  VULKAN_HPP_HASH_COMBINE( seed, queueFamilyQueryResultStatusPropertiesKHR.sType );
13395  VULKAN_HPP_HASH_COMBINE( seed, queueFamilyQueryResultStatusPropertiesKHR.pNext );
13396  VULKAN_HPP_HASH_COMBINE( seed, queueFamilyQueryResultStatusPropertiesKHR.queryResultStatusSupport );
13397  return seed;
13398  }
13399  };
13400 
13401  template <>
13402  struct hash<VULKAN_HPP_NAMESPACE::QueueFamilyVideoPropertiesKHR>
13403  {
13404  std::size_t operator()( VULKAN_HPP_NAMESPACE::QueueFamilyVideoPropertiesKHR const & queueFamilyVideoPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
13405  {
13406  std::size_t seed = 0;
13407  VULKAN_HPP_HASH_COMBINE( seed, queueFamilyVideoPropertiesKHR.sType );
13408  VULKAN_HPP_HASH_COMBINE( seed, queueFamilyVideoPropertiesKHR.pNext );
13409  VULKAN_HPP_HASH_COMBINE( seed, queueFamilyVideoPropertiesKHR.videoCodecOperations );
13410  return seed;
13411  }
13412  };
13413 
13414  template <>
13415  struct hash<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR>
13416  {
13417  std::size_t operator()( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoKHR const & rayTracingShaderGroupCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
13418  {
13419  std::size_t seed = 0;
13420  VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoKHR.sType );
13421  VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoKHR.pNext );
13422  VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoKHR.type );
13423  VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoKHR.generalShader );
13424  VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoKHR.closestHitShader );
13425  VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoKHR.anyHitShader );
13426  VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoKHR.intersectionShader );
13427  VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoKHR.pShaderGroupCaptureReplayHandle );
13428  return seed;
13429  }
13430  };
13431 
13432  template <>
13433  struct hash<VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR>
13434  {
13435  std::size_t
13436  operator()( VULKAN_HPP_NAMESPACE::RayTracingPipelineInterfaceCreateInfoKHR const & rayTracingPipelineInterfaceCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
13437  {
13438  std::size_t seed = 0;
13439  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineInterfaceCreateInfoKHR.sType );
13440  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineInterfaceCreateInfoKHR.pNext );
13441  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineInterfaceCreateInfoKHR.maxPipelineRayPayloadSize );
13442  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineInterfaceCreateInfoKHR.maxPipelineRayHitAttributeSize );
13443  return seed;
13444  }
13445  };
13446 
13447  template <>
13448  struct hash<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR>
13449  {
13450  std::size_t operator()( VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR const & rayTracingPipelineCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
13451  {
13452  std::size_t seed = 0;
13453  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.sType );
13454  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.pNext );
13455  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.flags );
13456  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.stageCount );
13457  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.pStages );
13458  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.groupCount );
13459  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.pGroups );
13460  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.maxPipelineRayRecursionDepth );
13461  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.pLibraryInfo );
13462  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.pLibraryInterface );
13463  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.pDynamicState );
13464  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.layout );
13465  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.basePipelineHandle );
13466  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoKHR.basePipelineIndex );
13467  return seed;
13468  }
13469  };
13470 
13471  template <>
13472  struct hash<VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV>
13473  {
13474  std::size_t operator()( VULKAN_HPP_NAMESPACE::RayTracingShaderGroupCreateInfoNV const & rayTracingShaderGroupCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
13475  {
13476  std::size_t seed = 0;
13477  VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoNV.sType );
13478  VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoNV.pNext );
13479  VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoNV.type );
13480  VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoNV.generalShader );
13481  VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoNV.closestHitShader );
13482  VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoNV.anyHitShader );
13483  VULKAN_HPP_HASH_COMBINE( seed, rayTracingShaderGroupCreateInfoNV.intersectionShader );
13484  return seed;
13485  }
13486  };
13487 
13488  template <>
13489  struct hash<VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV>
13490  {
13491  std::size_t operator()( VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV const & rayTracingPipelineCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
13492  {
13493  std::size_t seed = 0;
13494  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoNV.sType );
13495  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoNV.pNext );
13496  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoNV.flags );
13497  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoNV.stageCount );
13498  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoNV.pStages );
13499  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoNV.groupCount );
13500  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoNV.pGroups );
13501  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoNV.maxRecursionDepth );
13502  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoNV.layout );
13503  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoNV.basePipelineHandle );
13504  VULKAN_HPP_HASH_COMBINE( seed, rayTracingPipelineCreateInfoNV.basePipelineIndex );
13505  return seed;
13506  }
13507  };
13508 
13509  template <>
13510  struct hash<VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE>
13511  {
13512  std::size_t operator()( VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE const & refreshCycleDurationGOOGLE ) const VULKAN_HPP_NOEXCEPT
13513  {
13514  std::size_t seed = 0;
13515  VULKAN_HPP_HASH_COMBINE( seed, refreshCycleDurationGOOGLE.refreshDuration );
13516  return seed;
13517  }
13518  };
13519 
13520  template <>
13521  struct hash<VULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT>
13522  {
13523  std::size_t operator()( VULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT const & releaseSwapchainImagesInfoEXT ) const VULKAN_HPP_NOEXCEPT
13524  {
13525  std::size_t seed = 0;
13526  VULKAN_HPP_HASH_COMBINE( seed, releaseSwapchainImagesInfoEXT.sType );
13527  VULKAN_HPP_HASH_COMBINE( seed, releaseSwapchainImagesInfoEXT.pNext );
13528  VULKAN_HPP_HASH_COMBINE( seed, releaseSwapchainImagesInfoEXT.swapchain );
13529  VULKAN_HPP_HASH_COMBINE( seed, releaseSwapchainImagesInfoEXT.imageIndexCount );
13530  VULKAN_HPP_HASH_COMBINE( seed, releaseSwapchainImagesInfoEXT.pImageIndices );
13531  return seed;
13532  }
13533  };
13534 
13535  template <>
13536  struct hash<VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo>
13537  {
13538  std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassAttachmentBeginInfo const & renderPassAttachmentBeginInfo ) const VULKAN_HPP_NOEXCEPT
13539  {
13540  std::size_t seed = 0;
13541  VULKAN_HPP_HASH_COMBINE( seed, renderPassAttachmentBeginInfo.sType );
13542  VULKAN_HPP_HASH_COMBINE( seed, renderPassAttachmentBeginInfo.pNext );
13543  VULKAN_HPP_HASH_COMBINE( seed, renderPassAttachmentBeginInfo.attachmentCount );
13544  VULKAN_HPP_HASH_COMBINE( seed, renderPassAttachmentBeginInfo.pAttachments );
13545  return seed;
13546  }
13547  };
13548 
13549  template <>
13550  struct hash<VULKAN_HPP_NAMESPACE::RenderPassBeginInfo>
13551  {
13552  std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassBeginInfo const & renderPassBeginInfo ) const VULKAN_HPP_NOEXCEPT
13553  {
13554  std::size_t seed = 0;
13555  VULKAN_HPP_HASH_COMBINE( seed, renderPassBeginInfo.sType );
13556  VULKAN_HPP_HASH_COMBINE( seed, renderPassBeginInfo.pNext );
13557  VULKAN_HPP_HASH_COMBINE( seed, renderPassBeginInfo.renderPass );
13558  VULKAN_HPP_HASH_COMBINE( seed, renderPassBeginInfo.framebuffer );
13559  VULKAN_HPP_HASH_COMBINE( seed, renderPassBeginInfo.renderArea );
13560  VULKAN_HPP_HASH_COMBINE( seed, renderPassBeginInfo.clearValueCount );
13561  VULKAN_HPP_HASH_COMBINE( seed, renderPassBeginInfo.pClearValues );
13562  return seed;
13563  }
13564  };
13565 
13566  template <>
13567  struct hash<VULKAN_HPP_NAMESPACE::SubpassDescription>
13568  {
13569  std::size_t operator()( VULKAN_HPP_NAMESPACE::SubpassDescription const & subpassDescription ) const VULKAN_HPP_NOEXCEPT
13570  {
13571  std::size_t seed = 0;
13572  VULKAN_HPP_HASH_COMBINE( seed, subpassDescription.flags );
13573  VULKAN_HPP_HASH_COMBINE( seed, subpassDescription.pipelineBindPoint );
13574  VULKAN_HPP_HASH_COMBINE( seed, subpassDescription.inputAttachmentCount );
13575  VULKAN_HPP_HASH_COMBINE( seed, subpassDescription.pInputAttachments );
13576  VULKAN_HPP_HASH_COMBINE( seed, subpassDescription.colorAttachmentCount );
13577  VULKAN_HPP_HASH_COMBINE( seed, subpassDescription.pColorAttachments );
13578  VULKAN_HPP_HASH_COMBINE( seed, subpassDescription.pResolveAttachments );
13579  VULKAN_HPP_HASH_COMBINE( seed, subpassDescription.pDepthStencilAttachment );
13580  VULKAN_HPP_HASH_COMBINE( seed, subpassDescription.preserveAttachmentCount );
13581  VULKAN_HPP_HASH_COMBINE( seed, subpassDescription.pPreserveAttachments );
13582  return seed;
13583  }
13584  };
13585 
13586  template <>
13587  struct hash<VULKAN_HPP_NAMESPACE::SubpassDependency>
13588  {
13589  std::size_t operator()( VULKAN_HPP_NAMESPACE::SubpassDependency const & subpassDependency ) const VULKAN_HPP_NOEXCEPT
13590  {
13591  std::size_t seed = 0;
13592  VULKAN_HPP_HASH_COMBINE( seed, subpassDependency.srcSubpass );
13593  VULKAN_HPP_HASH_COMBINE( seed, subpassDependency.dstSubpass );
13594  VULKAN_HPP_HASH_COMBINE( seed, subpassDependency.srcStageMask );
13595  VULKAN_HPP_HASH_COMBINE( seed, subpassDependency.dstStageMask );
13596  VULKAN_HPP_HASH_COMBINE( seed, subpassDependency.srcAccessMask );
13597  VULKAN_HPP_HASH_COMBINE( seed, subpassDependency.dstAccessMask );
13598  VULKAN_HPP_HASH_COMBINE( seed, subpassDependency.dependencyFlags );
13599  return seed;
13600  }
13601  };
13602 
13603  template <>
13604  struct hash<VULKAN_HPP_NAMESPACE::RenderPassCreateInfo>
13605  {
13606  std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo const & renderPassCreateInfo ) const VULKAN_HPP_NOEXCEPT
13607  {
13608  std::size_t seed = 0;
13609  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo.sType );
13610  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo.pNext );
13611  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo.flags );
13612  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo.attachmentCount );
13613  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo.pAttachments );
13614  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo.subpassCount );
13615  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo.pSubpasses );
13616  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo.dependencyCount );
13617  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo.pDependencies );
13618  return seed;
13619  }
13620  };
13621 
13622  template <>
13623  struct hash<VULKAN_HPP_NAMESPACE::SubpassDescription2>
13624  {
13625  std::size_t operator()( VULKAN_HPP_NAMESPACE::SubpassDescription2 const & subpassDescription2 ) const VULKAN_HPP_NOEXCEPT
13626  {
13627  std::size_t seed = 0;
13628  VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.sType );
13629  VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.pNext );
13630  VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.flags );
13631  VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.pipelineBindPoint );
13632  VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.viewMask );
13633  VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.inputAttachmentCount );
13634  VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.pInputAttachments );
13635  VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.colorAttachmentCount );
13636  VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.pColorAttachments );
13637  VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.pResolveAttachments );
13638  VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.pDepthStencilAttachment );
13639  VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.preserveAttachmentCount );
13640  VULKAN_HPP_HASH_COMBINE( seed, subpassDescription2.pPreserveAttachments );
13641  return seed;
13642  }
13643  };
13644 
13645  template <>
13646  struct hash<VULKAN_HPP_NAMESPACE::SubpassDependency2>
13647  {
13648  std::size_t operator()( VULKAN_HPP_NAMESPACE::SubpassDependency2 const & subpassDependency2 ) const VULKAN_HPP_NOEXCEPT
13649  {
13650  std::size_t seed = 0;
13651  VULKAN_HPP_HASH_COMBINE( seed, subpassDependency2.sType );
13652  VULKAN_HPP_HASH_COMBINE( seed, subpassDependency2.pNext );
13653  VULKAN_HPP_HASH_COMBINE( seed, subpassDependency2.srcSubpass );
13654  VULKAN_HPP_HASH_COMBINE( seed, subpassDependency2.dstSubpass );
13655  VULKAN_HPP_HASH_COMBINE( seed, subpassDependency2.srcStageMask );
13656  VULKAN_HPP_HASH_COMBINE( seed, subpassDependency2.dstStageMask );
13657  VULKAN_HPP_HASH_COMBINE( seed, subpassDependency2.srcAccessMask );
13658  VULKAN_HPP_HASH_COMBINE( seed, subpassDependency2.dstAccessMask );
13659  VULKAN_HPP_HASH_COMBINE( seed, subpassDependency2.dependencyFlags );
13660  VULKAN_HPP_HASH_COMBINE( seed, subpassDependency2.viewOffset );
13661  return seed;
13662  }
13663  };
13664 
13665  template <>
13666  struct hash<VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2>
13667  {
13668  std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 const & renderPassCreateInfo2 ) const VULKAN_HPP_NOEXCEPT
13669  {
13670  std::size_t seed = 0;
13671  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo2.sType );
13672  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo2.pNext );
13673  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo2.flags );
13674  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo2.attachmentCount );
13675  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo2.pAttachments );
13676  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo2.subpassCount );
13677  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo2.pSubpasses );
13678  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo2.dependencyCount );
13679  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo2.pDependencies );
13680  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo2.correlatedViewMaskCount );
13681  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreateInfo2.pCorrelatedViewMasks );
13682  return seed;
13683  }
13684  };
13685 
13686  template <>
13687  struct hash<VULKAN_HPP_NAMESPACE::RenderPassCreationControlEXT>
13688  {
13689  std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassCreationControlEXT const & renderPassCreationControlEXT ) const VULKAN_HPP_NOEXCEPT
13690  {
13691  std::size_t seed = 0;
13692  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreationControlEXT.sType );
13693  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreationControlEXT.pNext );
13694  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreationControlEXT.disallowMerging );
13695  return seed;
13696  }
13697  };
13698 
13699  template <>
13700  struct hash<VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT>
13701  {
13702  std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackInfoEXT const & renderPassCreationFeedbackInfoEXT ) const VULKAN_HPP_NOEXCEPT
13703  {
13704  std::size_t seed = 0;
13705  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreationFeedbackInfoEXT.postMergeSubpassCount );
13706  return seed;
13707  }
13708  };
13709 
13710  template <>
13711  struct hash<VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackCreateInfoEXT>
13712  {
13713  std::size_t
13714  operator()( VULKAN_HPP_NAMESPACE::RenderPassCreationFeedbackCreateInfoEXT const & renderPassCreationFeedbackCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
13715  {
13716  std::size_t seed = 0;
13717  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreationFeedbackCreateInfoEXT.sType );
13718  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreationFeedbackCreateInfoEXT.pNext );
13719  VULKAN_HPP_HASH_COMBINE( seed, renderPassCreationFeedbackCreateInfoEXT.pRenderPassFeedback );
13720  return seed;
13721  }
13722  };
13723 
13724  template <>
13725  struct hash<VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT>
13726  {
13727  std::size_t
13728  operator()( VULKAN_HPP_NAMESPACE::RenderPassFragmentDensityMapCreateInfoEXT const & renderPassFragmentDensityMapCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
13729  {
13730  std::size_t seed = 0;
13731  VULKAN_HPP_HASH_COMBINE( seed, renderPassFragmentDensityMapCreateInfoEXT.sType );
13732  VULKAN_HPP_HASH_COMBINE( seed, renderPassFragmentDensityMapCreateInfoEXT.pNext );
13733  VULKAN_HPP_HASH_COMBINE( seed, renderPassFragmentDensityMapCreateInfoEXT.fragmentDensityMapAttachment );
13734  return seed;
13735  }
13736  };
13737 
13738  template <>
13739  struct hash<VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo>
13740  {
13741  std::size_t
13742  operator()( VULKAN_HPP_NAMESPACE::RenderPassInputAttachmentAspectCreateInfo const & renderPassInputAttachmentAspectCreateInfo ) const VULKAN_HPP_NOEXCEPT
13743  {
13744  std::size_t seed = 0;
13745  VULKAN_HPP_HASH_COMBINE( seed, renderPassInputAttachmentAspectCreateInfo.sType );
13746  VULKAN_HPP_HASH_COMBINE( seed, renderPassInputAttachmentAspectCreateInfo.pNext );
13747  VULKAN_HPP_HASH_COMBINE( seed, renderPassInputAttachmentAspectCreateInfo.aspectReferenceCount );
13748  VULKAN_HPP_HASH_COMBINE( seed, renderPassInputAttachmentAspectCreateInfo.pAspectReferences );
13749  return seed;
13750  }
13751  };
13752 
13753  template <>
13754  struct hash<VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo>
13755  {
13756  std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassMultiviewCreateInfo const & renderPassMultiviewCreateInfo ) const VULKAN_HPP_NOEXCEPT
13757  {
13758  std::size_t seed = 0;
13759  VULKAN_HPP_HASH_COMBINE( seed, renderPassMultiviewCreateInfo.sType );
13760  VULKAN_HPP_HASH_COMBINE( seed, renderPassMultiviewCreateInfo.pNext );
13761  VULKAN_HPP_HASH_COMBINE( seed, renderPassMultiviewCreateInfo.subpassCount );
13762  VULKAN_HPP_HASH_COMBINE( seed, renderPassMultiviewCreateInfo.pViewMasks );
13763  VULKAN_HPP_HASH_COMBINE( seed, renderPassMultiviewCreateInfo.dependencyCount );
13764  VULKAN_HPP_HASH_COMBINE( seed, renderPassMultiviewCreateInfo.pViewOffsets );
13765  VULKAN_HPP_HASH_COMBINE( seed, renderPassMultiviewCreateInfo.correlationMaskCount );
13766  VULKAN_HPP_HASH_COMBINE( seed, renderPassMultiviewCreateInfo.pCorrelationMasks );
13767  return seed;
13768  }
13769  };
13770 
13771  template <>
13772  struct hash<VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT>
13773  {
13774  std::size_t operator()( VULKAN_HPP_NAMESPACE::SubpassSampleLocationsEXT const & subpassSampleLocationsEXT ) const VULKAN_HPP_NOEXCEPT
13775  {
13776  std::size_t seed = 0;
13777  VULKAN_HPP_HASH_COMBINE( seed, subpassSampleLocationsEXT.subpassIndex );
13778  VULKAN_HPP_HASH_COMBINE( seed, subpassSampleLocationsEXT.sampleLocationsInfo );
13779  return seed;
13780  }
13781  };
13782 
13783  template <>
13784  struct hash<VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT>
13785  {
13786  std::size_t
13787  operator()( VULKAN_HPP_NAMESPACE::RenderPassSampleLocationsBeginInfoEXT const & renderPassSampleLocationsBeginInfoEXT ) const VULKAN_HPP_NOEXCEPT
13788  {
13789  std::size_t seed = 0;
13790  VULKAN_HPP_HASH_COMBINE( seed, renderPassSampleLocationsBeginInfoEXT.sType );
13791  VULKAN_HPP_HASH_COMBINE( seed, renderPassSampleLocationsBeginInfoEXT.pNext );
13792  VULKAN_HPP_HASH_COMBINE( seed, renderPassSampleLocationsBeginInfoEXT.attachmentInitialSampleLocationsCount );
13793  VULKAN_HPP_HASH_COMBINE( seed, renderPassSampleLocationsBeginInfoEXT.pAttachmentInitialSampleLocations );
13794  VULKAN_HPP_HASH_COMBINE( seed, renderPassSampleLocationsBeginInfoEXT.postSubpassSampleLocationsCount );
13795  VULKAN_HPP_HASH_COMBINE( seed, renderPassSampleLocationsBeginInfoEXT.pPostSubpassSampleLocations );
13796  return seed;
13797  }
13798  };
13799 
13800  template <>
13801  struct hash<VULKAN_HPP_NAMESPACE::RenderPassStripeInfoARM>
13802  {
13803  std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassStripeInfoARM const & renderPassStripeInfoARM ) const VULKAN_HPP_NOEXCEPT
13804  {
13805  std::size_t seed = 0;
13806  VULKAN_HPP_HASH_COMBINE( seed, renderPassStripeInfoARM.sType );
13807  VULKAN_HPP_HASH_COMBINE( seed, renderPassStripeInfoARM.pNext );
13808  VULKAN_HPP_HASH_COMBINE( seed, renderPassStripeInfoARM.stripeArea );
13809  return seed;
13810  }
13811  };
13812 
13813  template <>
13814  struct hash<VULKAN_HPP_NAMESPACE::RenderPassStripeBeginInfoARM>
13815  {
13816  std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassStripeBeginInfoARM const & renderPassStripeBeginInfoARM ) const VULKAN_HPP_NOEXCEPT
13817  {
13818  std::size_t seed = 0;
13819  VULKAN_HPP_HASH_COMBINE( seed, renderPassStripeBeginInfoARM.sType );
13820  VULKAN_HPP_HASH_COMBINE( seed, renderPassStripeBeginInfoARM.pNext );
13821  VULKAN_HPP_HASH_COMBINE( seed, renderPassStripeBeginInfoARM.stripeInfoCount );
13822  VULKAN_HPP_HASH_COMBINE( seed, renderPassStripeBeginInfoARM.pStripeInfos );
13823  return seed;
13824  }
13825  };
13826 
13827  template <>
13828  struct hash<VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo>
13829  {
13830  std::size_t operator()( VULKAN_HPP_NAMESPACE::SemaphoreSubmitInfo const & semaphoreSubmitInfo ) const VULKAN_HPP_NOEXCEPT
13831  {
13832  std::size_t seed = 0;
13833  VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.sType );
13834  VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.pNext );
13835  VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.semaphore );
13836  VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.value );
13837  VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.stageMask );
13838  VULKAN_HPP_HASH_COMBINE( seed, semaphoreSubmitInfo.deviceIndex );
13839  return seed;
13840  }
13841  };
13842 
13843  template <>
13844  struct hash<VULKAN_HPP_NAMESPACE::RenderPassStripeSubmitInfoARM>
13845  {
13846  std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassStripeSubmitInfoARM const & renderPassStripeSubmitInfoARM ) const VULKAN_HPP_NOEXCEPT
13847  {
13848  std::size_t seed = 0;
13849  VULKAN_HPP_HASH_COMBINE( seed, renderPassStripeSubmitInfoARM.sType );
13850  VULKAN_HPP_HASH_COMBINE( seed, renderPassStripeSubmitInfoARM.pNext );
13851  VULKAN_HPP_HASH_COMBINE( seed, renderPassStripeSubmitInfoARM.stripeSemaphoreInfoCount );
13852  VULKAN_HPP_HASH_COMBINE( seed, renderPassStripeSubmitInfoARM.pStripeSemaphoreInfos );
13853  return seed;
13854  }
13855  };
13856 
13857  template <>
13858  struct hash<VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT>
13859  {
13860  std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackInfoEXT const & renderPassSubpassFeedbackInfoEXT ) const VULKAN_HPP_NOEXCEPT
13861  {
13862  std::size_t seed = 0;
13863  VULKAN_HPP_HASH_COMBINE( seed, renderPassSubpassFeedbackInfoEXT.subpassMergeStatus );
13864  for ( size_t i = 0; i < VK_MAX_DESCRIPTION_SIZE; ++i )
13865  {
13866  VULKAN_HPP_HASH_COMBINE( seed, renderPassSubpassFeedbackInfoEXT.description[i] );
13867  }
13868  VULKAN_HPP_HASH_COMBINE( seed, renderPassSubpassFeedbackInfoEXT.postMergeIndex );
13869  return seed;
13870  }
13871  };
13872 
13873  template <>
13874  struct hash<VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackCreateInfoEXT>
13875  {
13876  std::size_t
13877  operator()( VULKAN_HPP_NAMESPACE::RenderPassSubpassFeedbackCreateInfoEXT const & renderPassSubpassFeedbackCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
13878  {
13879  std::size_t seed = 0;
13880  VULKAN_HPP_HASH_COMBINE( seed, renderPassSubpassFeedbackCreateInfoEXT.sType );
13881  VULKAN_HPP_HASH_COMBINE( seed, renderPassSubpassFeedbackCreateInfoEXT.pNext );
13882  VULKAN_HPP_HASH_COMBINE( seed, renderPassSubpassFeedbackCreateInfoEXT.pSubpassFeedback );
13883  return seed;
13884  }
13885  };
13886 
13887  template <>
13888  struct hash<VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM>
13889  {
13890  std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderPassTransformBeginInfoQCOM const & renderPassTransformBeginInfoQCOM ) const VULKAN_HPP_NOEXCEPT
13891  {
13892  std::size_t seed = 0;
13893  VULKAN_HPP_HASH_COMBINE( seed, renderPassTransformBeginInfoQCOM.sType );
13894  VULKAN_HPP_HASH_COMBINE( seed, renderPassTransformBeginInfoQCOM.pNext );
13895  VULKAN_HPP_HASH_COMBINE( seed, renderPassTransformBeginInfoQCOM.transform );
13896  return seed;
13897  }
13898  };
13899 
13900  template <>
13901  struct hash<VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR>
13902  {
13903  std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderingAreaInfoKHR const & renderingAreaInfoKHR ) const VULKAN_HPP_NOEXCEPT
13904  {
13905  std::size_t seed = 0;
13906  VULKAN_HPP_HASH_COMBINE( seed, renderingAreaInfoKHR.sType );
13907  VULKAN_HPP_HASH_COMBINE( seed, renderingAreaInfoKHR.pNext );
13908  VULKAN_HPP_HASH_COMBINE( seed, renderingAreaInfoKHR.viewMask );
13909  VULKAN_HPP_HASH_COMBINE( seed, renderingAreaInfoKHR.colorAttachmentCount );
13910  VULKAN_HPP_HASH_COMBINE( seed, renderingAreaInfoKHR.pColorAttachmentFormats );
13911  VULKAN_HPP_HASH_COMBINE( seed, renderingAreaInfoKHR.depthAttachmentFormat );
13912  VULKAN_HPP_HASH_COMBINE( seed, renderingAreaInfoKHR.stencilAttachmentFormat );
13913  return seed;
13914  }
13915  };
13916 
13917  template <>
13918  struct hash<VULKAN_HPP_NAMESPACE::RenderingFragmentDensityMapAttachmentInfoEXT>
13919  {
13920  std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderingFragmentDensityMapAttachmentInfoEXT const & renderingFragmentDensityMapAttachmentInfoEXT ) const
13922  {
13923  std::size_t seed = 0;
13924  VULKAN_HPP_HASH_COMBINE( seed, renderingFragmentDensityMapAttachmentInfoEXT.sType );
13925  VULKAN_HPP_HASH_COMBINE( seed, renderingFragmentDensityMapAttachmentInfoEXT.pNext );
13926  VULKAN_HPP_HASH_COMBINE( seed, renderingFragmentDensityMapAttachmentInfoEXT.imageView );
13927  VULKAN_HPP_HASH_COMBINE( seed, renderingFragmentDensityMapAttachmentInfoEXT.imageLayout );
13928  return seed;
13929  }
13930  };
13931 
13932  template <>
13933  struct hash<VULKAN_HPP_NAMESPACE::RenderingFragmentShadingRateAttachmentInfoKHR>
13934  {
13935  std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderingFragmentShadingRateAttachmentInfoKHR const & renderingFragmentShadingRateAttachmentInfoKHR ) const
13937  {
13938  std::size_t seed = 0;
13939  VULKAN_HPP_HASH_COMBINE( seed, renderingFragmentShadingRateAttachmentInfoKHR.sType );
13940  VULKAN_HPP_HASH_COMBINE( seed, renderingFragmentShadingRateAttachmentInfoKHR.pNext );
13941  VULKAN_HPP_HASH_COMBINE( seed, renderingFragmentShadingRateAttachmentInfoKHR.imageView );
13942  VULKAN_HPP_HASH_COMBINE( seed, renderingFragmentShadingRateAttachmentInfoKHR.imageLayout );
13943  VULKAN_HPP_HASH_COMBINE( seed, renderingFragmentShadingRateAttachmentInfoKHR.shadingRateAttachmentTexelSize );
13944  return seed;
13945  }
13946  };
13947 
13948  template <>
13949  struct hash<VULKAN_HPP_NAMESPACE::RenderingInfo>
13950  {
13951  std::size_t operator()( VULKAN_HPP_NAMESPACE::RenderingInfo const & renderingInfo ) const VULKAN_HPP_NOEXCEPT
13952  {
13953  std::size_t seed = 0;
13954  VULKAN_HPP_HASH_COMBINE( seed, renderingInfo.sType );
13955  VULKAN_HPP_HASH_COMBINE( seed, renderingInfo.pNext );
13956  VULKAN_HPP_HASH_COMBINE( seed, renderingInfo.flags );
13957  VULKAN_HPP_HASH_COMBINE( seed, renderingInfo.renderArea );
13958  VULKAN_HPP_HASH_COMBINE( seed, renderingInfo.layerCount );
13959  VULKAN_HPP_HASH_COMBINE( seed, renderingInfo.viewMask );
13960  VULKAN_HPP_HASH_COMBINE( seed, renderingInfo.colorAttachmentCount );
13961  VULKAN_HPP_HASH_COMBINE( seed, renderingInfo.pColorAttachments );
13962  VULKAN_HPP_HASH_COMBINE( seed, renderingInfo.pDepthAttachment );
13963  VULKAN_HPP_HASH_COMBINE( seed, renderingInfo.pStencilAttachment );
13964  return seed;
13965  }
13966  };
13967 
13968  template <>
13969  struct hash<VULKAN_HPP_NAMESPACE::ResolveImageInfo2>
13970  {
13971  std::size_t operator()( VULKAN_HPP_NAMESPACE::ResolveImageInfo2 const & resolveImageInfo2 ) const VULKAN_HPP_NOEXCEPT
13972  {
13973  std::size_t seed = 0;
13974  VULKAN_HPP_HASH_COMBINE( seed, resolveImageInfo2.sType );
13975  VULKAN_HPP_HASH_COMBINE( seed, resolveImageInfo2.pNext );
13976  VULKAN_HPP_HASH_COMBINE( seed, resolveImageInfo2.srcImage );
13977  VULKAN_HPP_HASH_COMBINE( seed, resolveImageInfo2.srcImageLayout );
13978  VULKAN_HPP_HASH_COMBINE( seed, resolveImageInfo2.dstImage );
13979  VULKAN_HPP_HASH_COMBINE( seed, resolveImageInfo2.dstImageLayout );
13980  VULKAN_HPP_HASH_COMBINE( seed, resolveImageInfo2.regionCount );
13981  VULKAN_HPP_HASH_COMBINE( seed, resolveImageInfo2.pRegions );
13982  return seed;
13983  }
13984  };
13985 
13986  template <>
13987  struct hash<VULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM>
13988  {
13989  std::size_t
13990  operator()( VULKAN_HPP_NAMESPACE::SamplerBlockMatchWindowCreateInfoQCOM const & samplerBlockMatchWindowCreateInfoQCOM ) const VULKAN_HPP_NOEXCEPT
13991  {
13992  std::size_t seed = 0;
13993  VULKAN_HPP_HASH_COMBINE( seed, samplerBlockMatchWindowCreateInfoQCOM.sType );
13994  VULKAN_HPP_HASH_COMBINE( seed, samplerBlockMatchWindowCreateInfoQCOM.pNext );
13995  VULKAN_HPP_HASH_COMBINE( seed, samplerBlockMatchWindowCreateInfoQCOM.windowExtent );
13996  VULKAN_HPP_HASH_COMBINE( seed, samplerBlockMatchWindowCreateInfoQCOM.windowCompareMode );
13997  return seed;
13998  }
13999  };
14000 
14001  template <>
14002  struct hash<VULKAN_HPP_NAMESPACE::SamplerBorderColorComponentMappingCreateInfoEXT>
14003  {
14004  std::size_t operator()(
14005  VULKAN_HPP_NAMESPACE::SamplerBorderColorComponentMappingCreateInfoEXT const & samplerBorderColorComponentMappingCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
14006  {
14007  std::size_t seed = 0;
14008  VULKAN_HPP_HASH_COMBINE( seed, samplerBorderColorComponentMappingCreateInfoEXT.sType );
14009  VULKAN_HPP_HASH_COMBINE( seed, samplerBorderColorComponentMappingCreateInfoEXT.pNext );
14010  VULKAN_HPP_HASH_COMBINE( seed, samplerBorderColorComponentMappingCreateInfoEXT.components );
14011  VULKAN_HPP_HASH_COMBINE( seed, samplerBorderColorComponentMappingCreateInfoEXT.srgb );
14012  return seed;
14013  }
14014  };
14015 
14016  template <>
14017  struct hash<VULKAN_HPP_NAMESPACE::SamplerCaptureDescriptorDataInfoEXT>
14018  {
14019  std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerCaptureDescriptorDataInfoEXT const & samplerCaptureDescriptorDataInfoEXT ) const VULKAN_HPP_NOEXCEPT
14020  {
14021  std::size_t seed = 0;
14022  VULKAN_HPP_HASH_COMBINE( seed, samplerCaptureDescriptorDataInfoEXT.sType );
14023  VULKAN_HPP_HASH_COMBINE( seed, samplerCaptureDescriptorDataInfoEXT.pNext );
14024  VULKAN_HPP_HASH_COMBINE( seed, samplerCaptureDescriptorDataInfoEXT.sampler );
14025  return seed;
14026  }
14027  };
14028 
14029  template <>
14030  struct hash<VULKAN_HPP_NAMESPACE::SamplerCreateInfo>
14031  {
14032  std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerCreateInfo const & samplerCreateInfo ) const VULKAN_HPP_NOEXCEPT
14033  {
14034  std::size_t seed = 0;
14035  VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.sType );
14036  VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.pNext );
14037  VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.flags );
14038  VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.magFilter );
14039  VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.minFilter );
14040  VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.mipmapMode );
14041  VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.addressModeU );
14042  VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.addressModeV );
14043  VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.addressModeW );
14044  VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.mipLodBias );
14045  VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.anisotropyEnable );
14046  VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.maxAnisotropy );
14047  VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.compareEnable );
14048  VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.compareOp );
14049  VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.minLod );
14050  VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.maxLod );
14051  VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.borderColor );
14052  VULKAN_HPP_HASH_COMBINE( seed, samplerCreateInfo.unnormalizedCoordinates );
14053  return seed;
14054  }
14055  };
14056 
14057  template <>
14058  struct hash<VULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM>
14059  {
14060  std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerCubicWeightsCreateInfoQCOM const & samplerCubicWeightsCreateInfoQCOM ) const VULKAN_HPP_NOEXCEPT
14061  {
14062  std::size_t seed = 0;
14063  VULKAN_HPP_HASH_COMBINE( seed, samplerCubicWeightsCreateInfoQCOM.sType );
14064  VULKAN_HPP_HASH_COMBINE( seed, samplerCubicWeightsCreateInfoQCOM.pNext );
14065  VULKAN_HPP_HASH_COMBINE( seed, samplerCubicWeightsCreateInfoQCOM.cubicWeights );
14066  return seed;
14067  }
14068  };
14069 
14070  template <>
14071  struct hash<VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo>
14072  {
14073  std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerReductionModeCreateInfo const & samplerReductionModeCreateInfo ) const VULKAN_HPP_NOEXCEPT
14074  {
14075  std::size_t seed = 0;
14076  VULKAN_HPP_HASH_COMBINE( seed, samplerReductionModeCreateInfo.sType );
14077  VULKAN_HPP_HASH_COMBINE( seed, samplerReductionModeCreateInfo.pNext );
14078  VULKAN_HPP_HASH_COMBINE( seed, samplerReductionModeCreateInfo.reductionMode );
14079  return seed;
14080  }
14081  };
14082 
14083  template <>
14084  struct hash<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo>
14085  {
14086  std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo const & samplerYcbcrConversionCreateInfo ) const VULKAN_HPP_NOEXCEPT
14087  {
14088  std::size_t seed = 0;
14089  VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionCreateInfo.sType );
14090  VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionCreateInfo.pNext );
14091  VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionCreateInfo.format );
14092  VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionCreateInfo.ycbcrModel );
14093  VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionCreateInfo.ycbcrRange );
14094  VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionCreateInfo.components );
14095  VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionCreateInfo.xChromaOffset );
14096  VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionCreateInfo.yChromaOffset );
14097  VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionCreateInfo.chromaFilter );
14098  VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionCreateInfo.forceExplicitReconstruction );
14099  return seed;
14100  }
14101  };
14102 
14103  template <>
14104  struct hash<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties>
14105  {
14106  std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionImageFormatProperties const & samplerYcbcrConversionImageFormatProperties ) const
14108  {
14109  std::size_t seed = 0;
14110  VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionImageFormatProperties.sType );
14111  VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionImageFormatProperties.pNext );
14112  VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionImageFormatProperties.combinedImageSamplerDescriptorCount );
14113  return seed;
14114  }
14115  };
14116 
14117  template <>
14118  struct hash<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo>
14119  {
14120  std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionInfo const & samplerYcbcrConversionInfo ) const VULKAN_HPP_NOEXCEPT
14121  {
14122  std::size_t seed = 0;
14123  VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionInfo.sType );
14124  VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionInfo.pNext );
14125  VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionInfo.conversion );
14126  return seed;
14127  }
14128  };
14129 
14130  template <>
14131  struct hash<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM>
14132  {
14133  std::size_t operator()( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionYcbcrDegammaCreateInfoQCOM const & samplerYcbcrConversionYcbcrDegammaCreateInfoQCOM )
14134  const VULKAN_HPP_NOEXCEPT
14135  {
14136  std::size_t seed = 0;
14137  VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionYcbcrDegammaCreateInfoQCOM.sType );
14138  VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionYcbcrDegammaCreateInfoQCOM.pNext );
14139  VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionYcbcrDegammaCreateInfoQCOM.enableYDegamma );
14140  VULKAN_HPP_HASH_COMBINE( seed, samplerYcbcrConversionYcbcrDegammaCreateInfoQCOM.enableCbCrDegamma );
14141  return seed;
14142  }
14143  };
14144 
14145 # if defined( VK_USE_PLATFORM_SCREEN_QNX )
14146  template <>
14147  struct hash<VULKAN_HPP_NAMESPACE::ScreenBufferFormatPropertiesQNX>
14148  {
14149  std::size_t operator()( VULKAN_HPP_NAMESPACE::ScreenBufferFormatPropertiesQNX const & screenBufferFormatPropertiesQNX ) const VULKAN_HPP_NOEXCEPT
14150  {
14151  std::size_t seed = 0;
14152  VULKAN_HPP_HASH_COMBINE( seed, screenBufferFormatPropertiesQNX.sType );
14153  VULKAN_HPP_HASH_COMBINE( seed, screenBufferFormatPropertiesQNX.pNext );
14154  VULKAN_HPP_HASH_COMBINE( seed, screenBufferFormatPropertiesQNX.format );
14155  VULKAN_HPP_HASH_COMBINE( seed, screenBufferFormatPropertiesQNX.externalFormat );
14156  VULKAN_HPP_HASH_COMBINE( seed, screenBufferFormatPropertiesQNX.screenUsage );
14157  VULKAN_HPP_HASH_COMBINE( seed, screenBufferFormatPropertiesQNX.formatFeatures );
14158  VULKAN_HPP_HASH_COMBINE( seed, screenBufferFormatPropertiesQNX.samplerYcbcrConversionComponents );
14159  VULKAN_HPP_HASH_COMBINE( seed, screenBufferFormatPropertiesQNX.suggestedYcbcrModel );
14160  VULKAN_HPP_HASH_COMBINE( seed, screenBufferFormatPropertiesQNX.suggestedYcbcrRange );
14161  VULKAN_HPP_HASH_COMBINE( seed, screenBufferFormatPropertiesQNX.suggestedXChromaOffset );
14162  VULKAN_HPP_HASH_COMBINE( seed, screenBufferFormatPropertiesQNX.suggestedYChromaOffset );
14163  return seed;
14164  }
14165  };
14166 # endif /*VK_USE_PLATFORM_SCREEN_QNX*/
14167 
14168 # if defined( VK_USE_PLATFORM_SCREEN_QNX )
14169  template <>
14170  struct hash<VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX>
14171  {
14172  std::size_t operator()( VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX const & screenBufferPropertiesQNX ) const VULKAN_HPP_NOEXCEPT
14173  {
14174  std::size_t seed = 0;
14175  VULKAN_HPP_HASH_COMBINE( seed, screenBufferPropertiesQNX.sType );
14176  VULKAN_HPP_HASH_COMBINE( seed, screenBufferPropertiesQNX.pNext );
14177  VULKAN_HPP_HASH_COMBINE( seed, screenBufferPropertiesQNX.allocationSize );
14178  VULKAN_HPP_HASH_COMBINE( seed, screenBufferPropertiesQNX.memoryTypeBits );
14179  return seed;
14180  }
14181  };
14182 # endif /*VK_USE_PLATFORM_SCREEN_QNX*/
14183 
14184 # if defined( VK_USE_PLATFORM_SCREEN_QNX )
14185  template <>
14186  struct hash<VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX>
14187  {
14188  std::size_t operator()( VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX const & screenSurfaceCreateInfoQNX ) const VULKAN_HPP_NOEXCEPT
14189  {
14190  std::size_t seed = 0;
14191  VULKAN_HPP_HASH_COMBINE( seed, screenSurfaceCreateInfoQNX.sType );
14192  VULKAN_HPP_HASH_COMBINE( seed, screenSurfaceCreateInfoQNX.pNext );
14193  VULKAN_HPP_HASH_COMBINE( seed, screenSurfaceCreateInfoQNX.flags );
14194  VULKAN_HPP_HASH_COMBINE( seed, screenSurfaceCreateInfoQNX.context );
14195  VULKAN_HPP_HASH_COMBINE( seed, screenSurfaceCreateInfoQNX.window );
14196  return seed;
14197  }
14198  };
14199 # endif /*VK_USE_PLATFORM_SCREEN_QNX*/
14200 
14201  template <>
14202  struct hash<VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo>
14203  {
14204  std::size_t operator()( VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo const & semaphoreCreateInfo ) const VULKAN_HPP_NOEXCEPT
14205  {
14206  std::size_t seed = 0;
14207  VULKAN_HPP_HASH_COMBINE( seed, semaphoreCreateInfo.sType );
14208  VULKAN_HPP_HASH_COMBINE( seed, semaphoreCreateInfo.pNext );
14209  VULKAN_HPP_HASH_COMBINE( seed, semaphoreCreateInfo.flags );
14210  return seed;
14211  }
14212  };
14213 
14214  template <>
14215  struct hash<VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR>
14216  {
14217  std::size_t operator()( VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR const & semaphoreGetFdInfoKHR ) const VULKAN_HPP_NOEXCEPT
14218  {
14219  std::size_t seed = 0;
14220  VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetFdInfoKHR.sType );
14221  VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetFdInfoKHR.pNext );
14222  VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetFdInfoKHR.semaphore );
14223  VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetFdInfoKHR.handleType );
14224  return seed;
14225  }
14226  };
14227 
14228 # if defined( VK_USE_PLATFORM_WIN32_KHR )
14229  template <>
14230  struct hash<VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR>
14231  {
14232  std::size_t operator()( VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR const & semaphoreGetWin32HandleInfoKHR ) const VULKAN_HPP_NOEXCEPT
14233  {
14234  std::size_t seed = 0;
14235  VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetWin32HandleInfoKHR.sType );
14236  VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetWin32HandleInfoKHR.pNext );
14237  VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetWin32HandleInfoKHR.semaphore );
14238  VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetWin32HandleInfoKHR.handleType );
14239  return seed;
14240  }
14241  };
14242 # endif /*VK_USE_PLATFORM_WIN32_KHR*/
14243 
14244 # if defined( VK_USE_PLATFORM_FUCHSIA )
14245  template <>
14246  struct hash<VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA>
14247  {
14248  std::size_t operator()( VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA const & semaphoreGetZirconHandleInfoFUCHSIA ) const VULKAN_HPP_NOEXCEPT
14249  {
14250  std::size_t seed = 0;
14251  VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetZirconHandleInfoFUCHSIA.sType );
14252  VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetZirconHandleInfoFUCHSIA.pNext );
14253  VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetZirconHandleInfoFUCHSIA.semaphore );
14254  VULKAN_HPP_HASH_COMBINE( seed, semaphoreGetZirconHandleInfoFUCHSIA.handleType );
14255  return seed;
14256  }
14257  };
14258 # endif /*VK_USE_PLATFORM_FUCHSIA*/
14259 
14260  template <>
14261  struct hash<VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo>
14262  {
14263  std::size_t operator()( VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo const & semaphoreSignalInfo ) const VULKAN_HPP_NOEXCEPT
14264  {
14265  std::size_t seed = 0;
14266  VULKAN_HPP_HASH_COMBINE( seed, semaphoreSignalInfo.sType );
14267  VULKAN_HPP_HASH_COMBINE( seed, semaphoreSignalInfo.pNext );
14268  VULKAN_HPP_HASH_COMBINE( seed, semaphoreSignalInfo.semaphore );
14269  VULKAN_HPP_HASH_COMBINE( seed, semaphoreSignalInfo.value );
14270  return seed;
14271  }
14272  };
14273 
14274  template <>
14275  struct hash<VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo>
14276  {
14277  std::size_t operator()( VULKAN_HPP_NAMESPACE::SemaphoreTypeCreateInfo const & semaphoreTypeCreateInfo ) const VULKAN_HPP_NOEXCEPT
14278  {
14279  std::size_t seed = 0;
14280  VULKAN_HPP_HASH_COMBINE( seed, semaphoreTypeCreateInfo.sType );
14281  VULKAN_HPP_HASH_COMBINE( seed, semaphoreTypeCreateInfo.pNext );
14282  VULKAN_HPP_HASH_COMBINE( seed, semaphoreTypeCreateInfo.semaphoreType );
14283  VULKAN_HPP_HASH_COMBINE( seed, semaphoreTypeCreateInfo.initialValue );
14284  return seed;
14285  }
14286  };
14287 
14288  template <>
14289  struct hash<VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo>
14290  {
14291  std::size_t operator()( VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo const & semaphoreWaitInfo ) const VULKAN_HPP_NOEXCEPT
14292  {
14293  std::size_t seed = 0;
14294  VULKAN_HPP_HASH_COMBINE( seed, semaphoreWaitInfo.sType );
14295  VULKAN_HPP_HASH_COMBINE( seed, semaphoreWaitInfo.pNext );
14296  VULKAN_HPP_HASH_COMBINE( seed, semaphoreWaitInfo.flags );
14297  VULKAN_HPP_HASH_COMBINE( seed, semaphoreWaitInfo.semaphoreCount );
14298  VULKAN_HPP_HASH_COMBINE( seed, semaphoreWaitInfo.pSemaphores );
14299  VULKAN_HPP_HASH_COMBINE( seed, semaphoreWaitInfo.pValues );
14300  return seed;
14301  }
14302  };
14303 
14304  template <>
14305  struct hash<VULKAN_HPP_NAMESPACE::SetDescriptorBufferOffsetsInfoEXT>
14306  {
14307  std::size_t operator()( VULKAN_HPP_NAMESPACE::SetDescriptorBufferOffsetsInfoEXT const & setDescriptorBufferOffsetsInfoEXT ) const VULKAN_HPP_NOEXCEPT
14308  {
14309  std::size_t seed = 0;
14310  VULKAN_HPP_HASH_COMBINE( seed, setDescriptorBufferOffsetsInfoEXT.sType );
14311  VULKAN_HPP_HASH_COMBINE( seed, setDescriptorBufferOffsetsInfoEXT.pNext );
14312  VULKAN_HPP_HASH_COMBINE( seed, setDescriptorBufferOffsetsInfoEXT.stageFlags );
14313  VULKAN_HPP_HASH_COMBINE( seed, setDescriptorBufferOffsetsInfoEXT.layout );
14314  VULKAN_HPP_HASH_COMBINE( seed, setDescriptorBufferOffsetsInfoEXT.firstSet );
14315  VULKAN_HPP_HASH_COMBINE( seed, setDescriptorBufferOffsetsInfoEXT.setCount );
14316  VULKAN_HPP_HASH_COMBINE( seed, setDescriptorBufferOffsetsInfoEXT.pBufferIndices );
14317  VULKAN_HPP_HASH_COMBINE( seed, setDescriptorBufferOffsetsInfoEXT.pOffsets );
14318  return seed;
14319  }
14320  };
14321 
14322  template <>
14323  struct hash<VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV>
14324  {
14325  std::size_t operator()( VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV const & setLatencyMarkerInfoNV ) const VULKAN_HPP_NOEXCEPT
14326  {
14327  std::size_t seed = 0;
14328  VULKAN_HPP_HASH_COMBINE( seed, setLatencyMarkerInfoNV.sType );
14329  VULKAN_HPP_HASH_COMBINE( seed, setLatencyMarkerInfoNV.pNext );
14330  VULKAN_HPP_HASH_COMBINE( seed, setLatencyMarkerInfoNV.presentID );
14331  VULKAN_HPP_HASH_COMBINE( seed, setLatencyMarkerInfoNV.marker );
14332  return seed;
14333  }
14334  };
14335 
14336  template <>
14337  struct hash<VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV>
14338  {
14339  std::size_t operator()( VULKAN_HPP_NAMESPACE::SetStateFlagsIndirectCommandNV const & setStateFlagsIndirectCommandNV ) const VULKAN_HPP_NOEXCEPT
14340  {
14341  std::size_t seed = 0;
14342  VULKAN_HPP_HASH_COMBINE( seed, setStateFlagsIndirectCommandNV.data );
14343  return seed;
14344  }
14345  };
14346 
14347  template <>
14348  struct hash<VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT>
14349  {
14350  std::size_t operator()( VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT const & shaderCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
14351  {
14352  std::size_t seed = 0;
14353  VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.sType );
14354  VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.pNext );
14355  VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.flags );
14356  VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.stage );
14357  VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.nextStage );
14358  VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.codeType );
14359  VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.codeSize );
14360  VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.pCode );
14361  for ( const char * p = shaderCreateInfoEXT.pName; *p != '\0'; ++p )
14362  {
14363  VULKAN_HPP_HASH_COMBINE( seed, *p );
14364  }
14365  VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.setLayoutCount );
14366  VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.pSetLayouts );
14367  VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.pushConstantRangeCount );
14368  VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.pPushConstantRanges );
14369  VULKAN_HPP_HASH_COMBINE( seed, shaderCreateInfoEXT.pSpecializationInfo );
14370  return seed;
14371  }
14372  };
14373 
14374  template <>
14375  struct hash<VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo>
14376  {
14377  std::size_t operator()( VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo const & shaderModuleCreateInfo ) const VULKAN_HPP_NOEXCEPT
14378  {
14379  std::size_t seed = 0;
14380  VULKAN_HPP_HASH_COMBINE( seed, shaderModuleCreateInfo.sType );
14381  VULKAN_HPP_HASH_COMBINE( seed, shaderModuleCreateInfo.pNext );
14382  VULKAN_HPP_HASH_COMBINE( seed, shaderModuleCreateInfo.flags );
14383  VULKAN_HPP_HASH_COMBINE( seed, shaderModuleCreateInfo.codeSize );
14384  VULKAN_HPP_HASH_COMBINE( seed, shaderModuleCreateInfo.pCode );
14385  return seed;
14386  }
14387  };
14388 
14389  template <>
14390  struct hash<VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT>
14391  {
14392  std::size_t operator()( VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT const & shaderModuleIdentifierEXT ) const VULKAN_HPP_NOEXCEPT
14393  {
14394  std::size_t seed = 0;
14395  VULKAN_HPP_HASH_COMBINE( seed, shaderModuleIdentifierEXT.sType );
14396  VULKAN_HPP_HASH_COMBINE( seed, shaderModuleIdentifierEXT.pNext );
14397  VULKAN_HPP_HASH_COMBINE( seed, shaderModuleIdentifierEXT.identifierSize );
14398  for ( size_t i = 0; i < VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT; ++i )
14399  {
14400  VULKAN_HPP_HASH_COMBINE( seed, shaderModuleIdentifierEXT.identifier[i] );
14401  }
14402  return seed;
14403  }
14404  };
14405 
14406  template <>
14407  struct hash<VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT>
14408  {
14409  std::size_t
14410  operator()( VULKAN_HPP_NAMESPACE::ShaderModuleValidationCacheCreateInfoEXT const & shaderModuleValidationCacheCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
14411  {
14412  std::size_t seed = 0;
14413  VULKAN_HPP_HASH_COMBINE( seed, shaderModuleValidationCacheCreateInfoEXT.sType );
14414  VULKAN_HPP_HASH_COMBINE( seed, shaderModuleValidationCacheCreateInfoEXT.pNext );
14415  VULKAN_HPP_HASH_COMBINE( seed, shaderModuleValidationCacheCreateInfoEXT.validationCache );
14416  return seed;
14417  }
14418  };
14419 
14420  template <>
14421  struct hash<VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD>
14422  {
14423  std::size_t operator()( VULKAN_HPP_NAMESPACE::ShaderResourceUsageAMD const & shaderResourceUsageAMD ) const VULKAN_HPP_NOEXCEPT
14424  {
14425  std::size_t seed = 0;
14426  VULKAN_HPP_HASH_COMBINE( seed, shaderResourceUsageAMD.numUsedVgprs );
14427  VULKAN_HPP_HASH_COMBINE( seed, shaderResourceUsageAMD.numUsedSgprs );
14428  VULKAN_HPP_HASH_COMBINE( seed, shaderResourceUsageAMD.ldsSizePerLocalWorkGroup );
14429  VULKAN_HPP_HASH_COMBINE( seed, shaderResourceUsageAMD.ldsUsageSizeInBytes );
14430  VULKAN_HPP_HASH_COMBINE( seed, shaderResourceUsageAMD.scratchMemUsageInBytes );
14431  return seed;
14432  }
14433  };
14434 
14435  template <>
14436  struct hash<VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD>
14437  {
14438  std::size_t operator()( VULKAN_HPP_NAMESPACE::ShaderStatisticsInfoAMD const & shaderStatisticsInfoAMD ) const VULKAN_HPP_NOEXCEPT
14439  {
14440  std::size_t seed = 0;
14441  VULKAN_HPP_HASH_COMBINE( seed, shaderStatisticsInfoAMD.shaderStageMask );
14442  VULKAN_HPP_HASH_COMBINE( seed, shaderStatisticsInfoAMD.resourceUsage );
14443  VULKAN_HPP_HASH_COMBINE( seed, shaderStatisticsInfoAMD.numPhysicalVgprs );
14444  VULKAN_HPP_HASH_COMBINE( seed, shaderStatisticsInfoAMD.numPhysicalSgprs );
14445  VULKAN_HPP_HASH_COMBINE( seed, shaderStatisticsInfoAMD.numAvailableVgprs );
14446  VULKAN_HPP_HASH_COMBINE( seed, shaderStatisticsInfoAMD.numAvailableSgprs );
14447  for ( size_t i = 0; i < 3; ++i )
14448  {
14449  VULKAN_HPP_HASH_COMBINE( seed, shaderStatisticsInfoAMD.computeWorkGroupSize[i] );
14450  }
14451  return seed;
14452  }
14453  };
14454 
14455  template <>
14456  struct hash<VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR>
14457  {
14458  std::size_t operator()( VULKAN_HPP_NAMESPACE::SharedPresentSurfaceCapabilitiesKHR const & sharedPresentSurfaceCapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
14459  {
14460  std::size_t seed = 0;
14461  VULKAN_HPP_HASH_COMBINE( seed, sharedPresentSurfaceCapabilitiesKHR.sType );
14462  VULKAN_HPP_HASH_COMBINE( seed, sharedPresentSurfaceCapabilitiesKHR.pNext );
14463  VULKAN_HPP_HASH_COMBINE( seed, sharedPresentSurfaceCapabilitiesKHR.sharedPresentSupportedUsageFlags );
14464  return seed;
14465  }
14466  };
14467 
14468  template <>
14469  struct hash<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties>
14470  {
14471  std::size_t operator()( VULKAN_HPP_NAMESPACE::SparseImageFormatProperties const & sparseImageFormatProperties ) const VULKAN_HPP_NOEXCEPT
14472  {
14473  std::size_t seed = 0;
14474  VULKAN_HPP_HASH_COMBINE( seed, sparseImageFormatProperties.aspectMask );
14475  VULKAN_HPP_HASH_COMBINE( seed, sparseImageFormatProperties.imageGranularity );
14476  VULKAN_HPP_HASH_COMBINE( seed, sparseImageFormatProperties.flags );
14477  return seed;
14478  }
14479  };
14480 
14481  template <>
14482  struct hash<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2>
14483  {
14484  std::size_t operator()( VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 const & sparseImageFormatProperties2 ) const VULKAN_HPP_NOEXCEPT
14485  {
14486  std::size_t seed = 0;
14487  VULKAN_HPP_HASH_COMBINE( seed, sparseImageFormatProperties2.sType );
14488  VULKAN_HPP_HASH_COMBINE( seed, sparseImageFormatProperties2.pNext );
14489  VULKAN_HPP_HASH_COMBINE( seed, sparseImageFormatProperties2.properties );
14490  return seed;
14491  }
14492  };
14493 
14494  template <>
14495  struct hash<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements>
14496  {
14497  std::size_t operator()( VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements const & sparseImageMemoryRequirements ) const VULKAN_HPP_NOEXCEPT
14498  {
14499  std::size_t seed = 0;
14500  VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryRequirements.formatProperties );
14501  VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryRequirements.imageMipTailFirstLod );
14502  VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryRequirements.imageMipTailSize );
14503  VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryRequirements.imageMipTailOffset );
14504  VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryRequirements.imageMipTailStride );
14505  return seed;
14506  }
14507  };
14508 
14509  template <>
14510  struct hash<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>
14511  {
14512  std::size_t operator()( VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 const & sparseImageMemoryRequirements2 ) const VULKAN_HPP_NOEXCEPT
14513  {
14514  std::size_t seed = 0;
14515  VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryRequirements2.sType );
14516  VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryRequirements2.pNext );
14517  VULKAN_HPP_HASH_COMBINE( seed, sparseImageMemoryRequirements2.memoryRequirements );
14518  return seed;
14519  }
14520  };
14521 
14522 # if defined( VK_USE_PLATFORM_GGP )
14523  template <>
14524  struct hash<VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP>
14525  {
14526  std::size_t operator()( VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP const & streamDescriptorSurfaceCreateInfoGGP ) const VULKAN_HPP_NOEXCEPT
14527  {
14528  std::size_t seed = 0;
14529  VULKAN_HPP_HASH_COMBINE( seed, streamDescriptorSurfaceCreateInfoGGP.sType );
14530  VULKAN_HPP_HASH_COMBINE( seed, streamDescriptorSurfaceCreateInfoGGP.pNext );
14531  VULKAN_HPP_HASH_COMBINE( seed, streamDescriptorSurfaceCreateInfoGGP.flags );
14532  VULKAN_HPP_HASH_COMBINE( seed, streamDescriptorSurfaceCreateInfoGGP.streamDescriptor );
14533  return seed;
14534  }
14535  };
14536 # endif /*VK_USE_PLATFORM_GGP*/
14537 
14538  template <>
14539  struct hash<VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR>
14540  {
14541  std::size_t operator()( VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR const & stridedDeviceAddressRegionKHR ) const VULKAN_HPP_NOEXCEPT
14542  {
14543  std::size_t seed = 0;
14544  VULKAN_HPP_HASH_COMBINE( seed, stridedDeviceAddressRegionKHR.deviceAddress );
14545  VULKAN_HPP_HASH_COMBINE( seed, stridedDeviceAddressRegionKHR.stride );
14546  VULKAN_HPP_HASH_COMBINE( seed, stridedDeviceAddressRegionKHR.size );
14547  return seed;
14548  }
14549  };
14550 
14551  template <>
14552  struct hash<VULKAN_HPP_NAMESPACE::SubmitInfo>
14553  {
14554  std::size_t operator()( VULKAN_HPP_NAMESPACE::SubmitInfo const & submitInfo ) const VULKAN_HPP_NOEXCEPT
14555  {
14556  std::size_t seed = 0;
14557  VULKAN_HPP_HASH_COMBINE( seed, submitInfo.sType );
14558  VULKAN_HPP_HASH_COMBINE( seed, submitInfo.pNext );
14559  VULKAN_HPP_HASH_COMBINE( seed, submitInfo.waitSemaphoreCount );
14560  VULKAN_HPP_HASH_COMBINE( seed, submitInfo.pWaitSemaphores );
14561  VULKAN_HPP_HASH_COMBINE( seed, submitInfo.pWaitDstStageMask );
14562  VULKAN_HPP_HASH_COMBINE( seed, submitInfo.commandBufferCount );
14563  VULKAN_HPP_HASH_COMBINE( seed, submitInfo.pCommandBuffers );
14564  VULKAN_HPP_HASH_COMBINE( seed, submitInfo.signalSemaphoreCount );
14565  VULKAN_HPP_HASH_COMBINE( seed, submitInfo.pSignalSemaphores );
14566  return seed;
14567  }
14568  };
14569 
14570  template <>
14571  struct hash<VULKAN_HPP_NAMESPACE::SubmitInfo2>
14572  {
14573  std::size_t operator()( VULKAN_HPP_NAMESPACE::SubmitInfo2 const & submitInfo2 ) const VULKAN_HPP_NOEXCEPT
14574  {
14575  std::size_t seed = 0;
14576  VULKAN_HPP_HASH_COMBINE( seed, submitInfo2.sType );
14577  VULKAN_HPP_HASH_COMBINE( seed, submitInfo2.pNext );
14578  VULKAN_HPP_HASH_COMBINE( seed, submitInfo2.flags );
14579  VULKAN_HPP_HASH_COMBINE( seed, submitInfo2.waitSemaphoreInfoCount );
14580  VULKAN_HPP_HASH_COMBINE( seed, submitInfo2.pWaitSemaphoreInfos );
14581  VULKAN_HPP_HASH_COMBINE( seed, submitInfo2.commandBufferInfoCount );
14582  VULKAN_HPP_HASH_COMBINE( seed, submitInfo2.pCommandBufferInfos );
14583  VULKAN_HPP_HASH_COMBINE( seed, submitInfo2.signalSemaphoreInfoCount );
14584  VULKAN_HPP_HASH_COMBINE( seed, submitInfo2.pSignalSemaphoreInfos );
14585  return seed;
14586  }
14587  };
14588 
14589  template <>
14590  struct hash<VULKAN_HPP_NAMESPACE::SubpassBeginInfo>
14591  {
14592  std::size_t operator()( VULKAN_HPP_NAMESPACE::SubpassBeginInfo const & subpassBeginInfo ) const VULKAN_HPP_NOEXCEPT
14593  {
14594  std::size_t seed = 0;
14595  VULKAN_HPP_HASH_COMBINE( seed, subpassBeginInfo.sType );
14596  VULKAN_HPP_HASH_COMBINE( seed, subpassBeginInfo.pNext );
14597  VULKAN_HPP_HASH_COMBINE( seed, subpassBeginInfo.contents );
14598  return seed;
14599  }
14600  };
14601 
14602  template <>
14603  struct hash<VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve>
14604  {
14605  std::size_t
14606  operator()( VULKAN_HPP_NAMESPACE::SubpassDescriptionDepthStencilResolve const & subpassDescriptionDepthStencilResolve ) const VULKAN_HPP_NOEXCEPT
14607  {
14608  std::size_t seed = 0;
14609  VULKAN_HPP_HASH_COMBINE( seed, subpassDescriptionDepthStencilResolve.sType );
14610  VULKAN_HPP_HASH_COMBINE( seed, subpassDescriptionDepthStencilResolve.pNext );
14611  VULKAN_HPP_HASH_COMBINE( seed, subpassDescriptionDepthStencilResolve.depthResolveMode );
14612  VULKAN_HPP_HASH_COMBINE( seed, subpassDescriptionDepthStencilResolve.stencilResolveMode );
14613  VULKAN_HPP_HASH_COMBINE( seed, subpassDescriptionDepthStencilResolve.pDepthStencilResolveAttachment );
14614  return seed;
14615  }
14616  };
14617 
14618  template <>
14619  struct hash<VULKAN_HPP_NAMESPACE::SubpassEndInfo>
14620  {
14621  std::size_t operator()( VULKAN_HPP_NAMESPACE::SubpassEndInfo const & subpassEndInfo ) const VULKAN_HPP_NOEXCEPT
14622  {
14623  std::size_t seed = 0;
14624  VULKAN_HPP_HASH_COMBINE( seed, subpassEndInfo.sType );
14625  VULKAN_HPP_HASH_COMBINE( seed, subpassEndInfo.pNext );
14626  return seed;
14627  }
14628  };
14629 
14630  template <>
14631  struct hash<VULKAN_HPP_NAMESPACE::SubpassFragmentDensityMapOffsetEndInfoQCOM>
14632  {
14633  std::size_t operator()( VULKAN_HPP_NAMESPACE::SubpassFragmentDensityMapOffsetEndInfoQCOM const & subpassFragmentDensityMapOffsetEndInfoQCOM ) const
14635  {
14636  std::size_t seed = 0;
14637  VULKAN_HPP_HASH_COMBINE( seed, subpassFragmentDensityMapOffsetEndInfoQCOM.sType );
14638  VULKAN_HPP_HASH_COMBINE( seed, subpassFragmentDensityMapOffsetEndInfoQCOM.pNext );
14639  VULKAN_HPP_HASH_COMBINE( seed, subpassFragmentDensityMapOffsetEndInfoQCOM.fragmentDensityOffsetCount );
14640  VULKAN_HPP_HASH_COMBINE( seed, subpassFragmentDensityMapOffsetEndInfoQCOM.pFragmentDensityOffsets );
14641  return seed;
14642  }
14643  };
14644 
14645  template <>
14646  struct hash<VULKAN_HPP_NAMESPACE::SubpassResolvePerformanceQueryEXT>
14647  {
14648  std::size_t operator()( VULKAN_HPP_NAMESPACE::SubpassResolvePerformanceQueryEXT const & subpassResolvePerformanceQueryEXT ) const VULKAN_HPP_NOEXCEPT
14649  {
14650  std::size_t seed = 0;
14651  VULKAN_HPP_HASH_COMBINE( seed, subpassResolvePerformanceQueryEXT.sType );
14652  VULKAN_HPP_HASH_COMBINE( seed, subpassResolvePerformanceQueryEXT.pNext );
14653  VULKAN_HPP_HASH_COMBINE( seed, subpassResolvePerformanceQueryEXT.optimal );
14654  return seed;
14655  }
14656  };
14657 
14658  template <>
14659  struct hash<VULKAN_HPP_NAMESPACE::SubpassShadingPipelineCreateInfoHUAWEI>
14660  {
14661  std::size_t
14662  operator()( VULKAN_HPP_NAMESPACE::SubpassShadingPipelineCreateInfoHUAWEI const & subpassShadingPipelineCreateInfoHUAWEI ) const VULKAN_HPP_NOEXCEPT
14663  {
14664  std::size_t seed = 0;
14665  VULKAN_HPP_HASH_COMBINE( seed, subpassShadingPipelineCreateInfoHUAWEI.sType );
14666  VULKAN_HPP_HASH_COMBINE( seed, subpassShadingPipelineCreateInfoHUAWEI.pNext );
14667  VULKAN_HPP_HASH_COMBINE( seed, subpassShadingPipelineCreateInfoHUAWEI.renderPass );
14668  VULKAN_HPP_HASH_COMBINE( seed, subpassShadingPipelineCreateInfoHUAWEI.subpass );
14669  return seed;
14670  }
14671  };
14672 
14673  template <>
14674  struct hash<VULKAN_HPP_NAMESPACE::SubresourceHostMemcpySizeEXT>
14675  {
14676  std::size_t operator()( VULKAN_HPP_NAMESPACE::SubresourceHostMemcpySizeEXT const & subresourceHostMemcpySizeEXT ) const VULKAN_HPP_NOEXCEPT
14677  {
14678  std::size_t seed = 0;
14679  VULKAN_HPP_HASH_COMBINE( seed, subresourceHostMemcpySizeEXT.sType );
14680  VULKAN_HPP_HASH_COMBINE( seed, subresourceHostMemcpySizeEXT.pNext );
14681  VULKAN_HPP_HASH_COMBINE( seed, subresourceHostMemcpySizeEXT.size );
14682  return seed;
14683  }
14684  };
14685 
14686  template <>
14687  struct hash<VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR>
14688  {
14689  std::size_t operator()( VULKAN_HPP_NAMESPACE::SubresourceLayout2KHR const & subresourceLayout2KHR ) const VULKAN_HPP_NOEXCEPT
14690  {
14691  std::size_t seed = 0;
14692  VULKAN_HPP_HASH_COMBINE( seed, subresourceLayout2KHR.sType );
14693  VULKAN_HPP_HASH_COMBINE( seed, subresourceLayout2KHR.pNext );
14694  VULKAN_HPP_HASH_COMBINE( seed, subresourceLayout2KHR.subresourceLayout );
14695  return seed;
14696  }
14697  };
14698 
14699  template <>
14700  struct hash<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT>
14701  {
14702  std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT const & surfaceCapabilities2EXT ) const VULKAN_HPP_NOEXCEPT
14703  {
14704  std::size_t seed = 0;
14705  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.sType );
14706  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.pNext );
14707  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.minImageCount );
14708  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.maxImageCount );
14709  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.currentExtent );
14710  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.minImageExtent );
14711  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.maxImageExtent );
14712  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.maxImageArrayLayers );
14713  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.supportedTransforms );
14714  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.currentTransform );
14715  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.supportedCompositeAlpha );
14716  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.supportedUsageFlags );
14717  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2EXT.supportedSurfaceCounters );
14718  return seed;
14719  }
14720  };
14721 
14722  template <>
14723  struct hash<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR>
14724  {
14725  std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR const & surfaceCapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
14726  {
14727  std::size_t seed = 0;
14728  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesKHR.minImageCount );
14729  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesKHR.maxImageCount );
14730  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesKHR.currentExtent );
14731  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesKHR.minImageExtent );
14732  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesKHR.maxImageExtent );
14733  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesKHR.maxImageArrayLayers );
14734  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesKHR.supportedTransforms );
14735  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesKHR.currentTransform );
14736  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesKHR.supportedCompositeAlpha );
14737  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesKHR.supportedUsageFlags );
14738  return seed;
14739  }
14740  };
14741 
14742  template <>
14743  struct hash<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR>
14744  {
14745  std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR const & surfaceCapabilities2KHR ) const VULKAN_HPP_NOEXCEPT
14746  {
14747  std::size_t seed = 0;
14748  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2KHR.sType );
14749  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2KHR.pNext );
14750  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilities2KHR.surfaceCapabilities );
14751  return seed;
14752  }
14753  };
14754 
14755 # if defined( VK_USE_PLATFORM_WIN32_KHR )
14756  template <>
14757  struct hash<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT>
14758  {
14759  std::size_t
14760  operator()( VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesFullScreenExclusiveEXT const & surfaceCapabilitiesFullScreenExclusiveEXT ) const VULKAN_HPP_NOEXCEPT
14761  {
14762  std::size_t seed = 0;
14763  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesFullScreenExclusiveEXT.sType );
14764  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesFullScreenExclusiveEXT.pNext );
14765  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesFullScreenExclusiveEXT.fullScreenExclusiveSupported );
14766  return seed;
14767  }
14768  };
14769 # endif /*VK_USE_PLATFORM_WIN32_KHR*/
14770 
14771  template <>
14772  struct hash<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesPresentBarrierNV>
14773  {
14774  std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesPresentBarrierNV const & surfaceCapabilitiesPresentBarrierNV ) const VULKAN_HPP_NOEXCEPT
14775  {
14776  std::size_t seed = 0;
14777  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesPresentBarrierNV.sType );
14778  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesPresentBarrierNV.pNext );
14779  VULKAN_HPP_HASH_COMBINE( seed, surfaceCapabilitiesPresentBarrierNV.presentBarrierSupported );
14780  return seed;
14781  }
14782  };
14783 
14784  template <>
14785  struct hash<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR>
14786  {
14787  std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfaceFormatKHR const & surfaceFormatKHR ) const VULKAN_HPP_NOEXCEPT
14788  {
14789  std::size_t seed = 0;
14790  VULKAN_HPP_HASH_COMBINE( seed, surfaceFormatKHR.format );
14791  VULKAN_HPP_HASH_COMBINE( seed, surfaceFormatKHR.colorSpace );
14792  return seed;
14793  }
14794  };
14795 
14796  template <>
14797  struct hash<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR>
14798  {
14799  std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR const & surfaceFormat2KHR ) const VULKAN_HPP_NOEXCEPT
14800  {
14801  std::size_t seed = 0;
14802  VULKAN_HPP_HASH_COMBINE( seed, surfaceFormat2KHR.sType );
14803  VULKAN_HPP_HASH_COMBINE( seed, surfaceFormat2KHR.pNext );
14804  VULKAN_HPP_HASH_COMBINE( seed, surfaceFormat2KHR.surfaceFormat );
14805  return seed;
14806  }
14807  };
14808 
14809 # if defined( VK_USE_PLATFORM_WIN32_KHR )
14810  template <>
14811  struct hash<VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT>
14812  {
14813  std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveInfoEXT const & surfaceFullScreenExclusiveInfoEXT ) const VULKAN_HPP_NOEXCEPT
14814  {
14815  std::size_t seed = 0;
14816  VULKAN_HPP_HASH_COMBINE( seed, surfaceFullScreenExclusiveInfoEXT.sType );
14817  VULKAN_HPP_HASH_COMBINE( seed, surfaceFullScreenExclusiveInfoEXT.pNext );
14818  VULKAN_HPP_HASH_COMBINE( seed, surfaceFullScreenExclusiveInfoEXT.fullScreenExclusive );
14819  return seed;
14820  }
14821  };
14822 # endif /*VK_USE_PLATFORM_WIN32_KHR*/
14823 
14824 # if defined( VK_USE_PLATFORM_WIN32_KHR )
14825  template <>
14826  struct hash<VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT>
14827  {
14828  std::size_t
14829  operator()( VULKAN_HPP_NAMESPACE::SurfaceFullScreenExclusiveWin32InfoEXT const & surfaceFullScreenExclusiveWin32InfoEXT ) const VULKAN_HPP_NOEXCEPT
14830  {
14831  std::size_t seed = 0;
14832  VULKAN_HPP_HASH_COMBINE( seed, surfaceFullScreenExclusiveWin32InfoEXT.sType );
14833  VULKAN_HPP_HASH_COMBINE( seed, surfaceFullScreenExclusiveWin32InfoEXT.pNext );
14834  VULKAN_HPP_HASH_COMBINE( seed, surfaceFullScreenExclusiveWin32InfoEXT.hmonitor );
14835  return seed;
14836  }
14837  };
14838 # endif /*VK_USE_PLATFORM_WIN32_KHR*/
14839 
14840  template <>
14841  struct hash<VULKAN_HPP_NAMESPACE::SurfacePresentModeCompatibilityEXT>
14842  {
14843  std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfacePresentModeCompatibilityEXT const & surfacePresentModeCompatibilityEXT ) const VULKAN_HPP_NOEXCEPT
14844  {
14845  std::size_t seed = 0;
14846  VULKAN_HPP_HASH_COMBINE( seed, surfacePresentModeCompatibilityEXT.sType );
14847  VULKAN_HPP_HASH_COMBINE( seed, surfacePresentModeCompatibilityEXT.pNext );
14848  VULKAN_HPP_HASH_COMBINE( seed, surfacePresentModeCompatibilityEXT.presentModeCount );
14849  VULKAN_HPP_HASH_COMBINE( seed, surfacePresentModeCompatibilityEXT.pPresentModes );
14850  return seed;
14851  }
14852  };
14853 
14854  template <>
14855  struct hash<VULKAN_HPP_NAMESPACE::SurfacePresentModeEXT>
14856  {
14857  std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfacePresentModeEXT const & surfacePresentModeEXT ) const VULKAN_HPP_NOEXCEPT
14858  {
14859  std::size_t seed = 0;
14860  VULKAN_HPP_HASH_COMBINE( seed, surfacePresentModeEXT.sType );
14861  VULKAN_HPP_HASH_COMBINE( seed, surfacePresentModeEXT.pNext );
14862  VULKAN_HPP_HASH_COMBINE( seed, surfacePresentModeEXT.presentMode );
14863  return seed;
14864  }
14865  };
14866 
14867  template <>
14868  struct hash<VULKAN_HPP_NAMESPACE::SurfacePresentScalingCapabilitiesEXT>
14869  {
14870  std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfacePresentScalingCapabilitiesEXT const & surfacePresentScalingCapabilitiesEXT ) const VULKAN_HPP_NOEXCEPT
14871  {
14872  std::size_t seed = 0;
14873  VULKAN_HPP_HASH_COMBINE( seed, surfacePresentScalingCapabilitiesEXT.sType );
14874  VULKAN_HPP_HASH_COMBINE( seed, surfacePresentScalingCapabilitiesEXT.pNext );
14875  VULKAN_HPP_HASH_COMBINE( seed, surfacePresentScalingCapabilitiesEXT.supportedPresentScaling );
14876  VULKAN_HPP_HASH_COMBINE( seed, surfacePresentScalingCapabilitiesEXT.supportedPresentGravityX );
14877  VULKAN_HPP_HASH_COMBINE( seed, surfacePresentScalingCapabilitiesEXT.supportedPresentGravityY );
14878  VULKAN_HPP_HASH_COMBINE( seed, surfacePresentScalingCapabilitiesEXT.minScaledImageExtent );
14879  VULKAN_HPP_HASH_COMBINE( seed, surfacePresentScalingCapabilitiesEXT.maxScaledImageExtent );
14880  return seed;
14881  }
14882  };
14883 
14884  template <>
14885  struct hash<VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR>
14886  {
14887  std::size_t operator()( VULKAN_HPP_NAMESPACE::SurfaceProtectedCapabilitiesKHR const & surfaceProtectedCapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
14888  {
14889  std::size_t seed = 0;
14890  VULKAN_HPP_HASH_COMBINE( seed, surfaceProtectedCapabilitiesKHR.sType );
14891  VULKAN_HPP_HASH_COMBINE( seed, surfaceProtectedCapabilitiesKHR.pNext );
14892  VULKAN_HPP_HASH_COMBINE( seed, surfaceProtectedCapabilitiesKHR.supportsProtected );
14893  return seed;
14894  }
14895  };
14896 
14897  template <>
14898  struct hash<VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT>
14899  {
14900  std::size_t operator()( VULKAN_HPP_NAMESPACE::SwapchainCounterCreateInfoEXT const & swapchainCounterCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
14901  {
14902  std::size_t seed = 0;
14903  VULKAN_HPP_HASH_COMBINE( seed, swapchainCounterCreateInfoEXT.sType );
14904  VULKAN_HPP_HASH_COMBINE( seed, swapchainCounterCreateInfoEXT.pNext );
14905  VULKAN_HPP_HASH_COMBINE( seed, swapchainCounterCreateInfoEXT.surfaceCounters );
14906  return seed;
14907  }
14908  };
14909 
14910  template <>
14911  struct hash<VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR>
14912  {
14913  std::size_t operator()( VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR const & swapchainCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
14914  {
14915  std::size_t seed = 0;
14916  VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.sType );
14917  VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.pNext );
14918  VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.flags );
14919  VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.surface );
14920  VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.minImageCount );
14921  VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.imageFormat );
14922  VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.imageColorSpace );
14923  VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.imageExtent );
14924  VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.imageArrayLayers );
14925  VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.imageUsage );
14926  VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.imageSharingMode );
14927  VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.queueFamilyIndexCount );
14928  VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.pQueueFamilyIndices );
14929  VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.preTransform );
14930  VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.compositeAlpha );
14931  VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.presentMode );
14932  VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.clipped );
14933  VULKAN_HPP_HASH_COMBINE( seed, swapchainCreateInfoKHR.oldSwapchain );
14934  return seed;
14935  }
14936  };
14937 
14938  template <>
14939  struct hash<VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD>
14940  {
14941  std::size_t
14942  operator()( VULKAN_HPP_NAMESPACE::SwapchainDisplayNativeHdrCreateInfoAMD const & swapchainDisplayNativeHdrCreateInfoAMD ) const VULKAN_HPP_NOEXCEPT
14943  {
14944  std::size_t seed = 0;
14945  VULKAN_HPP_HASH_COMBINE( seed, swapchainDisplayNativeHdrCreateInfoAMD.sType );
14946  VULKAN_HPP_HASH_COMBINE( seed, swapchainDisplayNativeHdrCreateInfoAMD.pNext );
14947  VULKAN_HPP_HASH_COMBINE( seed, swapchainDisplayNativeHdrCreateInfoAMD.localDimmingEnable );
14948  return seed;
14949  }
14950  };
14951 
14952  template <>
14953  struct hash<VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV>
14954  {
14955  std::size_t operator()( VULKAN_HPP_NAMESPACE::SwapchainLatencyCreateInfoNV const & swapchainLatencyCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
14956  {
14957  std::size_t seed = 0;
14958  VULKAN_HPP_HASH_COMBINE( seed, swapchainLatencyCreateInfoNV.sType );
14959  VULKAN_HPP_HASH_COMBINE( seed, swapchainLatencyCreateInfoNV.pNext );
14960  VULKAN_HPP_HASH_COMBINE( seed, swapchainLatencyCreateInfoNV.latencyModeEnable );
14961  return seed;
14962  }
14963  };
14964 
14965  template <>
14966  struct hash<VULKAN_HPP_NAMESPACE::SwapchainPresentBarrierCreateInfoNV>
14967  {
14968  std::size_t operator()( VULKAN_HPP_NAMESPACE::SwapchainPresentBarrierCreateInfoNV const & swapchainPresentBarrierCreateInfoNV ) const VULKAN_HPP_NOEXCEPT
14969  {
14970  std::size_t seed = 0;
14971  VULKAN_HPP_HASH_COMBINE( seed, swapchainPresentBarrierCreateInfoNV.sType );
14972  VULKAN_HPP_HASH_COMBINE( seed, swapchainPresentBarrierCreateInfoNV.pNext );
14973  VULKAN_HPP_HASH_COMBINE( seed, swapchainPresentBarrierCreateInfoNV.presentBarrierEnable );
14974  return seed;
14975  }
14976  };
14977 
14978  template <>
14979  struct hash<VULKAN_HPP_NAMESPACE::SwapchainPresentFenceInfoEXT>
14980  {
14981  std::size_t operator()( VULKAN_HPP_NAMESPACE::SwapchainPresentFenceInfoEXT const & swapchainPresentFenceInfoEXT ) const VULKAN_HPP_NOEXCEPT
14982  {
14983  std::size_t seed = 0;
14984  VULKAN_HPP_HASH_COMBINE( seed, swapchainPresentFenceInfoEXT.sType );
14985  VULKAN_HPP_HASH_COMBINE( seed, swapchainPresentFenceInfoEXT.pNext );
14986  VULKAN_HPP_HASH_COMBINE( seed, swapchainPresentFenceInfoEXT.swapchainCount );
14987  VULKAN_HPP_HASH_COMBINE( seed, swapchainPresentFenceInfoEXT.pFences );
14988  return seed;
14989  }
14990  };
14991 
14992  template <>
14993  struct hash<VULKAN_HPP_NAMESPACE::SwapchainPresentModeInfoEXT>
14994  {
14995  std::size_t operator()( VULKAN_HPP_NAMESPACE::SwapchainPresentModeInfoEXT const & swapchainPresentModeInfoEXT ) const VULKAN_HPP_NOEXCEPT
14996  {
14997  std::size_t seed = 0;
14998  VULKAN_HPP_HASH_COMBINE( seed, swapchainPresentModeInfoEXT.sType );
14999  VULKAN_HPP_HASH_COMBINE( seed, swapchainPresentModeInfoEXT.pNext );
15000  VULKAN_HPP_HASH_COMBINE( seed, swapchainPresentModeInfoEXT.swapchainCount );
15001  VULKAN_HPP_HASH_COMBINE( seed, swapchainPresentModeInfoEXT.pPresentModes );
15002  return seed;
15003  }
15004  };
15005 
15006  template <>
15007  struct hash<VULKAN_HPP_NAMESPACE::SwapchainPresentModesCreateInfoEXT>
15008  {
15009  std::size_t operator()( VULKAN_HPP_NAMESPACE::SwapchainPresentModesCreateInfoEXT const & swapchainPresentModesCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
15010  {
15011  std::size_t seed = 0;
15012  VULKAN_HPP_HASH_COMBINE( seed, swapchainPresentModesCreateInfoEXT.sType );
15013  VULKAN_HPP_HASH_COMBINE( seed, swapchainPresentModesCreateInfoEXT.pNext );
15014  VULKAN_HPP_HASH_COMBINE( seed, swapchainPresentModesCreateInfoEXT.presentModeCount );
15015  VULKAN_HPP_HASH_COMBINE( seed, swapchainPresentModesCreateInfoEXT.pPresentModes );
15016  return seed;
15017  }
15018  };
15019 
15020  template <>
15021  struct hash<VULKAN_HPP_NAMESPACE::SwapchainPresentScalingCreateInfoEXT>
15022  {
15023  std::size_t operator()( VULKAN_HPP_NAMESPACE::SwapchainPresentScalingCreateInfoEXT const & swapchainPresentScalingCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
15024  {
15025  std::size_t seed = 0;
15026  VULKAN_HPP_HASH_COMBINE( seed, swapchainPresentScalingCreateInfoEXT.sType );
15027  VULKAN_HPP_HASH_COMBINE( seed, swapchainPresentScalingCreateInfoEXT.pNext );
15028  VULKAN_HPP_HASH_COMBINE( seed, swapchainPresentScalingCreateInfoEXT.scalingBehavior );
15029  VULKAN_HPP_HASH_COMBINE( seed, swapchainPresentScalingCreateInfoEXT.presentGravityX );
15030  VULKAN_HPP_HASH_COMBINE( seed, swapchainPresentScalingCreateInfoEXT.presentGravityY );
15031  return seed;
15032  }
15033  };
15034 
15035  template <>
15036  struct hash<VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD>
15037  {
15038  std::size_t operator()( VULKAN_HPP_NAMESPACE::TextureLODGatherFormatPropertiesAMD const & textureLODGatherFormatPropertiesAMD ) const VULKAN_HPP_NOEXCEPT
15039  {
15040  std::size_t seed = 0;
15041  VULKAN_HPP_HASH_COMBINE( seed, textureLODGatherFormatPropertiesAMD.sType );
15042  VULKAN_HPP_HASH_COMBINE( seed, textureLODGatherFormatPropertiesAMD.pNext );
15043  VULKAN_HPP_HASH_COMBINE( seed, textureLODGatherFormatPropertiesAMD.supportsTextureGatherLODBiasAMD );
15044  return seed;
15045  }
15046  };
15047 
15048  template <>
15049  struct hash<VULKAN_HPP_NAMESPACE::TilePropertiesQCOM>
15050  {
15051  std::size_t operator()( VULKAN_HPP_NAMESPACE::TilePropertiesQCOM const & tilePropertiesQCOM ) const VULKAN_HPP_NOEXCEPT
15052  {
15053  std::size_t seed = 0;
15054  VULKAN_HPP_HASH_COMBINE( seed, tilePropertiesQCOM.sType );
15055  VULKAN_HPP_HASH_COMBINE( seed, tilePropertiesQCOM.pNext );
15056  VULKAN_HPP_HASH_COMBINE( seed, tilePropertiesQCOM.tileSize );
15057  VULKAN_HPP_HASH_COMBINE( seed, tilePropertiesQCOM.apronSize );
15058  VULKAN_HPP_HASH_COMBINE( seed, tilePropertiesQCOM.origin );
15059  return seed;
15060  }
15061  };
15062 
15063  template <>
15064  struct hash<VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo>
15065  {
15066  std::size_t operator()( VULKAN_HPP_NAMESPACE::TimelineSemaphoreSubmitInfo const & timelineSemaphoreSubmitInfo ) const VULKAN_HPP_NOEXCEPT
15067  {
15068  std::size_t seed = 0;
15069  VULKAN_HPP_HASH_COMBINE( seed, timelineSemaphoreSubmitInfo.sType );
15070  VULKAN_HPP_HASH_COMBINE( seed, timelineSemaphoreSubmitInfo.pNext );
15071  VULKAN_HPP_HASH_COMBINE( seed, timelineSemaphoreSubmitInfo.waitSemaphoreValueCount );
15072  VULKAN_HPP_HASH_COMBINE( seed, timelineSemaphoreSubmitInfo.pWaitSemaphoreValues );
15073  VULKAN_HPP_HASH_COMBINE( seed, timelineSemaphoreSubmitInfo.signalSemaphoreValueCount );
15074  VULKAN_HPP_HASH_COMBINE( seed, timelineSemaphoreSubmitInfo.pSignalSemaphoreValues );
15075  return seed;
15076  }
15077  };
15078 
15079  template <>
15080  struct hash<VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR>
15081  {
15082  std::size_t operator()( VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommand2KHR const & traceRaysIndirectCommand2KHR ) const VULKAN_HPP_NOEXCEPT
15083  {
15084  std::size_t seed = 0;
15085  VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.raygenShaderRecordAddress );
15086  VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.raygenShaderRecordSize );
15087  VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.missShaderBindingTableAddress );
15088  VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.missShaderBindingTableSize );
15089  VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.missShaderBindingTableStride );
15090  VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.hitShaderBindingTableAddress );
15091  VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.hitShaderBindingTableSize );
15092  VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.hitShaderBindingTableStride );
15093  VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.callableShaderBindingTableAddress );
15094  VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.callableShaderBindingTableSize );
15095  VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.callableShaderBindingTableStride );
15096  VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.width );
15097  VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.height );
15098  VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommand2KHR.depth );
15099  return seed;
15100  }
15101  };
15102 
15103  template <>
15104  struct hash<VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR>
15105  {
15106  std::size_t operator()( VULKAN_HPP_NAMESPACE::TraceRaysIndirectCommandKHR const & traceRaysIndirectCommandKHR ) const VULKAN_HPP_NOEXCEPT
15107  {
15108  std::size_t seed = 0;
15109  VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommandKHR.width );
15110  VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommandKHR.height );
15111  VULKAN_HPP_HASH_COMBINE( seed, traceRaysIndirectCommandKHR.depth );
15112  return seed;
15113  }
15114  };
15115 
15116  template <>
15117  struct hash<VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT>
15118  {
15119  std::size_t operator()( VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT const & validationCacheCreateInfoEXT ) const VULKAN_HPP_NOEXCEPT
15120  {
15121  std::size_t seed = 0;
15122  VULKAN_HPP_HASH_COMBINE( seed, validationCacheCreateInfoEXT.sType );
15123  VULKAN_HPP_HASH_COMBINE( seed, validationCacheCreateInfoEXT.pNext );
15124  VULKAN_HPP_HASH_COMBINE( seed, validationCacheCreateInfoEXT.flags );
15125  VULKAN_HPP_HASH_COMBINE( seed, validationCacheCreateInfoEXT.initialDataSize );
15126  VULKAN_HPP_HASH_COMBINE( seed, validationCacheCreateInfoEXT.pInitialData );
15127  return seed;
15128  }
15129  };
15130 
15131  template <>
15132  struct hash<VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT>
15133  {
15134  std::size_t operator()( VULKAN_HPP_NAMESPACE::ValidationFeaturesEXT const & validationFeaturesEXT ) const VULKAN_HPP_NOEXCEPT
15135  {
15136  std::size_t seed = 0;
15137  VULKAN_HPP_HASH_COMBINE( seed, validationFeaturesEXT.sType );
15138  VULKAN_HPP_HASH_COMBINE( seed, validationFeaturesEXT.pNext );
15139  VULKAN_HPP_HASH_COMBINE( seed, validationFeaturesEXT.enabledValidationFeatureCount );
15140  VULKAN_HPP_HASH_COMBINE( seed, validationFeaturesEXT.pEnabledValidationFeatures );
15141  VULKAN_HPP_HASH_COMBINE( seed, validationFeaturesEXT.disabledValidationFeatureCount );
15142  VULKAN_HPP_HASH_COMBINE( seed, validationFeaturesEXT.pDisabledValidationFeatures );
15143  return seed;
15144  }
15145  };
15146 
15147  template <>
15148  struct hash<VULKAN_HPP_NAMESPACE::ValidationFlagsEXT>
15149  {
15150  std::size_t operator()( VULKAN_HPP_NAMESPACE::ValidationFlagsEXT const & validationFlagsEXT ) const VULKAN_HPP_NOEXCEPT
15151  {
15152  std::size_t seed = 0;
15153  VULKAN_HPP_HASH_COMBINE( seed, validationFlagsEXT.sType );
15154  VULKAN_HPP_HASH_COMBINE( seed, validationFlagsEXT.pNext );
15155  VULKAN_HPP_HASH_COMBINE( seed, validationFlagsEXT.disabledValidationCheckCount );
15156  VULKAN_HPP_HASH_COMBINE( seed, validationFlagsEXT.pDisabledValidationChecks );
15157  return seed;
15158  }
15159  };
15160 
15161  template <>
15162  struct hash<VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT>
15163  {
15164  std::size_t operator()( VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT const & vertexInputAttributeDescription2EXT ) const VULKAN_HPP_NOEXCEPT
15165  {
15166  std::size_t seed = 0;
15167  VULKAN_HPP_HASH_COMBINE( seed, vertexInputAttributeDescription2EXT.sType );
15168  VULKAN_HPP_HASH_COMBINE( seed, vertexInputAttributeDescription2EXT.pNext );
15169  VULKAN_HPP_HASH_COMBINE( seed, vertexInputAttributeDescription2EXT.location );
15170  VULKAN_HPP_HASH_COMBINE( seed, vertexInputAttributeDescription2EXT.binding );
15171  VULKAN_HPP_HASH_COMBINE( seed, vertexInputAttributeDescription2EXT.format );
15172  VULKAN_HPP_HASH_COMBINE( seed, vertexInputAttributeDescription2EXT.offset );
15173  return seed;
15174  }
15175  };
15176 
15177  template <>
15178  struct hash<VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT>
15179  {
15180  std::size_t operator()( VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT const & vertexInputBindingDescription2EXT ) const VULKAN_HPP_NOEXCEPT
15181  {
15182  std::size_t seed = 0;
15183  VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDescription2EXT.sType );
15184  VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDescription2EXT.pNext );
15185  VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDescription2EXT.binding );
15186  VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDescription2EXT.stride );
15187  VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDescription2EXT.inputRate );
15188  VULKAN_HPP_HASH_COMBINE( seed, vertexInputBindingDescription2EXT.divisor );
15189  return seed;
15190  }
15191  };
15192 
15193 # if defined( VK_USE_PLATFORM_VI_NN )
15194  template <>
15195  struct hash<VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN>
15196  {
15197  std::size_t operator()( VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN const & viSurfaceCreateInfoNN ) const VULKAN_HPP_NOEXCEPT
15198  {
15199  std::size_t seed = 0;
15200  VULKAN_HPP_HASH_COMBINE( seed, viSurfaceCreateInfoNN.sType );
15201  VULKAN_HPP_HASH_COMBINE( seed, viSurfaceCreateInfoNN.pNext );
15202  VULKAN_HPP_HASH_COMBINE( seed, viSurfaceCreateInfoNN.flags );
15203  VULKAN_HPP_HASH_COMBINE( seed, viSurfaceCreateInfoNN.window );
15204  return seed;
15205  }
15206  };
15207 # endif /*VK_USE_PLATFORM_VI_NN*/
15208 
15209  template <>
15210  struct hash<VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR>
15211  {
15212  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoPictureResourceInfoKHR const & videoPictureResourceInfoKHR ) const VULKAN_HPP_NOEXCEPT
15213  {
15214  std::size_t seed = 0;
15215  VULKAN_HPP_HASH_COMBINE( seed, videoPictureResourceInfoKHR.sType );
15216  VULKAN_HPP_HASH_COMBINE( seed, videoPictureResourceInfoKHR.pNext );
15217  VULKAN_HPP_HASH_COMBINE( seed, videoPictureResourceInfoKHR.codedOffset );
15218  VULKAN_HPP_HASH_COMBINE( seed, videoPictureResourceInfoKHR.codedExtent );
15219  VULKAN_HPP_HASH_COMBINE( seed, videoPictureResourceInfoKHR.baseArrayLayer );
15220  VULKAN_HPP_HASH_COMBINE( seed, videoPictureResourceInfoKHR.imageViewBinding );
15221  return seed;
15222  }
15223  };
15224 
15225  template <>
15226  struct hash<VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR>
15227  {
15228  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoReferenceSlotInfoKHR const & videoReferenceSlotInfoKHR ) const VULKAN_HPP_NOEXCEPT
15229  {
15230  std::size_t seed = 0;
15231  VULKAN_HPP_HASH_COMBINE( seed, videoReferenceSlotInfoKHR.sType );
15232  VULKAN_HPP_HASH_COMBINE( seed, videoReferenceSlotInfoKHR.pNext );
15233  VULKAN_HPP_HASH_COMBINE( seed, videoReferenceSlotInfoKHR.slotIndex );
15234  VULKAN_HPP_HASH_COMBINE( seed, videoReferenceSlotInfoKHR.pPictureResource );
15235  return seed;
15236  }
15237  };
15238 
15239  template <>
15240  struct hash<VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR>
15241  {
15242  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR const & videoBeginCodingInfoKHR ) const VULKAN_HPP_NOEXCEPT
15243  {
15244  std::size_t seed = 0;
15245  VULKAN_HPP_HASH_COMBINE( seed, videoBeginCodingInfoKHR.sType );
15246  VULKAN_HPP_HASH_COMBINE( seed, videoBeginCodingInfoKHR.pNext );
15247  VULKAN_HPP_HASH_COMBINE( seed, videoBeginCodingInfoKHR.flags );
15248  VULKAN_HPP_HASH_COMBINE( seed, videoBeginCodingInfoKHR.videoSession );
15249  VULKAN_HPP_HASH_COMBINE( seed, videoBeginCodingInfoKHR.videoSessionParameters );
15250  VULKAN_HPP_HASH_COMBINE( seed, videoBeginCodingInfoKHR.referenceSlotCount );
15251  VULKAN_HPP_HASH_COMBINE( seed, videoBeginCodingInfoKHR.pReferenceSlots );
15252  return seed;
15253  }
15254  };
15255 
15256  template <>
15257  struct hash<VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR>
15258  {
15259  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR const & videoCapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
15260  {
15261  std::size_t seed = 0;
15262  VULKAN_HPP_HASH_COMBINE( seed, videoCapabilitiesKHR.sType );
15263  VULKAN_HPP_HASH_COMBINE( seed, videoCapabilitiesKHR.pNext );
15264  VULKAN_HPP_HASH_COMBINE( seed, videoCapabilitiesKHR.flags );
15265  VULKAN_HPP_HASH_COMBINE( seed, videoCapabilitiesKHR.minBitstreamBufferOffsetAlignment );
15266  VULKAN_HPP_HASH_COMBINE( seed, videoCapabilitiesKHR.minBitstreamBufferSizeAlignment );
15267  VULKAN_HPP_HASH_COMBINE( seed, videoCapabilitiesKHR.pictureAccessGranularity );
15268  VULKAN_HPP_HASH_COMBINE( seed, videoCapabilitiesKHR.minCodedExtent );
15269  VULKAN_HPP_HASH_COMBINE( seed, videoCapabilitiesKHR.maxCodedExtent );
15270  VULKAN_HPP_HASH_COMBINE( seed, videoCapabilitiesKHR.maxDpbSlots );
15271  VULKAN_HPP_HASH_COMBINE( seed, videoCapabilitiesKHR.maxActiveReferencePictures );
15272  VULKAN_HPP_HASH_COMBINE( seed, videoCapabilitiesKHR.stdHeaderVersion );
15273  return seed;
15274  }
15275  };
15276 
15277  template <>
15278  struct hash<VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR>
15279  {
15280  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR const & videoCodingControlInfoKHR ) const VULKAN_HPP_NOEXCEPT
15281  {
15282  std::size_t seed = 0;
15283  VULKAN_HPP_HASH_COMBINE( seed, videoCodingControlInfoKHR.sType );
15284  VULKAN_HPP_HASH_COMBINE( seed, videoCodingControlInfoKHR.pNext );
15285  VULKAN_HPP_HASH_COMBINE( seed, videoCodingControlInfoKHR.flags );
15286  return seed;
15287  }
15288  };
15289 
15290  template <>
15291  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeCapabilitiesKHR>
15292  {
15293  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeCapabilitiesKHR const & videoDecodeCapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
15294  {
15295  std::size_t seed = 0;
15296  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeCapabilitiesKHR.sType );
15297  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeCapabilitiesKHR.pNext );
15298  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeCapabilitiesKHR.flags );
15299  return seed;
15300  }
15301  };
15302 
15303  template <>
15304  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesKHR>
15305  {
15306  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264CapabilitiesKHR const & videoDecodeH264CapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
15307  {
15308  std::size_t seed = 0;
15309  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264CapabilitiesKHR.sType );
15310  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264CapabilitiesKHR.pNext );
15311  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264CapabilitiesKHR.maxLevelIdc );
15312  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264CapabilitiesKHR.fieldOffsetGranularity );
15313  return seed;
15314  }
15315  };
15316 
15317  template <>
15318  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoKHR>
15319  {
15320  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264DpbSlotInfoKHR const & videoDecodeH264DpbSlotInfoKHR ) const VULKAN_HPP_NOEXCEPT
15321  {
15322  std::size_t seed = 0;
15323  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264DpbSlotInfoKHR.sType );
15324  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264DpbSlotInfoKHR.pNext );
15325  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264DpbSlotInfoKHR.pStdReferenceInfo );
15326  return seed;
15327  }
15328  };
15329 
15330  template <>
15331  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR>
15332  {
15333  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264PictureInfoKHR const & videoDecodeH264PictureInfoKHR ) const VULKAN_HPP_NOEXCEPT
15334  {
15335  std::size_t seed = 0;
15336  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264PictureInfoKHR.sType );
15337  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264PictureInfoKHR.pNext );
15338  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264PictureInfoKHR.pStdPictureInfo );
15339  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264PictureInfoKHR.sliceCount );
15340  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264PictureInfoKHR.pSliceOffsets );
15341  return seed;
15342  }
15343  };
15344 
15345  template <>
15346  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoKHR>
15347  {
15348  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264ProfileInfoKHR const & videoDecodeH264ProfileInfoKHR ) const VULKAN_HPP_NOEXCEPT
15349  {
15350  std::size_t seed = 0;
15351  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264ProfileInfoKHR.sType );
15352  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264ProfileInfoKHR.pNext );
15353  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264ProfileInfoKHR.stdProfileIdc );
15354  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264ProfileInfoKHR.pictureLayout );
15355  return seed;
15356  }
15357  };
15358 
15359  template <>
15360  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR>
15361  {
15362  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersAddInfoKHR const & videoDecodeH264SessionParametersAddInfoKHR ) const
15364  {
15365  std::size_t seed = 0;
15366  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoKHR.sType );
15367  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoKHR.pNext );
15368  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoKHR.stdSPSCount );
15369  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoKHR.pStdSPSs );
15370  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoKHR.stdPPSCount );
15371  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersAddInfoKHR.pStdPPSs );
15372  return seed;
15373  }
15374  };
15375 
15376  template <>
15377  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoKHR>
15378  {
15379  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH264SessionParametersCreateInfoKHR const & videoDecodeH264SessionParametersCreateInfoKHR ) const
15381  {
15382  std::size_t seed = 0;
15383  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersCreateInfoKHR.sType );
15384  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersCreateInfoKHR.pNext );
15385  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersCreateInfoKHR.maxStdSPSCount );
15386  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersCreateInfoKHR.maxStdPPSCount );
15387  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH264SessionParametersCreateInfoKHR.pParametersAddInfo );
15388  return seed;
15389  }
15390  };
15391 
15392  template <>
15393  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesKHR>
15394  {
15395  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265CapabilitiesKHR const & videoDecodeH265CapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
15396  {
15397  std::size_t seed = 0;
15398  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265CapabilitiesKHR.sType );
15399  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265CapabilitiesKHR.pNext );
15400  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265CapabilitiesKHR.maxLevelIdc );
15401  return seed;
15402  }
15403  };
15404 
15405  template <>
15406  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoKHR>
15407  {
15408  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265DpbSlotInfoKHR const & videoDecodeH265DpbSlotInfoKHR ) const VULKAN_HPP_NOEXCEPT
15409  {
15410  std::size_t seed = 0;
15411  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265DpbSlotInfoKHR.sType );
15412  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265DpbSlotInfoKHR.pNext );
15413  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265DpbSlotInfoKHR.pStdReferenceInfo );
15414  return seed;
15415  }
15416  };
15417 
15418  template <>
15419  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR>
15420  {
15421  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265PictureInfoKHR const & videoDecodeH265PictureInfoKHR ) const VULKAN_HPP_NOEXCEPT
15422  {
15423  std::size_t seed = 0;
15424  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265PictureInfoKHR.sType );
15425  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265PictureInfoKHR.pNext );
15426  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265PictureInfoKHR.pStdPictureInfo );
15427  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265PictureInfoKHR.sliceSegmentCount );
15428  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265PictureInfoKHR.pSliceSegmentOffsets );
15429  return seed;
15430  }
15431  };
15432 
15433  template <>
15434  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoKHR>
15435  {
15436  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265ProfileInfoKHR const & videoDecodeH265ProfileInfoKHR ) const VULKAN_HPP_NOEXCEPT
15437  {
15438  std::size_t seed = 0;
15439  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265ProfileInfoKHR.sType );
15440  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265ProfileInfoKHR.pNext );
15441  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265ProfileInfoKHR.stdProfileIdc );
15442  return seed;
15443  }
15444  };
15445 
15446  template <>
15447  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR>
15448  {
15449  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersAddInfoKHR const & videoDecodeH265SessionParametersAddInfoKHR ) const
15451  {
15452  std::size_t seed = 0;
15453  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoKHR.sType );
15454  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoKHR.pNext );
15455  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoKHR.stdVPSCount );
15456  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoKHR.pStdVPSs );
15457  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoKHR.stdSPSCount );
15458  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoKHR.pStdSPSs );
15459  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoKHR.stdPPSCount );
15460  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersAddInfoKHR.pStdPPSs );
15461  return seed;
15462  }
15463  };
15464 
15465  template <>
15466  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR>
15467  {
15468  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeH265SessionParametersCreateInfoKHR const & videoDecodeH265SessionParametersCreateInfoKHR ) const
15470  {
15471  std::size_t seed = 0;
15472  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoKHR.sType );
15473  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoKHR.pNext );
15474  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoKHR.maxStdVPSCount );
15475  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoKHR.maxStdSPSCount );
15476  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoKHR.maxStdPPSCount );
15477  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeH265SessionParametersCreateInfoKHR.pParametersAddInfo );
15478  return seed;
15479  }
15480  };
15481 
15482  template <>
15483  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR>
15484  {
15485  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR const & videoDecodeInfoKHR ) const VULKAN_HPP_NOEXCEPT
15486  {
15487  std::size_t seed = 0;
15488  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeInfoKHR.sType );
15489  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeInfoKHR.pNext );
15490  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeInfoKHR.flags );
15491  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeInfoKHR.srcBuffer );
15492  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeInfoKHR.srcBufferOffset );
15493  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeInfoKHR.srcBufferRange );
15494  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeInfoKHR.dstPictureResource );
15495  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeInfoKHR.pSetupReferenceSlot );
15496  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeInfoKHR.referenceSlotCount );
15497  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeInfoKHR.pReferenceSlots );
15498  return seed;
15499  }
15500  };
15501 
15502  template <>
15503  struct hash<VULKAN_HPP_NAMESPACE::VideoDecodeUsageInfoKHR>
15504  {
15505  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoDecodeUsageInfoKHR const & videoDecodeUsageInfoKHR ) const VULKAN_HPP_NOEXCEPT
15506  {
15507  std::size_t seed = 0;
15508  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeUsageInfoKHR.sType );
15509  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeUsageInfoKHR.pNext );
15510  VULKAN_HPP_HASH_COMBINE( seed, videoDecodeUsageInfoKHR.videoUsageHints );
15511  return seed;
15512  }
15513  };
15514 
15515  template <>
15516  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeCapabilitiesKHR>
15517  {
15518  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeCapabilitiesKHR const & videoEncodeCapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
15519  {
15520  std::size_t seed = 0;
15521  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.sType );
15522  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.pNext );
15523  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.flags );
15524  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.rateControlModes );
15525  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.maxRateControlLayers );
15526  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.maxBitrate );
15527  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.maxQualityLevels );
15528  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.encodeInputPictureGranularity );
15529  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeCapabilitiesKHR.supportedEncodeFeedbackFlags );
15530  return seed;
15531  }
15532  };
15533 
15534  template <>
15535  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesKHR>
15536  {
15537  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264CapabilitiesKHR const & videoEncodeH264CapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
15538  {
15539  std::size_t seed = 0;
15540  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.sType );
15541  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.pNext );
15542  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.flags );
15543  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.maxLevelIdc );
15544  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.maxSliceCount );
15545  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.maxPPictureL0ReferenceCount );
15546  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.maxBPictureL0ReferenceCount );
15547  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.maxL1ReferenceCount );
15548  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.maxTemporalLayerCount );
15549  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.expectDyadicTemporalLayerPattern );
15550  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.minQp );
15551  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.maxQp );
15552  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.prefersGopRemainingFrames );
15553  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.requiresGopRemainingFrames );
15554  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264CapabilitiesKHR.stdSyntaxFlags );
15555  return seed;
15556  }
15557  };
15558 
15559  template <>
15560  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoKHR>
15561  {
15562  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264DpbSlotInfoKHR const & videoEncodeH264DpbSlotInfoKHR ) const VULKAN_HPP_NOEXCEPT
15563  {
15564  std::size_t seed = 0;
15565  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264DpbSlotInfoKHR.sType );
15566  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264DpbSlotInfoKHR.pNext );
15567  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264DpbSlotInfoKHR.pStdReferenceInfo );
15568  return seed;
15569  }
15570  };
15571 
15572  template <>
15573  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeKHR>
15574  {
15575  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264FrameSizeKHR const & videoEncodeH264FrameSizeKHR ) const VULKAN_HPP_NOEXCEPT
15576  {
15577  std::size_t seed = 0;
15578  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264FrameSizeKHR.frameISize );
15579  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264FrameSizeKHR.framePSize );
15580  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264FrameSizeKHR.frameBSize );
15581  return seed;
15582  }
15583  };
15584 
15585  template <>
15586  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoKHR>
15587  {
15588  std::size_t
15589  operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264GopRemainingFrameInfoKHR const & videoEncodeH264GopRemainingFrameInfoKHR ) const VULKAN_HPP_NOEXCEPT
15590  {
15591  std::size_t seed = 0;
15592  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264GopRemainingFrameInfoKHR.sType );
15593  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264GopRemainingFrameInfoKHR.pNext );
15594  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264GopRemainingFrameInfoKHR.useGopRemainingFrames );
15595  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264GopRemainingFrameInfoKHR.gopRemainingI );
15596  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264GopRemainingFrameInfoKHR.gopRemainingP );
15597  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264GopRemainingFrameInfoKHR.gopRemainingB );
15598  return seed;
15599  }
15600  };
15601 
15602  template <>
15603  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoKHR>
15604  {
15605  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264NaluSliceInfoKHR const & videoEncodeH264NaluSliceInfoKHR ) const VULKAN_HPP_NOEXCEPT
15606  {
15607  std::size_t seed = 0;
15608  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264NaluSliceInfoKHR.sType );
15609  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264NaluSliceInfoKHR.pNext );
15610  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264NaluSliceInfoKHR.constantQp );
15611  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264NaluSliceInfoKHR.pStdSliceHeader );
15612  return seed;
15613  }
15614  };
15615 
15616  template <>
15617  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoKHR>
15618  {
15619  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264PictureInfoKHR const & videoEncodeH264PictureInfoKHR ) const VULKAN_HPP_NOEXCEPT
15620  {
15621  std::size_t seed = 0;
15622  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264PictureInfoKHR.sType );
15623  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264PictureInfoKHR.pNext );
15624  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264PictureInfoKHR.naluSliceEntryCount );
15625  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264PictureInfoKHR.pNaluSliceEntries );
15626  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264PictureInfoKHR.pStdPictureInfo );
15627  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264PictureInfoKHR.generatePrefixNalu );
15628  return seed;
15629  }
15630  };
15631 
15632  template <>
15633  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoKHR>
15634  {
15635  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264ProfileInfoKHR const & videoEncodeH264ProfileInfoKHR ) const VULKAN_HPP_NOEXCEPT
15636  {
15637  std::size_t seed = 0;
15638  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ProfileInfoKHR.sType );
15639  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ProfileInfoKHR.pNext );
15640  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264ProfileInfoKHR.stdProfileIdc );
15641  return seed;
15642  }
15643  };
15644 
15645  template <>
15646  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264QpKHR>
15647  {
15648  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264QpKHR const & videoEncodeH264QpKHR ) const VULKAN_HPP_NOEXCEPT
15649  {
15650  std::size_t seed = 0;
15651  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QpKHR.qpI );
15652  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QpKHR.qpP );
15653  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QpKHR.qpB );
15654  return seed;
15655  }
15656  };
15657 
15658  template <>
15659  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264QualityLevelPropertiesKHR>
15660  {
15661  std::size_t
15662  operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264QualityLevelPropertiesKHR const & videoEncodeH264QualityLevelPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
15663  {
15664  std::size_t seed = 0;
15665  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QualityLevelPropertiesKHR.sType );
15666  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QualityLevelPropertiesKHR.pNext );
15667  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QualityLevelPropertiesKHR.preferredRateControlFlags );
15668  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QualityLevelPropertiesKHR.preferredGopFrameCount );
15669  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QualityLevelPropertiesKHR.preferredIdrPeriod );
15670  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QualityLevelPropertiesKHR.preferredConsecutiveBFrameCount );
15671  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QualityLevelPropertiesKHR.preferredTemporalLayerCount );
15672  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QualityLevelPropertiesKHR.preferredConstantQp );
15673  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QualityLevelPropertiesKHR.preferredMaxL0ReferenceCount );
15674  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QualityLevelPropertiesKHR.preferredMaxL1ReferenceCount );
15675  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264QualityLevelPropertiesKHR.preferredStdEntropyCodingModeFlag );
15676  return seed;
15677  }
15678  };
15679 
15680  template <>
15681  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoKHR>
15682  {
15683  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlInfoKHR const & videoEncodeH264RateControlInfoKHR ) const VULKAN_HPP_NOEXCEPT
15684  {
15685  std::size_t seed = 0;
15686  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoKHR.sType );
15687  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoKHR.pNext );
15688  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoKHR.flags );
15689  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoKHR.gopFrameCount );
15690  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoKHR.idrPeriod );
15691  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoKHR.consecutiveBFrameCount );
15692  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlInfoKHR.temporalLayerCount );
15693  return seed;
15694  }
15695  };
15696 
15697  template <>
15698  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoKHR>
15699  {
15700  std::size_t
15701  operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264RateControlLayerInfoKHR const & videoEncodeH264RateControlLayerInfoKHR ) const VULKAN_HPP_NOEXCEPT
15702  {
15703  std::size_t seed = 0;
15704  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoKHR.sType );
15705  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoKHR.pNext );
15706  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoKHR.useMinQp );
15707  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoKHR.minQp );
15708  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoKHR.useMaxQp );
15709  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoKHR.maxQp );
15710  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoKHR.useMaxFrameSize );
15711  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264RateControlLayerInfoKHR.maxFrameSize );
15712  return seed;
15713  }
15714  };
15715 
15716  template <>
15717  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoKHR>
15718  {
15719  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionCreateInfoKHR const & videoEncodeH264SessionCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
15720  {
15721  std::size_t seed = 0;
15722  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionCreateInfoKHR.sType );
15723  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionCreateInfoKHR.pNext );
15724  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionCreateInfoKHR.useMaxLevelIdc );
15725  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionCreateInfoKHR.maxLevelIdc );
15726  return seed;
15727  }
15728  };
15729 
15730  template <>
15731  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoKHR>
15732  {
15733  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersAddInfoKHR const & videoEncodeH264SessionParametersAddInfoKHR ) const
15735  {
15736  std::size_t seed = 0;
15737  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoKHR.sType );
15738  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoKHR.pNext );
15739  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoKHR.stdSPSCount );
15740  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoKHR.pStdSPSs );
15741  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoKHR.stdPPSCount );
15742  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersAddInfoKHR.pStdPPSs );
15743  return seed;
15744  }
15745  };
15746 
15747  template <>
15748  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoKHR>
15749  {
15750  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersCreateInfoKHR const & videoEncodeH264SessionParametersCreateInfoKHR ) const
15752  {
15753  std::size_t seed = 0;
15754  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersCreateInfoKHR.sType );
15755  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersCreateInfoKHR.pNext );
15756  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersCreateInfoKHR.maxStdSPSCount );
15757  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersCreateInfoKHR.maxStdPPSCount );
15758  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersCreateInfoKHR.pParametersAddInfo );
15759  return seed;
15760  }
15761  };
15762 
15763  template <>
15764  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersFeedbackInfoKHR>
15765  {
15766  std::size_t operator()(
15767  VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersFeedbackInfoKHR const & videoEncodeH264SessionParametersFeedbackInfoKHR ) const VULKAN_HPP_NOEXCEPT
15768  {
15769  std::size_t seed = 0;
15770  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersFeedbackInfoKHR.sType );
15771  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersFeedbackInfoKHR.pNext );
15772  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersFeedbackInfoKHR.hasStdSPSOverrides );
15773  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersFeedbackInfoKHR.hasStdPPSOverrides );
15774  return seed;
15775  }
15776  };
15777 
15778  template <>
15779  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoKHR>
15780  {
15781  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH264SessionParametersGetInfoKHR const & videoEncodeH264SessionParametersGetInfoKHR ) const
15783  {
15784  std::size_t seed = 0;
15785  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersGetInfoKHR.sType );
15786  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersGetInfoKHR.pNext );
15787  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersGetInfoKHR.writeStdSPS );
15788  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersGetInfoKHR.writeStdPPS );
15789  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersGetInfoKHR.stdSPSId );
15790  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH264SessionParametersGetInfoKHR.stdPPSId );
15791  return seed;
15792  }
15793  };
15794 
15795  template <>
15796  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesKHR>
15797  {
15798  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265CapabilitiesKHR const & videoEncodeH265CapabilitiesKHR ) const VULKAN_HPP_NOEXCEPT
15799  {
15800  std::size_t seed = 0;
15801  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.sType );
15802  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.pNext );
15803  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.flags );
15804  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.maxLevelIdc );
15805  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.maxSliceSegmentCount );
15806  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.maxTiles );
15807  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.ctbSizes );
15808  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.transformBlockSizes );
15809  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.maxPPictureL0ReferenceCount );
15810  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.maxBPictureL0ReferenceCount );
15811  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.maxL1ReferenceCount );
15812  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.maxSubLayerCount );
15813  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.expectDyadicTemporalSubLayerPattern );
15814  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.minQp );
15815  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.maxQp );
15816  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.prefersGopRemainingFrames );
15817  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.requiresGopRemainingFrames );
15818  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265CapabilitiesKHR.stdSyntaxFlags );
15819  return seed;
15820  }
15821  };
15822 
15823  template <>
15824  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoKHR>
15825  {
15826  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265DpbSlotInfoKHR const & videoEncodeH265DpbSlotInfoKHR ) const VULKAN_HPP_NOEXCEPT
15827  {
15828  std::size_t seed = 0;
15829  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265DpbSlotInfoKHR.sType );
15830  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265DpbSlotInfoKHR.pNext );
15831  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265DpbSlotInfoKHR.pStdReferenceInfo );
15832  return seed;
15833  }
15834  };
15835 
15836  template <>
15837  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeKHR>
15838  {
15839  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265FrameSizeKHR const & videoEncodeH265FrameSizeKHR ) const VULKAN_HPP_NOEXCEPT
15840  {
15841  std::size_t seed = 0;
15842  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265FrameSizeKHR.frameISize );
15843  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265FrameSizeKHR.framePSize );
15844  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265FrameSizeKHR.frameBSize );
15845  return seed;
15846  }
15847  };
15848 
15849  template <>
15850  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoKHR>
15851  {
15852  std::size_t
15853  operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265GopRemainingFrameInfoKHR const & videoEncodeH265GopRemainingFrameInfoKHR ) const VULKAN_HPP_NOEXCEPT
15854  {
15855  std::size_t seed = 0;
15856  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265GopRemainingFrameInfoKHR.sType );
15857  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265GopRemainingFrameInfoKHR.pNext );
15858  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265GopRemainingFrameInfoKHR.useGopRemainingFrames );
15859  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265GopRemainingFrameInfoKHR.gopRemainingI );
15860  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265GopRemainingFrameInfoKHR.gopRemainingP );
15861  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265GopRemainingFrameInfoKHR.gopRemainingB );
15862  return seed;
15863  }
15864  };
15865 
15866  template <>
15867  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoKHR>
15868  {
15869  std::size_t
15870  operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265NaluSliceSegmentInfoKHR const & videoEncodeH265NaluSliceSegmentInfoKHR ) const VULKAN_HPP_NOEXCEPT
15871  {
15872  std::size_t seed = 0;
15873  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265NaluSliceSegmentInfoKHR.sType );
15874  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265NaluSliceSegmentInfoKHR.pNext );
15875  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265NaluSliceSegmentInfoKHR.constantQp );
15876  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265NaluSliceSegmentInfoKHR.pStdSliceSegmentHeader );
15877  return seed;
15878  }
15879  };
15880 
15881  template <>
15882  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoKHR>
15883  {
15884  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265PictureInfoKHR const & videoEncodeH265PictureInfoKHR ) const VULKAN_HPP_NOEXCEPT
15885  {
15886  std::size_t seed = 0;
15887  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265PictureInfoKHR.sType );
15888  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265PictureInfoKHR.pNext );
15889  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265PictureInfoKHR.naluSliceSegmentEntryCount );
15890  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265PictureInfoKHR.pNaluSliceSegmentEntries );
15891  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265PictureInfoKHR.pStdPictureInfo );
15892  return seed;
15893  }
15894  };
15895 
15896  template <>
15897  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoKHR>
15898  {
15899  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265ProfileInfoKHR const & videoEncodeH265ProfileInfoKHR ) const VULKAN_HPP_NOEXCEPT
15900  {
15901  std::size_t seed = 0;
15902  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ProfileInfoKHR.sType );
15903  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ProfileInfoKHR.pNext );
15904  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265ProfileInfoKHR.stdProfileIdc );
15905  return seed;
15906  }
15907  };
15908 
15909  template <>
15910  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265QpKHR>
15911  {
15912  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265QpKHR const & videoEncodeH265QpKHR ) const VULKAN_HPP_NOEXCEPT
15913  {
15914  std::size_t seed = 0;
15915  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QpKHR.qpI );
15916  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QpKHR.qpP );
15917  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QpKHR.qpB );
15918  return seed;
15919  }
15920  };
15921 
15922  template <>
15923  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265QualityLevelPropertiesKHR>
15924  {
15925  std::size_t
15926  operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265QualityLevelPropertiesKHR const & videoEncodeH265QualityLevelPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
15927  {
15928  std::size_t seed = 0;
15929  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QualityLevelPropertiesKHR.sType );
15930  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QualityLevelPropertiesKHR.pNext );
15931  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QualityLevelPropertiesKHR.preferredRateControlFlags );
15932  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QualityLevelPropertiesKHR.preferredGopFrameCount );
15933  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QualityLevelPropertiesKHR.preferredIdrPeriod );
15934  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QualityLevelPropertiesKHR.preferredConsecutiveBFrameCount );
15935  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QualityLevelPropertiesKHR.preferredSubLayerCount );
15936  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QualityLevelPropertiesKHR.preferredConstantQp );
15937  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QualityLevelPropertiesKHR.preferredMaxL0ReferenceCount );
15938  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265QualityLevelPropertiesKHR.preferredMaxL1ReferenceCount );
15939  return seed;
15940  }
15941  };
15942 
15943  template <>
15944  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoKHR>
15945  {
15946  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlInfoKHR const & videoEncodeH265RateControlInfoKHR ) const VULKAN_HPP_NOEXCEPT
15947  {
15948  std::size_t seed = 0;
15949  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoKHR.sType );
15950  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoKHR.pNext );
15951  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoKHR.flags );
15952  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoKHR.gopFrameCount );
15953  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoKHR.idrPeriod );
15954  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoKHR.consecutiveBFrameCount );
15955  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlInfoKHR.subLayerCount );
15956  return seed;
15957  }
15958  };
15959 
15960  template <>
15961  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoKHR>
15962  {
15963  std::size_t
15964  operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265RateControlLayerInfoKHR const & videoEncodeH265RateControlLayerInfoKHR ) const VULKAN_HPP_NOEXCEPT
15965  {
15966  std::size_t seed = 0;
15967  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoKHR.sType );
15968  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoKHR.pNext );
15969  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoKHR.useMinQp );
15970  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoKHR.minQp );
15971  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoKHR.useMaxQp );
15972  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoKHR.maxQp );
15973  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoKHR.useMaxFrameSize );
15974  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265RateControlLayerInfoKHR.maxFrameSize );
15975  return seed;
15976  }
15977  };
15978 
15979  template <>
15980  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionCreateInfoKHR>
15981  {
15982  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionCreateInfoKHR const & videoEncodeH265SessionCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
15983  {
15984  std::size_t seed = 0;
15985  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionCreateInfoKHR.sType );
15986  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionCreateInfoKHR.pNext );
15987  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionCreateInfoKHR.useMaxLevelIdc );
15988  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionCreateInfoKHR.maxLevelIdc );
15989  return seed;
15990  }
15991  };
15992 
15993  template <>
15994  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoKHR>
15995  {
15996  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersAddInfoKHR const & videoEncodeH265SessionParametersAddInfoKHR ) const
15998  {
15999  std::size_t seed = 0;
16000  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoKHR.sType );
16001  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoKHR.pNext );
16002  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoKHR.stdVPSCount );
16003  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoKHR.pStdVPSs );
16004  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoKHR.stdSPSCount );
16005  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoKHR.pStdSPSs );
16006  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoKHR.stdPPSCount );
16007  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersAddInfoKHR.pStdPPSs );
16008  return seed;
16009  }
16010  };
16011 
16012  template <>
16013  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoKHR>
16014  {
16015  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersCreateInfoKHR const & videoEncodeH265SessionParametersCreateInfoKHR ) const
16017  {
16018  std::size_t seed = 0;
16019  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoKHR.sType );
16020  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoKHR.pNext );
16021  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoKHR.maxStdVPSCount );
16022  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoKHR.maxStdSPSCount );
16023  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoKHR.maxStdPPSCount );
16024  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersCreateInfoKHR.pParametersAddInfo );
16025  return seed;
16026  }
16027  };
16028 
16029  template <>
16030  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersFeedbackInfoKHR>
16031  {
16032  std::size_t operator()(
16033  VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersFeedbackInfoKHR const & videoEncodeH265SessionParametersFeedbackInfoKHR ) const VULKAN_HPP_NOEXCEPT
16034  {
16035  std::size_t seed = 0;
16036  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersFeedbackInfoKHR.sType );
16037  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersFeedbackInfoKHR.pNext );
16038  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersFeedbackInfoKHR.hasStdVPSOverrides );
16039  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersFeedbackInfoKHR.hasStdSPSOverrides );
16040  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersFeedbackInfoKHR.hasStdPPSOverrides );
16041  return seed;
16042  }
16043  };
16044 
16045  template <>
16046  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoKHR>
16047  {
16048  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeH265SessionParametersGetInfoKHR const & videoEncodeH265SessionParametersGetInfoKHR ) const
16050  {
16051  std::size_t seed = 0;
16052  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersGetInfoKHR.sType );
16053  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersGetInfoKHR.pNext );
16054  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersGetInfoKHR.writeStdVPS );
16055  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersGetInfoKHR.writeStdSPS );
16056  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersGetInfoKHR.writeStdPPS );
16057  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersGetInfoKHR.stdVPSId );
16058  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersGetInfoKHR.stdSPSId );
16059  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeH265SessionParametersGetInfoKHR.stdPPSId );
16060  return seed;
16061  }
16062  };
16063 
16064  template <>
16065  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR>
16066  {
16067  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR const & videoEncodeInfoKHR ) const VULKAN_HPP_NOEXCEPT
16068  {
16069  std::size_t seed = 0;
16070  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.sType );
16071  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.pNext );
16072  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.flags );
16073  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.dstBuffer );
16074  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.dstBufferOffset );
16075  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.dstBufferRange );
16076  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.srcPictureResource );
16077  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.pSetupReferenceSlot );
16078  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.referenceSlotCount );
16079  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.pReferenceSlots );
16080  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeInfoKHR.precedingExternallyEncodedBytes );
16081  return seed;
16082  }
16083  };
16084 
16085  template <>
16086  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelInfoKHR>
16087  {
16088  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelInfoKHR const & videoEncodeQualityLevelInfoKHR ) const VULKAN_HPP_NOEXCEPT
16089  {
16090  std::size_t seed = 0;
16091  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeQualityLevelInfoKHR.sType );
16092  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeQualityLevelInfoKHR.pNext );
16093  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeQualityLevelInfoKHR.qualityLevel );
16094  return seed;
16095  }
16096  };
16097 
16098  template <>
16099  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR>
16100  {
16101  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR const & videoEncodeQualityLevelPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
16102  {
16103  std::size_t seed = 0;
16104  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeQualityLevelPropertiesKHR.sType );
16105  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeQualityLevelPropertiesKHR.pNext );
16106  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeQualityLevelPropertiesKHR.preferredRateControlMode );
16107  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeQualityLevelPropertiesKHR.preferredRateControlLayerCount );
16108  return seed;
16109  }
16110  };
16111 
16112  template <>
16113  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR>
16114  {
16115  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeRateControlLayerInfoKHR const & videoEncodeRateControlLayerInfoKHR ) const VULKAN_HPP_NOEXCEPT
16116  {
16117  std::size_t seed = 0;
16118  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlLayerInfoKHR.sType );
16119  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlLayerInfoKHR.pNext );
16120  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlLayerInfoKHR.averageBitrate );
16121  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlLayerInfoKHR.maxBitrate );
16122  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlLayerInfoKHR.frameRateNumerator );
16123  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlLayerInfoKHR.frameRateDenominator );
16124  return seed;
16125  }
16126  };
16127 
16128  template <>
16129  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR>
16130  {
16131  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeRateControlInfoKHR const & videoEncodeRateControlInfoKHR ) const VULKAN_HPP_NOEXCEPT
16132  {
16133  std::size_t seed = 0;
16134  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlInfoKHR.sType );
16135  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlInfoKHR.pNext );
16136  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlInfoKHR.flags );
16137  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlInfoKHR.rateControlMode );
16138  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlInfoKHR.layerCount );
16139  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlInfoKHR.pLayers );
16140  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlInfoKHR.virtualBufferSizeInMs );
16141  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeRateControlInfoKHR.initialVirtualBufferSizeInMs );
16142  return seed;
16143  }
16144  };
16145 
16146  template <>
16147  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR>
16148  {
16149  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR const & videoEncodeSessionParametersFeedbackInfoKHR ) const
16151  {
16152  std::size_t seed = 0;
16153  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeSessionParametersFeedbackInfoKHR.sType );
16154  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeSessionParametersFeedbackInfoKHR.pNext );
16155  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeSessionParametersFeedbackInfoKHR.hasOverrides );
16156  return seed;
16157  }
16158  };
16159 
16160  template <>
16161  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR>
16162  {
16163  std::size_t
16164  operator()( VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR const & videoEncodeSessionParametersGetInfoKHR ) const VULKAN_HPP_NOEXCEPT
16165  {
16166  std::size_t seed = 0;
16167  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeSessionParametersGetInfoKHR.sType );
16168  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeSessionParametersGetInfoKHR.pNext );
16169  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeSessionParametersGetInfoKHR.videoSessionParameters );
16170  return seed;
16171  }
16172  };
16173 
16174  template <>
16175  struct hash<VULKAN_HPP_NAMESPACE::VideoEncodeUsageInfoKHR>
16176  {
16177  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEncodeUsageInfoKHR const & videoEncodeUsageInfoKHR ) const VULKAN_HPP_NOEXCEPT
16178  {
16179  std::size_t seed = 0;
16180  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeUsageInfoKHR.sType );
16181  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeUsageInfoKHR.pNext );
16182  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeUsageInfoKHR.videoUsageHints );
16183  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeUsageInfoKHR.videoContentHints );
16184  VULKAN_HPP_HASH_COMBINE( seed, videoEncodeUsageInfoKHR.tuningMode );
16185  return seed;
16186  }
16187  };
16188 
16189  template <>
16190  struct hash<VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR>
16191  {
16192  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR const & videoEndCodingInfoKHR ) const VULKAN_HPP_NOEXCEPT
16193  {
16194  std::size_t seed = 0;
16195  VULKAN_HPP_HASH_COMBINE( seed, videoEndCodingInfoKHR.sType );
16196  VULKAN_HPP_HASH_COMBINE( seed, videoEndCodingInfoKHR.pNext );
16197  VULKAN_HPP_HASH_COMBINE( seed, videoEndCodingInfoKHR.flags );
16198  return seed;
16199  }
16200  };
16201 
16202  template <>
16203  struct hash<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR>
16204  {
16205  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR const & videoFormatPropertiesKHR ) const VULKAN_HPP_NOEXCEPT
16206  {
16207  std::size_t seed = 0;
16208  VULKAN_HPP_HASH_COMBINE( seed, videoFormatPropertiesKHR.sType );
16209  VULKAN_HPP_HASH_COMBINE( seed, videoFormatPropertiesKHR.pNext );
16210  VULKAN_HPP_HASH_COMBINE( seed, videoFormatPropertiesKHR.format );
16211  VULKAN_HPP_HASH_COMBINE( seed, videoFormatPropertiesKHR.componentMapping );
16212  VULKAN_HPP_HASH_COMBINE( seed, videoFormatPropertiesKHR.imageCreateFlags );
16213  VULKAN_HPP_HASH_COMBINE( seed, videoFormatPropertiesKHR.imageType );
16214  VULKAN_HPP_HASH_COMBINE( seed, videoFormatPropertiesKHR.imageTiling );
16215  VULKAN_HPP_HASH_COMBINE( seed, videoFormatPropertiesKHR.imageUsageFlags );
16216  return seed;
16217  }
16218  };
16219 
16220  template <>
16221  struct hash<VULKAN_HPP_NAMESPACE::VideoInlineQueryInfoKHR>
16222  {
16223  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoInlineQueryInfoKHR const & videoInlineQueryInfoKHR ) const VULKAN_HPP_NOEXCEPT
16224  {
16225  std::size_t seed = 0;
16226  VULKAN_HPP_HASH_COMBINE( seed, videoInlineQueryInfoKHR.sType );
16227  VULKAN_HPP_HASH_COMBINE( seed, videoInlineQueryInfoKHR.pNext );
16228  VULKAN_HPP_HASH_COMBINE( seed, videoInlineQueryInfoKHR.queryPool );
16229  VULKAN_HPP_HASH_COMBINE( seed, videoInlineQueryInfoKHR.firstQuery );
16230  VULKAN_HPP_HASH_COMBINE( seed, videoInlineQueryInfoKHR.queryCount );
16231  return seed;
16232  }
16233  };
16234 
16235  template <>
16236  struct hash<VULKAN_HPP_NAMESPACE::VideoProfileListInfoKHR>
16237  {
16238  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoProfileListInfoKHR const & videoProfileListInfoKHR ) const VULKAN_HPP_NOEXCEPT
16239  {
16240  std::size_t seed = 0;
16241  VULKAN_HPP_HASH_COMBINE( seed, videoProfileListInfoKHR.sType );
16242  VULKAN_HPP_HASH_COMBINE( seed, videoProfileListInfoKHR.pNext );
16243  VULKAN_HPP_HASH_COMBINE( seed, videoProfileListInfoKHR.profileCount );
16244  VULKAN_HPP_HASH_COMBINE( seed, videoProfileListInfoKHR.pProfiles );
16245  return seed;
16246  }
16247  };
16248 
16249  template <>
16250  struct hash<VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR>
16251  {
16252  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR const & videoSessionCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
16253  {
16254  std::size_t seed = 0;
16255  VULKAN_HPP_HASH_COMBINE( seed, videoSessionCreateInfoKHR.sType );
16256  VULKAN_HPP_HASH_COMBINE( seed, videoSessionCreateInfoKHR.pNext );
16257  VULKAN_HPP_HASH_COMBINE( seed, videoSessionCreateInfoKHR.queueFamilyIndex );
16258  VULKAN_HPP_HASH_COMBINE( seed, videoSessionCreateInfoKHR.flags );
16259  VULKAN_HPP_HASH_COMBINE( seed, videoSessionCreateInfoKHR.pVideoProfile );
16260  VULKAN_HPP_HASH_COMBINE( seed, videoSessionCreateInfoKHR.pictureFormat );
16261  VULKAN_HPP_HASH_COMBINE( seed, videoSessionCreateInfoKHR.maxCodedExtent );
16262  VULKAN_HPP_HASH_COMBINE( seed, videoSessionCreateInfoKHR.referencePictureFormat );
16263  VULKAN_HPP_HASH_COMBINE( seed, videoSessionCreateInfoKHR.maxDpbSlots );
16264  VULKAN_HPP_HASH_COMBINE( seed, videoSessionCreateInfoKHR.maxActiveReferencePictures );
16265  VULKAN_HPP_HASH_COMBINE( seed, videoSessionCreateInfoKHR.pStdHeaderVersion );
16266  return seed;
16267  }
16268  };
16269 
16270  template <>
16271  struct hash<VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR>
16272  {
16273  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR const & videoSessionMemoryRequirementsKHR ) const VULKAN_HPP_NOEXCEPT
16274  {
16275  std::size_t seed = 0;
16276  VULKAN_HPP_HASH_COMBINE( seed, videoSessionMemoryRequirementsKHR.sType );
16277  VULKAN_HPP_HASH_COMBINE( seed, videoSessionMemoryRequirementsKHR.pNext );
16278  VULKAN_HPP_HASH_COMBINE( seed, videoSessionMemoryRequirementsKHR.memoryBindIndex );
16279  VULKAN_HPP_HASH_COMBINE( seed, videoSessionMemoryRequirementsKHR.memoryRequirements );
16280  return seed;
16281  }
16282  };
16283 
16284  template <>
16285  struct hash<VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR>
16286  {
16287  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR const & videoSessionParametersCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
16288  {
16289  std::size_t seed = 0;
16290  VULKAN_HPP_HASH_COMBINE( seed, videoSessionParametersCreateInfoKHR.sType );
16291  VULKAN_HPP_HASH_COMBINE( seed, videoSessionParametersCreateInfoKHR.pNext );
16292  VULKAN_HPP_HASH_COMBINE( seed, videoSessionParametersCreateInfoKHR.flags );
16293  VULKAN_HPP_HASH_COMBINE( seed, videoSessionParametersCreateInfoKHR.videoSessionParametersTemplate );
16294  VULKAN_HPP_HASH_COMBINE( seed, videoSessionParametersCreateInfoKHR.videoSession );
16295  return seed;
16296  }
16297  };
16298 
16299  template <>
16300  struct hash<VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR>
16301  {
16302  std::size_t operator()( VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR const & videoSessionParametersUpdateInfoKHR ) const VULKAN_HPP_NOEXCEPT
16303  {
16304  std::size_t seed = 0;
16305  VULKAN_HPP_HASH_COMBINE( seed, videoSessionParametersUpdateInfoKHR.sType );
16306  VULKAN_HPP_HASH_COMBINE( seed, videoSessionParametersUpdateInfoKHR.pNext );
16307  VULKAN_HPP_HASH_COMBINE( seed, videoSessionParametersUpdateInfoKHR.updateSequenceCount );
16308  return seed;
16309  }
16310  };
16311 
16312 # if defined( VK_USE_PLATFORM_WAYLAND_KHR )
16313  template <>
16314  struct hash<VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR>
16315  {
16316  std::size_t operator()( VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR const & waylandSurfaceCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
16317  {
16318  std::size_t seed = 0;
16319  VULKAN_HPP_HASH_COMBINE( seed, waylandSurfaceCreateInfoKHR.sType );
16320  VULKAN_HPP_HASH_COMBINE( seed, waylandSurfaceCreateInfoKHR.pNext );
16321  VULKAN_HPP_HASH_COMBINE( seed, waylandSurfaceCreateInfoKHR.flags );
16322  VULKAN_HPP_HASH_COMBINE( seed, waylandSurfaceCreateInfoKHR.display );
16323  VULKAN_HPP_HASH_COMBINE( seed, waylandSurfaceCreateInfoKHR.surface );
16324  return seed;
16325  }
16326  };
16327 # endif /*VK_USE_PLATFORM_WAYLAND_KHR*/
16328 
16329 # if defined( VK_USE_PLATFORM_WIN32_KHR )
16330  template <>
16331  struct hash<VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR>
16332  {
16333  std::size_t operator()( VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoKHR const & win32KeyedMutexAcquireReleaseInfoKHR ) const VULKAN_HPP_NOEXCEPT
16334  {
16335  std::size_t seed = 0;
16336  VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoKHR.sType );
16337  VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoKHR.pNext );
16338  VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoKHR.acquireCount );
16339  VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoKHR.pAcquireSyncs );
16340  VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoKHR.pAcquireKeys );
16341  VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoKHR.pAcquireTimeouts );
16342  VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoKHR.releaseCount );
16343  VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoKHR.pReleaseSyncs );
16344  VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoKHR.pReleaseKeys );
16345  return seed;
16346  }
16347  };
16348 # endif /*VK_USE_PLATFORM_WIN32_KHR*/
16349 
16350 # if defined( VK_USE_PLATFORM_WIN32_KHR )
16351  template <>
16352  struct hash<VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV>
16353  {
16354  std::size_t operator()( VULKAN_HPP_NAMESPACE::Win32KeyedMutexAcquireReleaseInfoNV const & win32KeyedMutexAcquireReleaseInfoNV ) const VULKAN_HPP_NOEXCEPT
16355  {
16356  std::size_t seed = 0;
16357  VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoNV.sType );
16358  VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoNV.pNext );
16359  VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoNV.acquireCount );
16360  VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoNV.pAcquireSyncs );
16361  VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoNV.pAcquireKeys );
16362  VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoNV.pAcquireTimeoutMilliseconds );
16363  VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoNV.releaseCount );
16364  VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoNV.pReleaseSyncs );
16365  VULKAN_HPP_HASH_COMBINE( seed, win32KeyedMutexAcquireReleaseInfoNV.pReleaseKeys );
16366  return seed;
16367  }
16368  };
16369 # endif /*VK_USE_PLATFORM_WIN32_KHR*/
16370 
16371 # if defined( VK_USE_PLATFORM_WIN32_KHR )
16372  template <>
16373  struct hash<VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR>
16374  {
16375  std::size_t operator()( VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR const & win32SurfaceCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
16376  {
16377  std::size_t seed = 0;
16378  VULKAN_HPP_HASH_COMBINE( seed, win32SurfaceCreateInfoKHR.sType );
16379  VULKAN_HPP_HASH_COMBINE( seed, win32SurfaceCreateInfoKHR.pNext );
16380  VULKAN_HPP_HASH_COMBINE( seed, win32SurfaceCreateInfoKHR.flags );
16381  VULKAN_HPP_HASH_COMBINE( seed, win32SurfaceCreateInfoKHR.hinstance );
16382  VULKAN_HPP_HASH_COMBINE( seed, win32SurfaceCreateInfoKHR.hwnd );
16383  return seed;
16384  }
16385  };
16386 # endif /*VK_USE_PLATFORM_WIN32_KHR*/
16387 
16388  template <>
16389  struct hash<VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR>
16390  {
16391  std::size_t operator()( VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureKHR const & writeDescriptorSetAccelerationStructureKHR ) const
16393  {
16394  std::size_t seed = 0;
16395  VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetAccelerationStructureKHR.sType );
16396  VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetAccelerationStructureKHR.pNext );
16397  VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetAccelerationStructureKHR.accelerationStructureCount );
16398  VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetAccelerationStructureKHR.pAccelerationStructures );
16399  return seed;
16400  }
16401  };
16402 
16403  template <>
16404  struct hash<VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV>
16405  {
16406  std::size_t
16407  operator()( VULKAN_HPP_NAMESPACE::WriteDescriptorSetAccelerationStructureNV const & writeDescriptorSetAccelerationStructureNV ) const VULKAN_HPP_NOEXCEPT
16408  {
16409  std::size_t seed = 0;
16410  VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetAccelerationStructureNV.sType );
16411  VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetAccelerationStructureNV.pNext );
16412  VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetAccelerationStructureNV.accelerationStructureCount );
16413  VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetAccelerationStructureNV.pAccelerationStructures );
16414  return seed;
16415  }
16416  };
16417 
16418  template <>
16419  struct hash<VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlock>
16420  {
16421  std::size_t operator()( VULKAN_HPP_NAMESPACE::WriteDescriptorSetInlineUniformBlock const & writeDescriptorSetInlineUniformBlock ) const VULKAN_HPP_NOEXCEPT
16422  {
16423  std::size_t seed = 0;
16424  VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetInlineUniformBlock.sType );
16425  VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetInlineUniformBlock.pNext );
16426  VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetInlineUniformBlock.dataSize );
16427  VULKAN_HPP_HASH_COMBINE( seed, writeDescriptorSetInlineUniformBlock.pData );
16428  return seed;
16429  }
16430  };
16431 
16432 # if defined( VK_USE_PLATFORM_XCB_KHR )
16433  template <>
16434  struct hash<VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR>
16435  {
16436  std::size_t operator()( VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR const & xcbSurfaceCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
16437  {
16438  std::size_t seed = 0;
16439  VULKAN_HPP_HASH_COMBINE( seed, xcbSurfaceCreateInfoKHR.sType );
16440  VULKAN_HPP_HASH_COMBINE( seed, xcbSurfaceCreateInfoKHR.pNext );
16441  VULKAN_HPP_HASH_COMBINE( seed, xcbSurfaceCreateInfoKHR.flags );
16442  VULKAN_HPP_HASH_COMBINE( seed, xcbSurfaceCreateInfoKHR.connection );
16443  VULKAN_HPP_HASH_COMBINE( seed, xcbSurfaceCreateInfoKHR.window );
16444  return seed;
16445  }
16446  };
16447 # endif /*VK_USE_PLATFORM_XCB_KHR*/
16448 
16449 # if defined( VK_USE_PLATFORM_XLIB_KHR )
16450  template <>
16451  struct hash<VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR>
16452  {
16453  std::size_t operator()( VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR const & xlibSurfaceCreateInfoKHR ) const VULKAN_HPP_NOEXCEPT
16454  {
16455  std::size_t seed = 0;
16456  VULKAN_HPP_HASH_COMBINE( seed, xlibSurfaceCreateInfoKHR.sType );
16457  VULKAN_HPP_HASH_COMBINE( seed, xlibSurfaceCreateInfoKHR.pNext );
16458  VULKAN_HPP_HASH_COMBINE( seed, xlibSurfaceCreateInfoKHR.flags );
16459  VULKAN_HPP_HASH_COMBINE( seed, xlibSurfaceCreateInfoKHR.dpy );
16460  VULKAN_HPP_HASH_COMBINE( seed, xlibSurfaceCreateInfoKHR.window );
16461  return seed;
16462  }
16463  };
16464 # endif /*VK_USE_PLATFORM_XLIB_KHR*/
16465 
16466 #endif // 14 <= VULKAN_HPP_CPP_VERSION
16467 
16468 } // namespace std
16469 #endif
Definition: vulkan.hpp:854
std::size_t operator()(vk::AccelerationStructureKHR const &accelerationStructureKHR) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::AccelerationStructureNV const &accelerationStructureNV) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::BufferView const &bufferView) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::Buffer const &buffer) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::CommandBuffer const &commandBuffer) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::CommandPool const &commandPool) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::CuFunctionNVX const &cuFunctionNVX) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::CuModuleNVX const &cuModuleNVX) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::CudaFunctionNV const &cudaFunctionNV) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::CudaModuleNV const &cudaModuleNV) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::DebugReportCallbackEXT const &debugReportCallbackEXT) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::DebugUtilsMessengerEXT const &debugUtilsMessengerEXT) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::DeferredOperationKHR const &deferredOperationKHR) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::DescriptorPool const &descriptorPool) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::DescriptorSetLayout const &descriptorSetLayout) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::DescriptorSet const &descriptorSet) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::DescriptorUpdateTemplate const &descriptorUpdateTemplate) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::DeviceMemory const &deviceMemory) const VULKAN_HPP_NOEXCEPT
Definition: vulkan_hash.hpp:73
std::size_t operator()(vk::Device const &device) const VULKAN_HPP_NOEXCEPT
Definition: vulkan_hash.hpp:55
std::size_t operator()(vk::DisplayKHR const &displayKHR) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::DisplayModeKHR const &displayModeKHR) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::Event const &event) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::Fence const &fence) const VULKAN_HPP_NOEXCEPT
Definition: vulkan_hash.hpp:82
std::size_t operator()(vk::Flags< BitType > const &flags) const VULKAN_HPP_NOEXCEPT
Definition: vulkan_hash.hpp:22
std::size_t operator()(vk::Framebuffer const &framebuffer) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::ImageView const &imageView) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::Image const &image) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::IndirectCommandsLayoutNV const &indirectCommandsLayoutNV) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::Instance const &instance) const VULKAN_HPP_NOEXCEPT
Definition: vulkan_hash.hpp:37
std::size_t operator()(vk::MicromapEXT const &micromapEXT) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::OpticalFlowSessionNV const &opticalFlowSessionNV) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::PerformanceConfigurationINTEL const &performanceConfigurationINTEL) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::PhysicalDevice const &physicalDevice) const VULKAN_HPP_NOEXCEPT
Definition: vulkan_hash.hpp:46
std::size_t operator()(vk::PipelineCache const &pipelineCache) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::PipelineLayout const &pipelineLayout) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::Pipeline const &pipeline) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::PrivateDataSlot const &privateDataSlot) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::QueryPool const &queryPool) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::Queue const &queue) const VULKAN_HPP_NOEXCEPT
Definition: vulkan_hash.hpp:64
std::size_t operator()(vk::RenderPass const &renderPass) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::SamplerYcbcrConversion const &samplerYcbcrConversion) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::Sampler const &sampler) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::Semaphore const &semaphore) const VULKAN_HPP_NOEXCEPT
Definition: vulkan_hash.hpp:91
std::size_t operator()(vk::ShaderEXT const &shaderEXT) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::ShaderModule const &shaderModule) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::SurfaceKHR const &surfaceKHR) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::SwapchainKHR const &swapchainKHR) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::ValidationCacheEXT const &validationCacheEXT) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::VideoSessionKHR const &videoSessionKHR) const VULKAN_HPP_NOEXCEPT
std::size_t operator()(vk::VideoSessionParametersKHR const &videoSessionParametersKHR) const VULKAN_HPP_NOEXCEPT
#define VK_LUID_SIZE
Definition: vulkan_core.h:4859
uint64_t VkVideoSessionParametersKHR
Definition: vulkan_core.h:7946
uint64_t VkImage
Definition: vulkan_core.h:100
#define VK_MAX_DRIVER_INFO_SIZE
Definition: vulkan_core.h:5724
#define VK_MAX_MEMORY_HEAPS
Definition: vulkan_core.h:138
uint64_t VkSurfaceKHR
Definition: vulkan_core.h:7513
uint64_t VkShaderModule
Definition: vulkan_core.h:113
uint64_t VkQueryPool
Definition: vulkan_core.h:110
#define VK_MAX_EXTENSION_NAME_SIZE
Definition: vulkan_core.h:136
uint64_t VkMicromapEXT
#define VK_MAX_MEMORY_TYPES
Definition: vulkan_core.h:133
uint64_t VkIndirectCommandsLayoutNV
uint64_t VkSampler
Definition: vulkan_core.h:119
uint64_t VkRenderPass
Definition: vulkan_core.h:117
uint64_t VkCommandPool
Definition: vulkan_core.h:123
uint64_t VkPipelineCache
Definition: vulkan_core.h:114
uint64_t VkEvent
Definition: vulkan_core.h:109
uint64_t VkBuffer
Definition: vulkan_core.h:99
uint64_t VkCuModuleNVX
struct VkPhysicalDevice_T * VkPhysicalDevice
Definition: vulkan_core.h:102
uint64_t VkFramebuffer
Definition: vulkan_core.h:122
#define VK_MAX_DESCRIPTION_SIZE
Definition: vulkan_core.h:137
#define VK_MAX_PHYSICAL_DEVICE_NAME_SIZE
Definition: vulkan_core.h:134
uint64_t VkBufferView
Definition: vulkan_core.h:111
uint64_t VkCudaModuleNV
struct VkQueue_T * VkQueue
Definition: vulkan_core.h:104
uint64_t VkDisplayKHR
Definition: vulkan_core.h:7789
uint64_t VkDisplayModeKHR
Definition: vulkan_core.h:7790
struct VkInstance_T * VkInstance
Definition: vulkan_core.h:101
struct VkDevice_T * VkDevice
Definition: vulkan_core.h:103
uint64_t VkDeferredOperationKHR
#define VK_MAX_DRIVER_NAME_SIZE
Definition: vulkan_core.h:5723
uint64_t VkOpticalFlowSessionNV
uint64_t VkFence
Definition: vulkan_core.h:107
uint64_t VkDescriptorSet
Definition: vulkan_core.h:120
#define VK_UUID_SIZE
Definition: vulkan_core.h:135
uint64_t VkDescriptorPool
Definition: vulkan_core.h:121
uint64_t VkAccelerationStructureNV
uint64_t VkSwapchainKHR
Definition: vulkan_core.h:7628
uint64_t VkPipelineLayout
Definition: vulkan_core.h:115
uint64_t VkShaderEXT
uint64_t VkDescriptorUpdateTemplate
Definition: vulkan_core.h:4857
uint64_t VkDescriptorSetLayout
Definition: vulkan_core.h:118
uint64_t VkAccelerationStructureKHR
#define VK_MAX_GLOBAL_PRIORITY_SIZE_KHR
Definition: vulkan_core.h:9980
uint64_t VkCudaFunctionNV
uint64_t VkSamplerYcbcrConversion
Definition: vulkan_core.h:4856
#define VK_MAX_DEVICE_GROUP_SIZE
Definition: vulkan_core.h:4858
uint64_t VkPipeline
Definition: vulkan_core.h:116
uint64_t VkDebugUtilsMessengerEXT
#define VK_MAX_SHADER_MODULE_IDENTIFIER_SIZE_EXT
struct VkCommandBuffer_T * VkCommandBuffer
Definition: vulkan_core.h:106
uint64_t VkDebugReportCallbackEXT
uint64_t VkSemaphore
Definition: vulkan_core.h:105
uint64_t VkCuFunctionNVX
uint64_t VkPrivateDataSlot
Definition: vulkan_core.h:6482
uint64_t VkPerformanceConfigurationINTEL
uint64_t VkImageView
Definition: vulkan_core.h:112
uint64_t VkDeviceMemory
Definition: vulkan_core.h:108
uint64_t VkValidationCacheEXT
uint64_t VkVideoSessionKHR
Definition: vulkan_core.h:7945
#define VULKAN_HPP_NOEXCEPT