• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright 2015-2025 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_FUNCS_HPP
9 #define VULKAN_FUNCS_HPP
10 
11 // include-what-you-use: make sure, vulkan.hpp is used by code-completers
12 // IWYU pragma: private; include "vulkan.hpp"
13 
14 namespace VULKAN_HPP_NAMESPACE
15 {
16 
17   //===========================
18   //=== COMMAND Definitions ===
19   //===========================
20 
21   //=== VK_VERSION_1_0 ===
22 
23   // wrapper function for command vkCreateInstance, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateInstance.html
24   template <typename Dispatch>
createInstance(const VULKAN_HPP_NAMESPACE::InstanceCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Instance * pInstance,Dispatch const & d)25   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result createInstance( const VULKAN_HPP_NAMESPACE::InstanceCreateInfo *  pCreateInfo,
26                                                                 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
27                                                                 VULKAN_HPP_NAMESPACE::Instance *                  pInstance,
28                                                                 Dispatch const &                                  d ) VULKAN_HPP_NOEXCEPT
29   {
30     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31     return static_cast<Result>( d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo *>( pCreateInfo ),
32                                                     reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
33                                                     reinterpret_cast<VkInstance *>( pInstance ) ) );
34   }
35 
36 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
37   // wrapper function for command vkCreateInstance, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateInstance.html
38   template <typename Dispatch>
createInstance(const VULKAN_HPP_NAMESPACE::InstanceCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d)39   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Instance>::type createInstance(
40     const VULKAN_HPP_NAMESPACE::InstanceCreateInfo & createInfo, Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator, Dispatch const & d )
41   {
42     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
43 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
44     VULKAN_HPP_ASSERT( d.vkCreateInstance && "Function <vkCreateInstance> requires <VK_VERSION_1_0>" );
45 #  endif
46 
47     VULKAN_HPP_NAMESPACE::Instance instance;
48     VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
49       d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo *>( &createInfo ),
50                           reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
51                           reinterpret_cast<VkInstance *>( &instance ) ) );
52     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::createInstance" );
53 
54     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( instance ) );
55   }
56 
57 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
58   // wrapper function for command vkCreateInstance, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateInstance.html
59   template <typename Dispatch>
createInstanceUnique(const VULKAN_HPP_NAMESPACE::InstanceCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d)60   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Instance, Dispatch>>::type createInstanceUnique(
61     const VULKAN_HPP_NAMESPACE::InstanceCreateInfo & createInfo, Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator, Dispatch const & d )
62   {
63     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
64 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
65     VULKAN_HPP_ASSERT( d.vkCreateInstance && "Function <vkCreateInstance> requires <VK_VERSION_1_0>" );
66 #    endif
67 
68     VULKAN_HPP_NAMESPACE::Instance instance;
69     VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
70       d.vkCreateInstance( reinterpret_cast<const VkInstanceCreateInfo *>( &createInfo ),
71                           reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
72                           reinterpret_cast<VkInstance *>( &instance ) ) );
73     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::createInstanceUnique" );
74 
75     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
76       result, UniqueHandle<VULKAN_HPP_NAMESPACE::Instance, Dispatch>( instance, detail::ObjectDestroy<detail::NoParent, Dispatch>( allocator, d ) ) );
77   }
78 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
79 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
80 
81   // wrapper function for command vkDestroyInstance, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyInstance.html
82   template <typename Dispatch>
destroy(const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const83   VULKAN_HPP_INLINE void Instance::destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
84   {
85     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
86     d.vkDestroyInstance( static_cast<VkInstance>( m_instance ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
87   }
88 
89 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
90   // wrapper function for command vkDestroyInstance, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyInstance.html
91   template <typename Dispatch>
destroy(Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const92   VULKAN_HPP_INLINE void Instance::destroy( Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
93   {
94     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
95 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
96     VULKAN_HPP_ASSERT( d.vkDestroyInstance && "Function <vkDestroyInstance> requires <VK_VERSION_1_0>" );
97 #  endif
98 
99     d.vkDestroyInstance( m_instance,
100                          reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
101   }
102 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
103 
104   // wrapper function for command vkEnumeratePhysicalDevices, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDevices.html
105   template <typename Dispatch>
enumeratePhysicalDevices(uint32_t * pPhysicalDeviceCount,VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices,Dispatch const & d) const106   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::enumeratePhysicalDevices( uint32_t *                             pPhysicalDeviceCount,
107                                                                                     VULKAN_HPP_NAMESPACE::PhysicalDevice * pPhysicalDevices,
108                                                                                     Dispatch const &                       d ) const VULKAN_HPP_NOEXCEPT
109   {
110     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
111     return static_cast<Result>(
112       d.vkEnumeratePhysicalDevices( static_cast<VkInstance>( m_instance ), pPhysicalDeviceCount, reinterpret_cast<VkPhysicalDevice *>( pPhysicalDevices ) ) );
113   }
114 
115 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
116   // wrapper function for command vkEnumeratePhysicalDevices, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDevices.html
117   template <typename PhysicalDeviceAllocator,
118             typename Dispatch,
119             typename std::enable_if<std::is_same<typename PhysicalDeviceAllocator::value_type, VULKAN_HPP_NAMESPACE::PhysicalDevice>::value, int>::type>
120   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDevice, PhysicalDeviceAllocator>>::type
enumeratePhysicalDevices(Dispatch const & d) const121                        Instance::enumeratePhysicalDevices( Dispatch const & d ) const
122   {
123     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
124 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
125     VULKAN_HPP_ASSERT( d.vkEnumeratePhysicalDevices && "Function <vkEnumeratePhysicalDevices> requires <VK_VERSION_1_0>" );
126 #  endif
127 
128     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDevice, PhysicalDeviceAllocator> physicalDevices;
129     uint32_t                                                                   physicalDeviceCount;
130     VULKAN_HPP_NAMESPACE::Result                                               result;
131     do
132     {
133       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) );
134       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceCount )
135       {
136         physicalDevices.resize( physicalDeviceCount );
137         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
138           d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast<VkPhysicalDevice *>( physicalDevices.data() ) ) );
139       }
140     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
141     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDevices" );
142     VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() );
143     if ( physicalDeviceCount < physicalDevices.size() )
144     {
145       physicalDevices.resize( physicalDeviceCount );
146     }
147     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( physicalDevices ) );
148   }
149 
150   // wrapper function for command vkEnumeratePhysicalDevices, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDevices.html
151   template <typename PhysicalDeviceAllocator,
152             typename Dispatch,
153             typename std::enable_if<std::is_same<typename PhysicalDeviceAllocator::value_type, VULKAN_HPP_NAMESPACE::PhysicalDevice>::value, int>::type>
154   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDevice, PhysicalDeviceAllocator>>::type
enumeratePhysicalDevices(PhysicalDeviceAllocator & physicalDeviceAllocator,Dispatch const & d) const155                        Instance::enumeratePhysicalDevices( PhysicalDeviceAllocator & physicalDeviceAllocator, Dispatch const & d ) const
156   {
157     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
158 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
159     VULKAN_HPP_ASSERT( d.vkEnumeratePhysicalDevices && "Function <vkEnumeratePhysicalDevices> requires <VK_VERSION_1_0>" );
160 #  endif
161 
162     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDevice, PhysicalDeviceAllocator> physicalDevices( physicalDeviceAllocator );
163     uint32_t                                                                   physicalDeviceCount;
164     VULKAN_HPP_NAMESPACE::Result                                               result;
165     do
166     {
167       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, nullptr ) );
168       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceCount )
169       {
170         physicalDevices.resize( physicalDeviceCount );
171         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
172           d.vkEnumeratePhysicalDevices( m_instance, &physicalDeviceCount, reinterpret_cast<VkPhysicalDevice *>( physicalDevices.data() ) ) );
173       }
174     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
175     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDevices" );
176     VULKAN_HPP_ASSERT( physicalDeviceCount <= physicalDevices.size() );
177     if ( physicalDeviceCount < physicalDevices.size() )
178     {
179       physicalDevices.resize( physicalDeviceCount );
180     }
181     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( physicalDevices ) );
182   }
183 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
184 
185   // wrapper function for command vkGetPhysicalDeviceFeatures, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFeatures.html
186   template <typename Dispatch>
getFeatures(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pFeatures,Dispatch const & d) const187   VULKAN_HPP_INLINE void PhysicalDevice::getFeatures( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures * pFeatures, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
188   {
189     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
190     d.vkGetPhysicalDeviceFeatures( static_cast<VkPhysicalDevice>( m_physicalDevice ), reinterpret_cast<VkPhysicalDeviceFeatures *>( pFeatures ) );
191   }
192 
193 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
194   // wrapper function for command vkGetPhysicalDeviceFeatures, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFeatures.html
195   template <typename Dispatch>
196   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures
getFeatures(Dispatch const & d) const197                                          PhysicalDevice::getFeatures( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
198   {
199     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
200 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
201     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceFeatures && "Function <vkGetPhysicalDeviceFeatures> requires <VK_VERSION_1_0>" );
202 #  endif
203 
204     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures features;
205     d.vkGetPhysicalDeviceFeatures( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures *>( &features ) );
206 
207     return features;
208   }
209 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
210 
211   // wrapper function for command vkGetPhysicalDeviceFormatProperties, see
212   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFormatProperties.html
213   template <typename Dispatch>
getFormatProperties(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::FormatProperties * pFormatProperties,Dispatch const & d) const214   VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format             format,
215                                                               VULKAN_HPP_NAMESPACE::FormatProperties * pFormatProperties,
216                                                               Dispatch const &                         d ) const VULKAN_HPP_NOEXCEPT
217   {
218     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
219     d.vkGetPhysicalDeviceFormatProperties(
220       static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties *>( pFormatProperties ) );
221   }
222 
223 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
224   // wrapper function for command vkGetPhysicalDeviceFormatProperties, see
225   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFormatProperties.html
226   template <typename Dispatch>
227   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties
getFormatProperties(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const228     PhysicalDevice::getFormatProperties( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
229   {
230     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
231 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
232     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceFormatProperties && "Function <vkGetPhysicalDeviceFormatProperties> requires <VK_VERSION_1_0>" );
233 #  endif
234 
235     VULKAN_HPP_NAMESPACE::FormatProperties formatProperties;
236     d.vkGetPhysicalDeviceFormatProperties( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties *>( &formatProperties ) );
237 
238     return formatProperties;
239   }
240 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
241 
242   // wrapper function for command vkGetPhysicalDeviceImageFormatProperties, see
243   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceImageFormatProperties.html
244   template <typename Dispatch>
getImageFormatProperties(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::ImageType type,VULKAN_HPP_NAMESPACE::ImageTiling tiling,VULKAN_HPP_NAMESPACE::ImageUsageFlags usage,VULKAN_HPP_NAMESPACE::ImageCreateFlags flags,VULKAN_HPP_NAMESPACE::ImageFormatProperties * pImageFormatProperties,Dispatch const & d) const245   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format                  format,
246                                                                                           VULKAN_HPP_NAMESPACE::ImageType               type,
247                                                                                           VULKAN_HPP_NAMESPACE::ImageTiling             tiling,
248                                                                                           VULKAN_HPP_NAMESPACE::ImageUsageFlags         usage,
249                                                                                           VULKAN_HPP_NAMESPACE::ImageCreateFlags        flags,
250                                                                                           VULKAN_HPP_NAMESPACE::ImageFormatProperties * pImageFormatProperties,
251                                                                                           Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
252   {
253     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
254     return static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ),
255                                                                             static_cast<VkFormat>( format ),
256                                                                             static_cast<VkImageType>( type ),
257                                                                             static_cast<VkImageTiling>( tiling ),
258                                                                             static_cast<VkImageUsageFlags>( usage ),
259                                                                             static_cast<VkImageCreateFlags>( flags ),
260                                                                             reinterpret_cast<VkImageFormatProperties *>( pImageFormatProperties ) ) );
261   }
262 
263 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
264   // wrapper function for command vkGetPhysicalDeviceImageFormatProperties, see
265   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceImageFormatProperties.html
266   template <typename Dispatch>
267   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageFormatProperties>::type
getImageFormatProperties(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::ImageType type,VULKAN_HPP_NAMESPACE::ImageTiling tiling,VULKAN_HPP_NAMESPACE::ImageUsageFlags usage,VULKAN_HPP_NAMESPACE::ImageCreateFlags flags,Dispatch const & d) const268                        PhysicalDevice::getImageFormatProperties( VULKAN_HPP_NAMESPACE::Format           format,
269                                               VULKAN_HPP_NAMESPACE::ImageType        type,
270                                               VULKAN_HPP_NAMESPACE::ImageTiling      tiling,
271                                               VULKAN_HPP_NAMESPACE::ImageUsageFlags  usage,
272                                               VULKAN_HPP_NAMESPACE::ImageCreateFlags flags,
273                                               Dispatch const &                       d ) const
274   {
275     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
276 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
277     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceImageFormatProperties && "Function <vkGetPhysicalDeviceImageFormatProperties> requires <VK_VERSION_1_0>" );
278 #  endif
279 
280     VULKAN_HPP_NAMESPACE::ImageFormatProperties imageFormatProperties;
281     VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
282       d.vkGetPhysicalDeviceImageFormatProperties( m_physicalDevice,
283                                                   static_cast<VkFormat>( format ),
284                                                   static_cast<VkImageType>( type ),
285                                                   static_cast<VkImageTiling>( tiling ),
286                                                   static_cast<VkImageUsageFlags>( usage ),
287                                                   static_cast<VkImageCreateFlags>( flags ),
288                                                   reinterpret_cast<VkImageFormatProperties *>( &imageFormatProperties ) ) );
289     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties" );
290 
291     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( imageFormatProperties ) );
292   }
293 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
294 
295   // wrapper function for command vkGetPhysicalDeviceProperties, see
296   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceProperties.html
297   template <typename Dispatch>
getProperties(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties * pProperties,Dispatch const & d) const298   VULKAN_HPP_INLINE void PhysicalDevice::getProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties * pProperties,
299                                                         Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
300   {
301     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
302     d.vkGetPhysicalDeviceProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ), reinterpret_cast<VkPhysicalDeviceProperties *>( pProperties ) );
303   }
304 
305 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
306   // wrapper function for command vkGetPhysicalDeviceProperties, see
307   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceProperties.html
308   template <typename Dispatch>
309   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties
getProperties(Dispatch const & d) const310                                          PhysicalDevice::getProperties( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
311   {
312     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
313 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
314     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceProperties && "Function <vkGetPhysicalDeviceProperties> requires <VK_VERSION_1_0>" );
315 #  endif
316 
317     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties properties;
318     d.vkGetPhysicalDeviceProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties *>( &properties ) );
319 
320     return properties;
321   }
322 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
323 
324   // wrapper function for command vkGetPhysicalDeviceQueueFamilyProperties, see
325   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyProperties.html
326   template <typename Dispatch>
getQueueFamilyProperties(uint32_t * pQueueFamilyPropertyCount,VULKAN_HPP_NAMESPACE::QueueFamilyProperties * pQueueFamilyProperties,Dispatch const & d) const327   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties( uint32_t *                                    pQueueFamilyPropertyCount,
328                                                                    VULKAN_HPP_NAMESPACE::QueueFamilyProperties * pQueueFamilyProperties,
329                                                                    Dispatch const &                              d ) const VULKAN_HPP_NOEXCEPT
330   {
331     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
332     d.vkGetPhysicalDeviceQueueFamilyProperties(
333       static_cast<VkPhysicalDevice>( m_physicalDevice ), pQueueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties *>( pQueueFamilyProperties ) );
334   }
335 
336 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
337   // wrapper function for command vkGetPhysicalDeviceQueueFamilyProperties, see
338   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyProperties.html
339   template <
340     typename QueueFamilyPropertiesAllocator,
341     typename Dispatch,
342     typename std::enable_if<std::is_same<typename QueueFamilyPropertiesAllocator::value_type, VULKAN_HPP_NAMESPACE::QueueFamilyProperties>::value, int>::type>
343   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties, QueueFamilyPropertiesAllocator>
getQueueFamilyProperties(Dispatch const & d) const344                                          PhysicalDevice::getQueueFamilyProperties( Dispatch const & d ) const
345   {
346     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
347 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
348     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceQueueFamilyProperties && "Function <vkGetPhysicalDeviceQueueFamilyProperties> requires <VK_VERSION_1_0>" );
349 #  endif
350 
351     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties, QueueFamilyPropertiesAllocator> queueFamilyProperties;
352     uint32_t                                                                                 queueFamilyPropertyCount;
353     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
354     queueFamilyProperties.resize( queueFamilyPropertyCount );
355     d.vkGetPhysicalDeviceQueueFamilyProperties(
356       m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties *>( queueFamilyProperties.data() ) );
357 
358     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
359     if ( queueFamilyPropertyCount < queueFamilyProperties.size() )
360     {
361       queueFamilyProperties.resize( queueFamilyPropertyCount );
362     }
363     return queueFamilyProperties;
364   }
365 
366   // wrapper function for command vkGetPhysicalDeviceQueueFamilyProperties, see
367   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyProperties.html
368   template <
369     typename QueueFamilyPropertiesAllocator,
370     typename Dispatch,
371     typename std::enable_if<std::is_same<typename QueueFamilyPropertiesAllocator::value_type, VULKAN_HPP_NAMESPACE::QueueFamilyProperties>::value, int>::type>
372   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties, QueueFamilyPropertiesAllocator>
getQueueFamilyProperties(QueueFamilyPropertiesAllocator & queueFamilyPropertiesAllocator,Dispatch const & d) const373     PhysicalDevice::getQueueFamilyProperties( QueueFamilyPropertiesAllocator & queueFamilyPropertiesAllocator, Dispatch const & d ) const
374   {
375     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
376 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
377     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceQueueFamilyProperties && "Function <vkGetPhysicalDeviceQueueFamilyProperties> requires <VK_VERSION_1_0>" );
378 #  endif
379 
380     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties, QueueFamilyPropertiesAllocator> queueFamilyProperties( queueFamilyPropertiesAllocator );
381     uint32_t                                                                                 queueFamilyPropertyCount;
382     d.vkGetPhysicalDeviceQueueFamilyProperties( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
383     queueFamilyProperties.resize( queueFamilyPropertyCount );
384     d.vkGetPhysicalDeviceQueueFamilyProperties(
385       m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties *>( queueFamilyProperties.data() ) );
386 
387     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
388     if ( queueFamilyPropertyCount < queueFamilyProperties.size() )
389     {
390       queueFamilyProperties.resize( queueFamilyPropertyCount );
391     }
392     return queueFamilyProperties;
393   }
394 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
395 
396   // wrapper function for command vkGetPhysicalDeviceMemoryProperties, see
397   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceMemoryProperties.html
398   template <typename Dispatch>
getMemoryProperties(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties * pMemoryProperties,Dispatch const & d) const399   VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties * pMemoryProperties,
400                                                               Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
401   {
402     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
403     d.vkGetPhysicalDeviceMemoryProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ),
404                                            reinterpret_cast<VkPhysicalDeviceMemoryProperties *>( pMemoryProperties ) );
405   }
406 
407 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
408   // wrapper function for command vkGetPhysicalDeviceMemoryProperties, see
409   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceMemoryProperties.html
410   template <typename Dispatch>
411   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties
getMemoryProperties(Dispatch const & d) const412                                          PhysicalDevice::getMemoryProperties( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
413   {
414     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
415 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
416     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceMemoryProperties && "Function <vkGetPhysicalDeviceMemoryProperties> requires <VK_VERSION_1_0>" );
417 #  endif
418 
419     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties memoryProperties;
420     d.vkGetPhysicalDeviceMemoryProperties( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties *>( &memoryProperties ) );
421 
422     return memoryProperties;
423   }
424 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
425 
426   // wrapper function for command vkGetInstanceProcAddr, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetInstanceProcAddr.html
427   template <typename Dispatch>
getProcAddr(const char * pName,Dispatch const & d) const428   VULKAN_HPP_INLINE PFN_vkVoidFunction Instance::getProcAddr( const char * pName, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
429   {
430     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
431     return d.vkGetInstanceProcAddr( static_cast<VkInstance>( m_instance ), pName );
432   }
433 
434 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
435   // wrapper function for command vkGetInstanceProcAddr, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetInstanceProcAddr.html
436   template <typename Dispatch>
getProcAddr(const std::string & name,Dispatch const & d) const437   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PFN_VoidFunction Instance::getProcAddr( const std::string & name, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
438   {
439     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
440 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
441     VULKAN_HPP_ASSERT( d.vkGetInstanceProcAddr && "Function <vkGetInstanceProcAddr> requires <VK_VERSION_1_0>" );
442 #  endif
443 
444     PFN_vkVoidFunction result = d.vkGetInstanceProcAddr( m_instance, name.c_str() );
445 
446     return result;
447   }
448 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
449 
450   // wrapper function for command vkGetDeviceProcAddr, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceProcAddr.html
451   template <typename Dispatch>
getProcAddr(const char * pName,Dispatch const & d) const452   VULKAN_HPP_INLINE PFN_vkVoidFunction Device::getProcAddr( const char * pName, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
453   {
454     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
455     return d.vkGetDeviceProcAddr( static_cast<VkDevice>( m_device ), pName );
456   }
457 
458 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
459   // wrapper function for command vkGetDeviceProcAddr, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceProcAddr.html
460   template <typename Dispatch>
getProcAddr(const std::string & name,Dispatch const & d) const461   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PFN_VoidFunction Device::getProcAddr( const std::string & name, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
462   {
463     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
464 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
465     VULKAN_HPP_ASSERT( d.vkGetDeviceProcAddr && "Function <vkGetDeviceProcAddr> requires <VK_VERSION_1_0>" );
466 #  endif
467 
468     PFN_vkVoidFunction result = d.vkGetDeviceProcAddr( m_device, name.c_str() );
469 
470     return result;
471   }
472 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
473 
474   // wrapper function for command vkCreateDevice, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDevice.html
475   template <typename Dispatch>
createDevice(const VULKAN_HPP_NAMESPACE::DeviceCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Device * pDevice,Dispatch const & d) const476   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::createDevice( const VULKAN_HPP_NAMESPACE::DeviceCreateInfo *    pCreateInfo,
477                                                                               const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
478                                                                               VULKAN_HPP_NAMESPACE::Device *                    pDevice,
479                                                                               Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
480   {
481     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
482     return static_cast<Result>( d.vkCreateDevice( static_cast<VkPhysicalDevice>( m_physicalDevice ),
483                                                   reinterpret_cast<const VkDeviceCreateInfo *>( pCreateInfo ),
484                                                   reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
485                                                   reinterpret_cast<VkDevice *>( pDevice ) ) );
486   }
487 
488 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
489   // wrapper function for command vkCreateDevice, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDevice.html
490   template <typename Dispatch>
createDevice(const VULKAN_HPP_NAMESPACE::DeviceCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const491   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Device>::type PhysicalDevice::createDevice(
492     const VULKAN_HPP_NAMESPACE::DeviceCreateInfo & createInfo, Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator, Dispatch const & d ) const
493   {
494     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
495 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
496     VULKAN_HPP_ASSERT( d.vkCreateDevice && "Function <vkCreateDevice> requires <VK_VERSION_1_0>" );
497 #  endif
498 
499     VULKAN_HPP_NAMESPACE::Device device;
500     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
501       d.vkCreateDevice( m_physicalDevice,
502                         reinterpret_cast<const VkDeviceCreateInfo *>( &createInfo ),
503                         reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
504                         reinterpret_cast<VkDevice *>( &device ) ) );
505     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDevice" );
506 
507     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( device ) );
508   }
509 
510 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
511   // wrapper function for command vkCreateDevice, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDevice.html
512   template <typename Dispatch>
513   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Device, Dispatch>>::type
createDeviceUnique(const VULKAN_HPP_NAMESPACE::DeviceCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const514                        PhysicalDevice::createDeviceUnique( const VULKAN_HPP_NAMESPACE::DeviceCreateInfo &            createInfo,
515                                         Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
516                                         Dispatch const &                                          d ) const
517   {
518     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
519 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
520     VULKAN_HPP_ASSERT( d.vkCreateDevice && "Function <vkCreateDevice> requires <VK_VERSION_1_0>" );
521 #    endif
522 
523     VULKAN_HPP_NAMESPACE::Device device;
524     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
525       d.vkCreateDevice( m_physicalDevice,
526                         reinterpret_cast<const VkDeviceCreateInfo *>( &createInfo ),
527                         reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
528                         reinterpret_cast<VkDevice *>( &device ) ) );
529     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDeviceUnique" );
530 
531     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
532       result, UniqueHandle<VULKAN_HPP_NAMESPACE::Device, Dispatch>( device, detail::ObjectDestroy<detail::NoParent, Dispatch>( allocator, d ) ) );
533   }
534 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
535 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
536 
537   // wrapper function for command vkDestroyDevice, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDevice.html
538   template <typename Dispatch>
destroy(const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const539   VULKAN_HPP_INLINE void Device::destroy( const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
540   {
541     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
542     d.vkDestroyDevice( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
543   }
544 
545 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
546   // wrapper function for command vkDestroyDevice, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDevice.html
547   template <typename Dispatch>
destroy(Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const548   VULKAN_HPP_INLINE void Device::destroy( Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
549   {
550     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
551 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
552     VULKAN_HPP_ASSERT( d.vkDestroyDevice && "Function <vkDestroyDevice> requires <VK_VERSION_1_0>" );
553 #  endif
554 
555     d.vkDestroyDevice( m_device,
556                        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
557   }
558 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
559 
560   // wrapper function for command vkEnumerateInstanceExtensionProperties, see
561   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateInstanceExtensionProperties.html
562   template <typename Dispatch>
enumerateInstanceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::ExtensionProperties * pProperties,Dispatch const & d)563   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result enumerateInstanceExtensionProperties( const char *                                pLayerName,
564                                                                                       uint32_t *                                  pPropertyCount,
565                                                                                       VULKAN_HPP_NAMESPACE::ExtensionProperties * pProperties,
566                                                                                       Dispatch const &                            d ) VULKAN_HPP_NOEXCEPT
567   {
568     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
569     return static_cast<Result>(
570       d.vkEnumerateInstanceExtensionProperties( pLayerName, pPropertyCount, reinterpret_cast<VkExtensionProperties *>( pProperties ) ) );
571   }
572 
573 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
574   // wrapper function for command vkEnumerateInstanceExtensionProperties, see
575   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateInstanceExtensionProperties.html
576   template <
577     typename ExtensionPropertiesAllocator,
578     typename Dispatch,
579     typename std::enable_if<std::is_same<typename ExtensionPropertiesAllocator::value_type, VULKAN_HPP_NAMESPACE::ExtensionProperties>::value, int>::type>
580   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties, ExtensionPropertiesAllocator>>::type
enumerateInstanceExtensionProperties(Optional<const std::string> layerName,Dispatch const & d)581                        enumerateInstanceExtensionProperties( Optional<const std::string> layerName, Dispatch const & d )
582   {
583     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
584 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
585     VULKAN_HPP_ASSERT( d.vkEnumerateInstanceExtensionProperties && "Function <vkEnumerateInstanceExtensionProperties> requires <VK_VERSION_1_0>" );
586 #  endif
587 
588     std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties, ExtensionPropertiesAllocator> properties;
589     uint32_t                                                                             propertyCount;
590     VULKAN_HPP_NAMESPACE::Result                                                         result;
591     do
592     {
593       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
594         d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
595       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
596       {
597         properties.resize( propertyCount );
598         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumerateInstanceExtensionProperties(
599           layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>( properties.data() ) ) );
600       }
601     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
602     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceExtensionProperties" );
603     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
604     if ( propertyCount < properties.size() )
605     {
606       properties.resize( propertyCount );
607     }
608     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
609   }
610 
611   // wrapper function for command vkEnumerateInstanceExtensionProperties, see
612   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateInstanceExtensionProperties.html
613   template <
614     typename ExtensionPropertiesAllocator,
615     typename Dispatch,
616     typename std::enable_if<std::is_same<typename ExtensionPropertiesAllocator::value_type, VULKAN_HPP_NAMESPACE::ExtensionProperties>::value, int>::type>
617   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties, ExtensionPropertiesAllocator>>::type
enumerateInstanceExtensionProperties(Optional<const std::string> layerName,ExtensionPropertiesAllocator & extensionPropertiesAllocator,Dispatch const & d)618                        enumerateInstanceExtensionProperties( Optional<const std::string>    layerName,
619                                                              ExtensionPropertiesAllocator & extensionPropertiesAllocator,
620                                                              Dispatch const &               d )
621   {
622     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
623 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
624     VULKAN_HPP_ASSERT( d.vkEnumerateInstanceExtensionProperties && "Function <vkEnumerateInstanceExtensionProperties> requires <VK_VERSION_1_0>" );
625 #  endif
626 
627     std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties, ExtensionPropertiesAllocator> properties( extensionPropertiesAllocator );
628     uint32_t                                                                             propertyCount;
629     VULKAN_HPP_NAMESPACE::Result                                                         result;
630     do
631     {
632       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
633         d.vkEnumerateInstanceExtensionProperties( layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
634       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
635       {
636         properties.resize( propertyCount );
637         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumerateInstanceExtensionProperties(
638           layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>( properties.data() ) ) );
639       }
640     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
641     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceExtensionProperties" );
642     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
643     if ( propertyCount < properties.size() )
644     {
645       properties.resize( propertyCount );
646     }
647     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
648   }
649 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
650 
651   // wrapper function for command vkEnumerateDeviceExtensionProperties, see
652   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateDeviceExtensionProperties.html
653   template <typename Dispatch>
enumerateDeviceExtensionProperties(const char * pLayerName,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::ExtensionProperties * pProperties,Dispatch const & d) const654   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::enumerateDeviceExtensionProperties( const char *                                pLayerName,
655                                                                                                     uint32_t *                                  pPropertyCount,
656                                                                                                     VULKAN_HPP_NAMESPACE::ExtensionProperties * pProperties,
657                                                                                                     Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
658   {
659     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
660     return static_cast<Result>( d.vkEnumerateDeviceExtensionProperties(
661       static_cast<VkPhysicalDevice>( m_physicalDevice ), pLayerName, pPropertyCount, reinterpret_cast<VkExtensionProperties *>( pProperties ) ) );
662   }
663 
664 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
665   // wrapper function for command vkEnumerateDeviceExtensionProperties, see
666   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateDeviceExtensionProperties.html
667   template <
668     typename ExtensionPropertiesAllocator,
669     typename Dispatch,
670     typename std::enable_if<std::is_same<typename ExtensionPropertiesAllocator::value_type, VULKAN_HPP_NAMESPACE::ExtensionProperties>::value, int>::type>
671   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties, ExtensionPropertiesAllocator>>::type
enumerateDeviceExtensionProperties(Optional<const std::string> layerName,Dispatch const & d) const672                        PhysicalDevice::enumerateDeviceExtensionProperties( Optional<const std::string> layerName, Dispatch const & d ) const
673   {
674     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
675 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
676     VULKAN_HPP_ASSERT( d.vkEnumerateDeviceExtensionProperties && "Function <vkEnumerateDeviceExtensionProperties> requires <VK_VERSION_1_0>" );
677 #  endif
678 
679     std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties, ExtensionPropertiesAllocator> properties;
680     uint32_t                                                                             propertyCount;
681     VULKAN_HPP_NAMESPACE::Result                                                         result;
682     do
683     {
684       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
685         d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
686       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
687       {
688         properties.resize( propertyCount );
689         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumerateDeviceExtensionProperties(
690           m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>( properties.data() ) ) );
691       }
692     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
693     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceExtensionProperties" );
694     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
695     if ( propertyCount < properties.size() )
696     {
697       properties.resize( propertyCount );
698     }
699     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
700   }
701 
702   // wrapper function for command vkEnumerateDeviceExtensionProperties, see
703   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateDeviceExtensionProperties.html
704   template <
705     typename ExtensionPropertiesAllocator,
706     typename Dispatch,
707     typename std::enable_if<std::is_same<typename ExtensionPropertiesAllocator::value_type, VULKAN_HPP_NAMESPACE::ExtensionProperties>::value, int>::type>
708   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties, ExtensionPropertiesAllocator>>::type
enumerateDeviceExtensionProperties(Optional<const std::string> layerName,ExtensionPropertiesAllocator & extensionPropertiesAllocator,Dispatch const & d) const709                        PhysicalDevice::enumerateDeviceExtensionProperties( Optional<const std::string>    layerName,
710                                                         ExtensionPropertiesAllocator & extensionPropertiesAllocator,
711                                                         Dispatch const &               d ) const
712   {
713     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
714 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
715     VULKAN_HPP_ASSERT( d.vkEnumerateDeviceExtensionProperties && "Function <vkEnumerateDeviceExtensionProperties> requires <VK_VERSION_1_0>" );
716 #  endif
717 
718     std::vector<VULKAN_HPP_NAMESPACE::ExtensionProperties, ExtensionPropertiesAllocator> properties( extensionPropertiesAllocator );
719     uint32_t                                                                             propertyCount;
720     VULKAN_HPP_NAMESPACE::Result                                                         result;
721     do
722     {
723       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
724         d.vkEnumerateDeviceExtensionProperties( m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, nullptr ) );
725       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
726       {
727         properties.resize( propertyCount );
728         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumerateDeviceExtensionProperties(
729           m_physicalDevice, layerName ? layerName->c_str() : nullptr, &propertyCount, reinterpret_cast<VkExtensionProperties *>( properties.data() ) ) );
730       }
731     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
732     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceExtensionProperties" );
733     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
734     if ( propertyCount < properties.size() )
735     {
736       properties.resize( propertyCount );
737     }
738     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
739   }
740 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
741 
742   // wrapper function for command vkEnumerateInstanceLayerProperties, see
743   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateInstanceLayerProperties.html
744   template <typename Dispatch>
enumerateInstanceLayerProperties(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::LayerProperties * pProperties,Dispatch const & d)745   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result enumerateInstanceLayerProperties( uint32_t *                              pPropertyCount,
746                                                                                   VULKAN_HPP_NAMESPACE::LayerProperties * pProperties,
747                                                                                   Dispatch const &                        d ) VULKAN_HPP_NOEXCEPT
748   {
749     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
750     return static_cast<Result>( d.vkEnumerateInstanceLayerProperties( pPropertyCount, reinterpret_cast<VkLayerProperties *>( pProperties ) ) );
751   }
752 
753 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
754   // wrapper function for command vkEnumerateInstanceLayerProperties, see
755   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateInstanceLayerProperties.html
756   template <typename LayerPropertiesAllocator,
757             typename Dispatch,
758             typename std::enable_if<std::is_same<typename LayerPropertiesAllocator::value_type, VULKAN_HPP_NAMESPACE::LayerProperties>::value, int>::type>
759   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::LayerProperties, LayerPropertiesAllocator>>::type
enumerateInstanceLayerProperties(Dispatch const & d)760                        enumerateInstanceLayerProperties( Dispatch const & d )
761   {
762     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
763 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
764     VULKAN_HPP_ASSERT( d.vkEnumerateInstanceLayerProperties && "Function <vkEnumerateInstanceLayerProperties> requires <VK_VERSION_1_0>" );
765 #  endif
766 
767     std::vector<VULKAN_HPP_NAMESPACE::LayerProperties, LayerPropertiesAllocator> properties;
768     uint32_t                                                                     propertyCount;
769     VULKAN_HPP_NAMESPACE::Result                                                 result;
770     do
771     {
772       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) );
773       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
774       {
775         properties.resize( propertyCount );
776         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
777           d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) ) );
778       }
779     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
780     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceLayerProperties" );
781     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
782     if ( propertyCount < properties.size() )
783     {
784       properties.resize( propertyCount );
785     }
786     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
787   }
788 
789   // wrapper function for command vkEnumerateInstanceLayerProperties, see
790   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateInstanceLayerProperties.html
791   template <typename LayerPropertiesAllocator,
792             typename Dispatch,
793             typename std::enable_if<std::is_same<typename LayerPropertiesAllocator::value_type, VULKAN_HPP_NAMESPACE::LayerProperties>::value, int>::type>
794   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::LayerProperties, LayerPropertiesAllocator>>::type
enumerateInstanceLayerProperties(LayerPropertiesAllocator & layerPropertiesAllocator,Dispatch const & d)795                        enumerateInstanceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d )
796   {
797     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
798 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
799     VULKAN_HPP_ASSERT( d.vkEnumerateInstanceLayerProperties && "Function <vkEnumerateInstanceLayerProperties> requires <VK_VERSION_1_0>" );
800 #  endif
801 
802     std::vector<VULKAN_HPP_NAMESPACE::LayerProperties, LayerPropertiesAllocator> properties( layerPropertiesAllocator );
803     uint32_t                                                                     propertyCount;
804     VULKAN_HPP_NAMESPACE::Result                                                 result;
805     do
806     {
807       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumerateInstanceLayerProperties( &propertyCount, nullptr ) );
808       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
809       {
810         properties.resize( propertyCount );
811         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
812           d.vkEnumerateInstanceLayerProperties( &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) ) );
813       }
814     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
815     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceLayerProperties" );
816     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
817     if ( propertyCount < properties.size() )
818     {
819       properties.resize( propertyCount );
820     }
821     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
822   }
823 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
824 
825   // wrapper function for command vkEnumerateDeviceLayerProperties, see
826   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateDeviceLayerProperties.html
827   template <typename Dispatch>
enumerateDeviceLayerProperties(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::LayerProperties * pProperties,Dispatch const & d) const828   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::enumerateDeviceLayerProperties( uint32_t *                              pPropertyCount,
829                                                                                                 VULKAN_HPP_NAMESPACE::LayerProperties * pProperties,
830                                                                                                 Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
831   {
832     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
833     return static_cast<Result>( d.vkEnumerateDeviceLayerProperties(
834       static_cast<VkPhysicalDevice>( m_physicalDevice ), pPropertyCount, reinterpret_cast<VkLayerProperties *>( pProperties ) ) );
835   }
836 
837 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
838   // wrapper function for command vkEnumerateDeviceLayerProperties, see
839   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateDeviceLayerProperties.html
840   template <typename LayerPropertiesAllocator,
841             typename Dispatch,
842             typename std::enable_if<std::is_same<typename LayerPropertiesAllocator::value_type, VULKAN_HPP_NAMESPACE::LayerProperties>::value, int>::type>
843   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::LayerProperties, LayerPropertiesAllocator>>::type
enumerateDeviceLayerProperties(Dispatch const & d) const844                        PhysicalDevice::enumerateDeviceLayerProperties( Dispatch const & d ) const
845   {
846     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
847 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
848     VULKAN_HPP_ASSERT( d.vkEnumerateDeviceLayerProperties && "Function <vkEnumerateDeviceLayerProperties> requires <VK_VERSION_1_0>" );
849 #  endif
850 
851     std::vector<VULKAN_HPP_NAMESPACE::LayerProperties, LayerPropertiesAllocator> properties;
852     uint32_t                                                                     propertyCount;
853     VULKAN_HPP_NAMESPACE::Result                                                 result;
854     do
855     {
856       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) );
857       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
858       {
859         properties.resize( propertyCount );
860         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
861           d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) ) );
862       }
863     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
864     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceLayerProperties" );
865     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
866     if ( propertyCount < properties.size() )
867     {
868       properties.resize( propertyCount );
869     }
870     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
871   }
872 
873   // wrapper function for command vkEnumerateDeviceLayerProperties, see
874   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateDeviceLayerProperties.html
875   template <typename LayerPropertiesAllocator,
876             typename Dispatch,
877             typename std::enable_if<std::is_same<typename LayerPropertiesAllocator::value_type, VULKAN_HPP_NAMESPACE::LayerProperties>::value, int>::type>
878   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::LayerProperties, LayerPropertiesAllocator>>::type
enumerateDeviceLayerProperties(LayerPropertiesAllocator & layerPropertiesAllocator,Dispatch const & d) const879                        PhysicalDevice::enumerateDeviceLayerProperties( LayerPropertiesAllocator & layerPropertiesAllocator, Dispatch const & d ) const
880   {
881     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
882 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
883     VULKAN_HPP_ASSERT( d.vkEnumerateDeviceLayerProperties && "Function <vkEnumerateDeviceLayerProperties> requires <VK_VERSION_1_0>" );
884 #  endif
885 
886     std::vector<VULKAN_HPP_NAMESPACE::LayerProperties, LayerPropertiesAllocator> properties( layerPropertiesAllocator );
887     uint32_t                                                                     propertyCount;
888     VULKAN_HPP_NAMESPACE::Result                                                 result;
889     do
890     {
891       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, nullptr ) );
892       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
893       {
894         properties.resize( propertyCount );
895         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
896           d.vkEnumerateDeviceLayerProperties( m_physicalDevice, &propertyCount, reinterpret_cast<VkLayerProperties *>( properties.data() ) ) );
897       }
898     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
899     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateDeviceLayerProperties" );
900     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
901     if ( propertyCount < properties.size() )
902     {
903       properties.resize( propertyCount );
904     }
905     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
906   }
907 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
908 
909   // wrapper function for command vkGetDeviceQueue, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceQueue.html
910   template <typename Dispatch>
911   VULKAN_HPP_INLINE void
getQueue(uint32_t queueFamilyIndex,uint32_t queueIndex,VULKAN_HPP_NAMESPACE::Queue * pQueue,Dispatch const & d) const912     Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, VULKAN_HPP_NAMESPACE::Queue * pQueue, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
913   {
914     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
915     d.vkGetDeviceQueue( static_cast<VkDevice>( m_device ), queueFamilyIndex, queueIndex, reinterpret_cast<VkQueue *>( pQueue ) );
916   }
917 
918 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
919   // wrapper function for command vkGetDeviceQueue, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceQueue.html
920   template <typename Dispatch>
921   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Queue
getQueue(uint32_t queueFamilyIndex,uint32_t queueIndex,Dispatch const & d) const922                                          Device::getQueue( uint32_t queueFamilyIndex, uint32_t queueIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
923   {
924     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
925 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
926     VULKAN_HPP_ASSERT( d.vkGetDeviceQueue && "Function <vkGetDeviceQueue> requires <VK_VERSION_1_0>" );
927 #  endif
928 
929     VULKAN_HPP_NAMESPACE::Queue queue;
930     d.vkGetDeviceQueue( m_device, queueFamilyIndex, queueIndex, reinterpret_cast<VkQueue *>( &queue ) );
931 
932     return queue;
933   }
934 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
935 
936   // wrapper function for command vkQueueSubmit, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSubmit.html
937   template <typename Dispatch>
submit(uint32_t submitCount,const VULKAN_HPP_NAMESPACE::SubmitInfo * pSubmits,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const938   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::submit( uint32_t                                 submitCount,
939                                                                const VULKAN_HPP_NAMESPACE::SubmitInfo * pSubmits,
940                                                                VULKAN_HPP_NAMESPACE::Fence              fence,
941                                                                Dispatch const &                         d ) const VULKAN_HPP_NOEXCEPT
942   {
943     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
944     return static_cast<Result>(
945       d.vkQueueSubmit( static_cast<VkQueue>( m_queue ), submitCount, reinterpret_cast<const VkSubmitInfo *>( pSubmits ), static_cast<VkFence>( fence ) ) );
946   }
947 
948 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
949   // wrapper function for command vkQueueSubmit, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSubmit.html
950   template <typename Dispatch>
submit(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo> const & submits,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const951   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Queue::submit(
952     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo> const & submits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const
953   {
954     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
955 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
956     VULKAN_HPP_ASSERT( d.vkQueueSubmit && "Function <vkQueueSubmit> requires <VK_VERSION_1_0>" );
957 #  endif
958 
959     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
960       d.vkQueueSubmit( m_queue, submits.size(), reinterpret_cast<const VkSubmitInfo *>( submits.data() ), static_cast<VkFence>( fence ) ) );
961     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit" );
962 
963     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
964   }
965 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
966 
967 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
968   // wrapper function for command vkQueueWaitIdle, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueWaitIdle.html
969   template <typename Dispatch>
waitIdle(Dispatch const & d) const970   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::waitIdle( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
971   {
972     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
973     return static_cast<Result>( d.vkQueueWaitIdle( static_cast<VkQueue>( m_queue ) ) );
974   }
975 #else
976   // wrapper function for command vkQueueWaitIdle, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueWaitIdle.html
977   template <typename Dispatch>
waitIdle(Dispatch const & d) const978   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Queue::waitIdle( Dispatch const & d ) const
979   {
980     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
981 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
982     VULKAN_HPP_ASSERT( d.vkQueueWaitIdle && "Function <vkQueueWaitIdle> requires <VK_VERSION_1_0>" );
983 #  endif
984 
985     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkQueueWaitIdle( m_queue ) );
986     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::waitIdle" );
987 
988     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
989   }
990 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
991 
992 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
993   // wrapper function for command vkDeviceWaitIdle, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDeviceWaitIdle.html
994   template <typename Dispatch>
waitIdle(Dispatch const & d) const995   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitIdle( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
996   {
997     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
998     return static_cast<Result>( d.vkDeviceWaitIdle( static_cast<VkDevice>( m_device ) ) );
999   }
1000 #else
1001   // wrapper function for command vkDeviceWaitIdle, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDeviceWaitIdle.html
1002   template <typename Dispatch>
waitIdle(Dispatch const & d) const1003   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::waitIdle( Dispatch const & d ) const
1004   {
1005     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1006 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1007     VULKAN_HPP_ASSERT( d.vkDeviceWaitIdle && "Function <vkDeviceWaitIdle> requires <VK_VERSION_1_0>" );
1008 #  endif
1009 
1010     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkDeviceWaitIdle( m_device ) );
1011     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitIdle" );
1012 
1013     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
1014   }
1015 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
1016 
1017   // wrapper function for command vkAllocateMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAllocateMemory.html
1018   template <typename Dispatch>
allocateMemory(const VULKAN_HPP_NAMESPACE::MemoryAllocateInfo * pAllocateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DeviceMemory * pMemory,Dispatch const & d) const1019   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::allocateMemory( const VULKAN_HPP_NAMESPACE::MemoryAllocateInfo *  pAllocateInfo,
1020                                                                         const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
1021                                                                         VULKAN_HPP_NAMESPACE::DeviceMemory *              pMemory,
1022                                                                         Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
1023   {
1024     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1025     return static_cast<Result>( d.vkAllocateMemory( static_cast<VkDevice>( m_device ),
1026                                                     reinterpret_cast<const VkMemoryAllocateInfo *>( pAllocateInfo ),
1027                                                     reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
1028                                                     reinterpret_cast<VkDeviceMemory *>( pMemory ) ) );
1029   }
1030 
1031 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
1032   // wrapper function for command vkAllocateMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAllocateMemory.html
1033   template <typename Dispatch>
1034   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceMemory>::type
allocateMemory(const VULKAN_HPP_NAMESPACE::MemoryAllocateInfo & allocateInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const1035                        Device::allocateMemory( const VULKAN_HPP_NAMESPACE::MemoryAllocateInfo &          allocateInfo,
1036                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
1037                             Dispatch const &                                          d ) const
1038   {
1039     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1040 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1041     VULKAN_HPP_ASSERT( d.vkAllocateMemory && "Function <vkAllocateMemory> requires <VK_VERSION_1_0>" );
1042 #  endif
1043 
1044     VULKAN_HPP_NAMESPACE::DeviceMemory memory;
1045     VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
1046       d.vkAllocateMemory( m_device,
1047                           reinterpret_cast<const VkMemoryAllocateInfo *>( &allocateInfo ),
1048                           reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
1049                           reinterpret_cast<VkDeviceMemory *>( &memory ) ) );
1050     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateMemory" );
1051 
1052     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( memory ) );
1053   }
1054 
1055 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
1056   // wrapper function for command vkAllocateMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAllocateMemory.html
1057   template <typename Dispatch>
1058   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DeviceMemory, Dispatch>>::type
allocateMemoryUnique(const VULKAN_HPP_NAMESPACE::MemoryAllocateInfo & allocateInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const1059                        Device::allocateMemoryUnique( const VULKAN_HPP_NAMESPACE::MemoryAllocateInfo &          allocateInfo,
1060                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
1061                                   Dispatch const &                                          d ) const
1062   {
1063     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1064 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1065     VULKAN_HPP_ASSERT( d.vkAllocateMemory && "Function <vkAllocateMemory> requires <VK_VERSION_1_0>" );
1066 #    endif
1067 
1068     VULKAN_HPP_NAMESPACE::DeviceMemory memory;
1069     VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
1070       d.vkAllocateMemory( m_device,
1071                           reinterpret_cast<const VkMemoryAllocateInfo *>( &allocateInfo ),
1072                           reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
1073                           reinterpret_cast<VkDeviceMemory *>( &memory ) ) );
1074     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateMemoryUnique" );
1075 
1076     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
1077       result, UniqueHandle<VULKAN_HPP_NAMESPACE::DeviceMemory, Dispatch>( memory, detail::ObjectFree<Device, Dispatch>( *this, allocator, d ) ) );
1078   }
1079 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
1080 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
1081 
1082   // wrapper function for command vkFreeMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkFreeMemory.html
1083   template <typename Dispatch>
freeMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const1084   VULKAN_HPP_INLINE void Device::freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory                memory,
1085                                              const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
1086                                              Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
1087   {
1088     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1089     d.vkFreeMemory( static_cast<VkDevice>( m_device ), static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
1090   }
1091 
1092 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
1093   // wrapper function for command vkFreeMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkFreeMemory.html
1094   template <typename Dispatch>
freeMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const1095   VULKAN_HPP_INLINE void Device::freeMemory( VULKAN_HPP_NAMESPACE::DeviceMemory                        memory,
1096                                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
1097                                              Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
1098   {
1099     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1100 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1101     VULKAN_HPP_ASSERT( d.vkFreeMemory && "Function <vkFreeMemory> requires <VK_VERSION_1_0>" );
1102 #  endif
1103 
1104     d.vkFreeMemory( m_device,
1105                     static_cast<VkDeviceMemory>( memory ),
1106                     reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
1107   }
1108 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
1109 
1110   // wrapper function for command vkFreeMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkFreeMemory.html
1111   template <typename Dispatch>
1112   VULKAN_HPP_INLINE void( Device::free )( VULKAN_HPP_NAMESPACE::DeviceMemory                memory,
1113                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
1114                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
1115   {
1116     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1117     d.vkFreeMemory( static_cast<VkDevice>( m_device ), static_cast<VkDeviceMemory>( memory ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
1118   }
1119 
1120 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
1121   // wrapper function for command vkFreeMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkFreeMemory.html
1122   template <typename Dispatch>
1123   VULKAN_HPP_INLINE void( Device::free )( VULKAN_HPP_NAMESPACE::DeviceMemory                        memory,
1124                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
1125                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
1126   {
1127     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1128 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1129     VULKAN_HPP_ASSERT( d.vkFreeMemory && "Function <vkFreeMemory> requires <VK_VERSION_1_0>" );
1130 #  endif
1131 
1132     d.vkFreeMemory( m_device,
1133                     static_cast<VkDeviceMemory>( memory ),
1134                     reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
1135   }
1136 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
1137 
1138   // wrapper function for command vkMapMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkMapMemory.html
1139   template <typename Dispatch>
mapMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::DeviceSize size,VULKAN_HPP_NAMESPACE::MemoryMapFlags flags,void ** ppData,Dispatch const & d) const1140   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::mapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory   memory,
1141                                                                    VULKAN_HPP_NAMESPACE::DeviceSize     offset,
1142                                                                    VULKAN_HPP_NAMESPACE::DeviceSize     size,
1143                                                                    VULKAN_HPP_NAMESPACE::MemoryMapFlags flags,
1144                                                                    void **                              ppData,
1145                                                                    Dispatch const &                     d ) const VULKAN_HPP_NOEXCEPT
1146   {
1147     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1148     return static_cast<Result>( d.vkMapMemory( static_cast<VkDevice>( m_device ),
1149                                                static_cast<VkDeviceMemory>( memory ),
1150                                                static_cast<VkDeviceSize>( offset ),
1151                                                static_cast<VkDeviceSize>( size ),
1152                                                static_cast<VkMemoryMapFlags>( flags ),
1153                                                ppData ) );
1154   }
1155 
1156 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
1157   // wrapper function for command vkMapMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkMapMemory.html
1158   template <typename Dispatch>
mapMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::DeviceSize size,VULKAN_HPP_NAMESPACE::MemoryMapFlags flags,Dispatch const & d) const1159   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<void *>::type Device::mapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory   memory,
1160                                                                                                    VULKAN_HPP_NAMESPACE::DeviceSize     offset,
1161                                                                                                    VULKAN_HPP_NAMESPACE::DeviceSize     size,
1162                                                                                                    VULKAN_HPP_NAMESPACE::MemoryMapFlags flags,
1163                                                                                                    Dispatch const &                     d ) const
1164   {
1165     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1166 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1167     VULKAN_HPP_ASSERT( d.vkMapMemory && "Function <vkMapMemory> requires <VK_VERSION_1_0>" );
1168 #  endif
1169 
1170     void *                       pData;
1171     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkMapMemory( m_device,
1172                                                                                                     static_cast<VkDeviceMemory>( memory ),
1173                                                                                                     static_cast<VkDeviceSize>( offset ),
1174                                                                                                     static_cast<VkDeviceSize>( size ),
1175                                                                                                     static_cast<VkMemoryMapFlags>( flags ),
1176                                                                                                     &pData ) );
1177     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mapMemory" );
1178 
1179     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( pData ) );
1180   }
1181 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
1182 
1183   // wrapper function for command vkUnmapMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkUnmapMemory.html
1184   template <typename Dispatch>
unmapMemory(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Dispatch const & d) const1185   VULKAN_HPP_INLINE void Device::unmapMemory( VULKAN_HPP_NAMESPACE::DeviceMemory memory, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
1186   {
1187     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1188     d.vkUnmapMemory( static_cast<VkDevice>( m_device ), static_cast<VkDeviceMemory>( memory ) );
1189   }
1190 
1191   // wrapper function for command vkFlushMappedMemoryRanges, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkFlushMappedMemoryRanges.html
1192   template <typename Dispatch>
flushMappedMemoryRanges(uint32_t memoryRangeCount,const VULKAN_HPP_NAMESPACE::MappedMemoryRange * pMemoryRanges,Dispatch const & d) const1193   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::flushMappedMemoryRanges( uint32_t                                        memoryRangeCount,
1194                                                                                  const VULKAN_HPP_NAMESPACE::MappedMemoryRange * pMemoryRanges,
1195                                                                                  Dispatch const &                                d ) const VULKAN_HPP_NOEXCEPT
1196   {
1197     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1198     return static_cast<Result>(
1199       d.vkFlushMappedMemoryRanges( static_cast<VkDevice>( m_device ), memoryRangeCount, reinterpret_cast<const VkMappedMemoryRange *>( pMemoryRanges ) ) );
1200   }
1201 
1202 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
1203   // wrapper function for command vkFlushMappedMemoryRanges, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkFlushMappedMemoryRanges.html
1204   template <typename Dispatch>
1205   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
flushMappedMemoryRanges(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges,Dispatch const & d) const1206     Device::flushMappedMemoryRanges( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges,
1207                                      Dispatch const &                                                                        d ) const
1208   {
1209     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1210 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1211     VULKAN_HPP_ASSERT( d.vkFlushMappedMemoryRanges && "Function <vkFlushMappedMemoryRanges> requires <VK_VERSION_1_0>" );
1212 #  endif
1213 
1214     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
1215       d.vkFlushMappedMemoryRanges( m_device, memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) ) );
1216     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::flushMappedMemoryRanges" );
1217 
1218     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
1219   }
1220 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
1221 
1222   // wrapper function for command vkInvalidateMappedMemoryRanges, see
1223   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkInvalidateMappedMemoryRanges.html
1224   template <typename Dispatch>
invalidateMappedMemoryRanges(uint32_t memoryRangeCount,const VULKAN_HPP_NAMESPACE::MappedMemoryRange * pMemoryRanges,Dispatch const & d) const1225   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::invalidateMappedMemoryRanges( uint32_t                                        memoryRangeCount,
1226                                                                                       const VULKAN_HPP_NAMESPACE::MappedMemoryRange * pMemoryRanges,
1227                                                                                       Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
1228   {
1229     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1230     return static_cast<Result>(
1231       d.vkInvalidateMappedMemoryRanges( static_cast<VkDevice>( m_device ), memoryRangeCount, reinterpret_cast<const VkMappedMemoryRange *>( pMemoryRanges ) ) );
1232   }
1233 
1234 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
1235   // wrapper function for command vkInvalidateMappedMemoryRanges, see
1236   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkInvalidateMappedMemoryRanges.html
1237   template <typename Dispatch>
1238   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
invalidateMappedMemoryRanges(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges,Dispatch const & d) const1239     Device::invalidateMappedMemoryRanges( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MappedMemoryRange> const & memoryRanges,
1240                                           Dispatch const &                                                                        d ) const
1241   {
1242     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1243 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1244     VULKAN_HPP_ASSERT( d.vkInvalidateMappedMemoryRanges && "Function <vkInvalidateMappedMemoryRanges> requires <VK_VERSION_1_0>" );
1245 #  endif
1246 
1247     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
1248       d.vkInvalidateMappedMemoryRanges( m_device, memoryRanges.size(), reinterpret_cast<const VkMappedMemoryRange *>( memoryRanges.data() ) ) );
1249     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::invalidateMappedMemoryRanges" );
1250 
1251     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
1252   }
1253 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
1254 
1255   // wrapper function for command vkGetDeviceMemoryCommitment, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceMemoryCommitment.html
1256   template <typename Dispatch>
getMemoryCommitment(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize * pCommittedMemoryInBytes,Dispatch const & d) const1257   VULKAN_HPP_INLINE void Device::getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory,
1258                                                       VULKAN_HPP_NAMESPACE::DeviceSize * pCommittedMemoryInBytes,
1259                                                       Dispatch const &                   d ) const VULKAN_HPP_NOEXCEPT
1260   {
1261     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1262     d.vkGetDeviceMemoryCommitment(
1263       static_cast<VkDevice>( m_device ), static_cast<VkDeviceMemory>( memory ), reinterpret_cast<VkDeviceSize *>( pCommittedMemoryInBytes ) );
1264   }
1265 
1266 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
1267   // wrapper function for command vkGetDeviceMemoryCommitment, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceMemoryCommitment.html
1268   template <typename Dispatch>
getMemoryCommitment(VULKAN_HPP_NAMESPACE::DeviceMemory memory,Dispatch const & d) const1269   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize Device::getMemoryCommitment( VULKAN_HPP_NAMESPACE::DeviceMemory memory,
1270                                                                                                        Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
1271   {
1272     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1273 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1274     VULKAN_HPP_ASSERT( d.vkGetDeviceMemoryCommitment && "Function <vkGetDeviceMemoryCommitment> requires <VK_VERSION_1_0>" );
1275 #  endif
1276 
1277     VULKAN_HPP_NAMESPACE::DeviceSize committedMemoryInBytes;
1278     d.vkGetDeviceMemoryCommitment( m_device, static_cast<VkDeviceMemory>( memory ), reinterpret_cast<VkDeviceSize *>( &committedMemoryInBytes ) );
1279 
1280     return committedMemoryInBytes;
1281   }
1282 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
1283 
1284 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
1285   // wrapper function for command vkBindBufferMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindBufferMemory.html
1286   template <typename Dispatch>
bindBufferMemory(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const1287   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindBufferMemory( VULKAN_HPP_NAMESPACE::Buffer       buffer,
1288                                                                           VULKAN_HPP_NAMESPACE::DeviceMemory memory,
1289                                                                           VULKAN_HPP_NAMESPACE::DeviceSize   memoryOffset,
1290                                                                           Dispatch const &                   d ) const VULKAN_HPP_NOEXCEPT
1291   {
1292     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1293     return static_cast<Result>( d.vkBindBufferMemory(
1294       static_cast<VkDevice>( m_device ), static_cast<VkBuffer>( buffer ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
1295   }
1296 #else
1297   // wrapper function for command vkBindBufferMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindBufferMemory.html
1298   template <typename Dispatch>
bindBufferMemory(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const1299   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::bindBufferMemory(
1300     VULKAN_HPP_NAMESPACE::Buffer buffer, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d ) const
1301   {
1302     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1303 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1304     VULKAN_HPP_ASSERT( d.vkBindBufferMemory && "Function <vkBindBufferMemory> requires <VK_VERSION_1_0>" );
1305 #  endif
1306 
1307     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
1308       d.vkBindBufferMemory( m_device, static_cast<VkBuffer>( buffer ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
1309     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory" );
1310 
1311     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
1312   }
1313 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
1314 
1315 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
1316   // wrapper function for command vkBindImageMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindImageMemory.html
1317   template <typename Dispatch>
bindImageMemory(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const1318   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindImageMemory( VULKAN_HPP_NAMESPACE::Image        image,
1319                                                                          VULKAN_HPP_NAMESPACE::DeviceMemory memory,
1320                                                                          VULKAN_HPP_NAMESPACE::DeviceSize   memoryOffset,
1321                                                                          Dispatch const &                   d ) const VULKAN_HPP_NOEXCEPT
1322   {
1323     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1324     return static_cast<Result>( d.vkBindImageMemory(
1325       static_cast<VkDevice>( m_device ), static_cast<VkImage>( image ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
1326   }
1327 #else
1328   // wrapper function for command vkBindImageMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindImageMemory.html
1329   template <typename Dispatch>
bindImageMemory(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset,Dispatch const & d) const1330   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::bindImageMemory(
1331     VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::DeviceSize memoryOffset, Dispatch const & d ) const
1332   {
1333     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1334 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1335     VULKAN_HPP_ASSERT( d.vkBindImageMemory && "Function <vkBindImageMemory> requires <VK_VERSION_1_0>" );
1336 #  endif
1337 
1338     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
1339       d.vkBindImageMemory( m_device, static_cast<VkImage>( image ), static_cast<VkDeviceMemory>( memory ), static_cast<VkDeviceSize>( memoryOffset ) ) );
1340     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory" );
1341 
1342     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
1343   }
1344 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
1345 
1346   // wrapper function for command vkGetBufferMemoryRequirements, see
1347   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferMemoryRequirements.html
1348   template <typename Dispatch>
getBufferMemoryRequirements(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::MemoryRequirements * pMemoryRequirements,Dispatch const & d) const1349   VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer               buffer,
1350                                                               VULKAN_HPP_NAMESPACE::MemoryRequirements * pMemoryRequirements,
1351                                                               Dispatch const &                           d ) const VULKAN_HPP_NOEXCEPT
1352   {
1353     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1354     d.vkGetBufferMemoryRequirements(
1355       static_cast<VkDevice>( m_device ), static_cast<VkBuffer>( buffer ), reinterpret_cast<VkMemoryRequirements *>( pMemoryRequirements ) );
1356   }
1357 
1358 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
1359   // wrapper function for command vkGetBufferMemoryRequirements, see
1360   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferMemoryRequirements.html
1361   template <typename Dispatch>
1362   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements
getBufferMemoryRequirements(VULKAN_HPP_NAMESPACE::Buffer buffer,Dispatch const & d) const1363     Device::getBufferMemoryRequirements( VULKAN_HPP_NAMESPACE::Buffer buffer, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
1364   {
1365     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1366 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1367     VULKAN_HPP_ASSERT( d.vkGetBufferMemoryRequirements && "Function <vkGetBufferMemoryRequirements> requires <VK_VERSION_1_0>" );
1368 #  endif
1369 
1370     VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements;
1371     d.vkGetBufferMemoryRequirements( m_device, static_cast<VkBuffer>( buffer ), reinterpret_cast<VkMemoryRequirements *>( &memoryRequirements ) );
1372 
1373     return memoryRequirements;
1374   }
1375 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
1376 
1377   // wrapper function for command vkGetImageMemoryRequirements, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageMemoryRequirements.html
1378   template <typename Dispatch>
getImageMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::MemoryRequirements * pMemoryRequirements,Dispatch const & d) const1379   VULKAN_HPP_INLINE void Device::getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image                image,
1380                                                              VULKAN_HPP_NAMESPACE::MemoryRequirements * pMemoryRequirements,
1381                                                              Dispatch const &                           d ) const VULKAN_HPP_NOEXCEPT
1382   {
1383     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1384     d.vkGetImageMemoryRequirements(
1385       static_cast<VkDevice>( m_device ), static_cast<VkImage>( image ), reinterpret_cast<VkMemoryRequirements *>( pMemoryRequirements ) );
1386   }
1387 
1388 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
1389   // wrapper function for command vkGetImageMemoryRequirements, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageMemoryRequirements.html
1390   template <typename Dispatch>
1391   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements
getImageMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,Dispatch const & d) const1392                                          Device::getImageMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
1393   {
1394     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1395 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1396     VULKAN_HPP_ASSERT( d.vkGetImageMemoryRequirements && "Function <vkGetImageMemoryRequirements> requires <VK_VERSION_1_0>" );
1397 #  endif
1398 
1399     VULKAN_HPP_NAMESPACE::MemoryRequirements memoryRequirements;
1400     d.vkGetImageMemoryRequirements( m_device, static_cast<VkImage>( image ), reinterpret_cast<VkMemoryRequirements *>( &memoryRequirements ) );
1401 
1402     return memoryRequirements;
1403   }
1404 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
1405 
1406   // wrapper function for command vkGetImageSparseMemoryRequirements, see
1407   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSparseMemoryRequirements.html
1408   template <typename Dispatch>
getImageSparseMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,uint32_t * pSparseMemoryRequirementCount,VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements * pSparseMemoryRequirements,Dispatch const & d) const1409   VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image                           image,
1410                                                                    uint32_t *                                            pSparseMemoryRequirementCount,
1411                                                                    VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements * pSparseMemoryRequirements,
1412                                                                    Dispatch const &                                      d ) const VULKAN_HPP_NOEXCEPT
1413   {
1414     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1415     d.vkGetImageSparseMemoryRequirements( static_cast<VkDevice>( m_device ),
1416                                           static_cast<VkImage>( image ),
1417                                           pSparseMemoryRequirementCount,
1418                                           reinterpret_cast<VkSparseImageMemoryRequirements *>( pSparseMemoryRequirements ) );
1419   }
1420 
1421 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
1422   // wrapper function for command vkGetImageSparseMemoryRequirements, see
1423   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSparseMemoryRequirements.html
1424   template <typename SparseImageMemoryRequirementsAllocator,
1425             typename Dispatch,
1426             typename std::enable_if<
1427               std::is_same<typename SparseImageMemoryRequirementsAllocator::value_type, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements>::value,
1428               int>::type>
1429   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator>
getImageSparseMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,Dispatch const & d) const1430                                          Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const
1431   {
1432     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1433 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1434     VULKAN_HPP_ASSERT( d.vkGetImageSparseMemoryRequirements && "Function <vkGetImageSparseMemoryRequirements> requires <VK_VERSION_1_0>" );
1435 #  endif
1436 
1437     std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> sparseMemoryRequirements;
1438     uint32_t                                                                                                 sparseMemoryRequirementCount;
1439     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, nullptr );
1440     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
1441     d.vkGetImageSparseMemoryRequirements( m_device,
1442                                           static_cast<VkImage>( image ),
1443                                           &sparseMemoryRequirementCount,
1444                                           reinterpret_cast<VkSparseImageMemoryRequirements *>( sparseMemoryRequirements.data() ) );
1445 
1446     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
1447     if ( sparseMemoryRequirementCount < sparseMemoryRequirements.size() )
1448     {
1449       sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
1450     }
1451     return sparseMemoryRequirements;
1452   }
1453 
1454   // wrapper function for command vkGetImageSparseMemoryRequirements, see
1455   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSparseMemoryRequirements.html
1456   template <typename SparseImageMemoryRequirementsAllocator,
1457             typename Dispatch,
1458             typename std::enable_if<
1459               std::is_same<typename SparseImageMemoryRequirementsAllocator::value_type, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements>::value,
1460               int>::type>
1461   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator>
getImageSparseMemoryRequirements(VULKAN_HPP_NAMESPACE::Image image,SparseImageMemoryRequirementsAllocator & sparseImageMemoryRequirementsAllocator,Dispatch const & d) const1462                                          Device::getImageSparseMemoryRequirements( VULKAN_HPP_NAMESPACE::Image              image,
1463                                               SparseImageMemoryRequirementsAllocator & sparseImageMemoryRequirementsAllocator,
1464                                               Dispatch const &                         d ) const
1465   {
1466     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1467 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1468     VULKAN_HPP_ASSERT( d.vkGetImageSparseMemoryRequirements && "Function <vkGetImageSparseMemoryRequirements> requires <VK_VERSION_1_0>" );
1469 #  endif
1470 
1471     std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements, SparseImageMemoryRequirementsAllocator> sparseMemoryRequirements(
1472       sparseImageMemoryRequirementsAllocator );
1473     uint32_t sparseMemoryRequirementCount;
1474     d.vkGetImageSparseMemoryRequirements( m_device, static_cast<VkImage>( image ), &sparseMemoryRequirementCount, nullptr );
1475     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
1476     d.vkGetImageSparseMemoryRequirements( m_device,
1477                                           static_cast<VkImage>( image ),
1478                                           &sparseMemoryRequirementCount,
1479                                           reinterpret_cast<VkSparseImageMemoryRequirements *>( sparseMemoryRequirements.data() ) );
1480 
1481     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
1482     if ( sparseMemoryRequirementCount < sparseMemoryRequirements.size() )
1483     {
1484       sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
1485     }
1486     return sparseMemoryRequirements;
1487   }
1488 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
1489 
1490   // wrapper function for command vkGetPhysicalDeviceSparseImageFormatProperties, see
1491   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSparseImageFormatProperties.html
1492   template <typename Dispatch>
getSparseImageFormatProperties(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::ImageType type,VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,VULKAN_HPP_NAMESPACE::ImageUsageFlags usage,VULKAN_HPP_NAMESPACE::ImageTiling tiling,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::SparseImageFormatProperties * pProperties,Dispatch const & d) const1493   VULKAN_HPP_INLINE void PhysicalDevice::getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format                        format,
1494                                                                          VULKAN_HPP_NAMESPACE::ImageType                     type,
1495                                                                          VULKAN_HPP_NAMESPACE::SampleCountFlagBits           samples,
1496                                                                          VULKAN_HPP_NAMESPACE::ImageUsageFlags               usage,
1497                                                                          VULKAN_HPP_NAMESPACE::ImageTiling                   tiling,
1498                                                                          uint32_t *                                          pPropertyCount,
1499                                                                          VULKAN_HPP_NAMESPACE::SparseImageFormatProperties * pProperties,
1500                                                                          Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
1501   {
1502     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1503     d.vkGetPhysicalDeviceSparseImageFormatProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ),
1504                                                       static_cast<VkFormat>( format ),
1505                                                       static_cast<VkImageType>( type ),
1506                                                       static_cast<VkSampleCountFlagBits>( samples ),
1507                                                       static_cast<VkImageUsageFlags>( usage ),
1508                                                       static_cast<VkImageTiling>( tiling ),
1509                                                       pPropertyCount,
1510                                                       reinterpret_cast<VkSparseImageFormatProperties *>( pProperties ) );
1511   }
1512 
1513 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
1514   // wrapper function for command vkGetPhysicalDeviceSparseImageFormatProperties, see
1515   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSparseImageFormatProperties.html
1516   template <
1517     typename SparseImageFormatPropertiesAllocator,
1518     typename Dispatch,
1519     typename std::enable_if<std::is_same<typename SparseImageFormatPropertiesAllocator::value_type, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties>::value,
1520                             int>::type>
1521   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties, SparseImageFormatPropertiesAllocator>
getSparseImageFormatProperties(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::ImageType type,VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,VULKAN_HPP_NAMESPACE::ImageUsageFlags usage,VULKAN_HPP_NAMESPACE::ImageTiling tiling,Dispatch const & d) const1522                                          PhysicalDevice::getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format              format,
1523                                                     VULKAN_HPP_NAMESPACE::ImageType           type,
1524                                                     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,
1525                                                     VULKAN_HPP_NAMESPACE::ImageUsageFlags     usage,
1526                                                     VULKAN_HPP_NAMESPACE::ImageTiling         tiling,
1527                                                     Dispatch const &                          d ) const
1528   {
1529     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1530 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1531     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceSparseImageFormatProperties &&
1532                        "Function <vkGetPhysicalDeviceSparseImageFormatProperties> requires <VK_VERSION_1_0>" );
1533 #  endif
1534 
1535     std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties, SparseImageFormatPropertiesAllocator> properties;
1536     uint32_t                                                                                             propertyCount;
1537     d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice,
1538                                                       static_cast<VkFormat>( format ),
1539                                                       static_cast<VkImageType>( type ),
1540                                                       static_cast<VkSampleCountFlagBits>( samples ),
1541                                                       static_cast<VkImageUsageFlags>( usage ),
1542                                                       static_cast<VkImageTiling>( tiling ),
1543                                                       &propertyCount,
1544                                                       nullptr );
1545     properties.resize( propertyCount );
1546     d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice,
1547                                                       static_cast<VkFormat>( format ),
1548                                                       static_cast<VkImageType>( type ),
1549                                                       static_cast<VkSampleCountFlagBits>( samples ),
1550                                                       static_cast<VkImageUsageFlags>( usage ),
1551                                                       static_cast<VkImageTiling>( tiling ),
1552                                                       &propertyCount,
1553                                                       reinterpret_cast<VkSparseImageFormatProperties *>( properties.data() ) );
1554 
1555     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
1556     if ( propertyCount < properties.size() )
1557     {
1558       properties.resize( propertyCount );
1559     }
1560     return properties;
1561   }
1562 
1563   // wrapper function for command vkGetPhysicalDeviceSparseImageFormatProperties, see
1564   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSparseImageFormatProperties.html
1565   template <
1566     typename SparseImageFormatPropertiesAllocator,
1567     typename Dispatch,
1568     typename std::enable_if<std::is_same<typename SparseImageFormatPropertiesAllocator::value_type, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties>::value,
1569                             int>::type>
1570   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties, SparseImageFormatPropertiesAllocator>
getSparseImageFormatProperties(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::ImageType type,VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,VULKAN_HPP_NAMESPACE::ImageUsageFlags usage,VULKAN_HPP_NAMESPACE::ImageTiling tiling,SparseImageFormatPropertiesAllocator & sparseImageFormatPropertiesAllocator,Dispatch const & d) const1571                                          PhysicalDevice::getSparseImageFormatProperties( VULKAN_HPP_NAMESPACE::Format              format,
1572                                                     VULKAN_HPP_NAMESPACE::ImageType           type,
1573                                                     VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,
1574                                                     VULKAN_HPP_NAMESPACE::ImageUsageFlags     usage,
1575                                                     VULKAN_HPP_NAMESPACE::ImageTiling         tiling,
1576                                                     SparseImageFormatPropertiesAllocator &    sparseImageFormatPropertiesAllocator,
1577                                                     Dispatch const &                          d ) const
1578   {
1579     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1580 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1581     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceSparseImageFormatProperties &&
1582                        "Function <vkGetPhysicalDeviceSparseImageFormatProperties> requires <VK_VERSION_1_0>" );
1583 #  endif
1584 
1585     std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties, SparseImageFormatPropertiesAllocator> properties( sparseImageFormatPropertiesAllocator );
1586     uint32_t                                                                                             propertyCount;
1587     d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice,
1588                                                       static_cast<VkFormat>( format ),
1589                                                       static_cast<VkImageType>( type ),
1590                                                       static_cast<VkSampleCountFlagBits>( samples ),
1591                                                       static_cast<VkImageUsageFlags>( usage ),
1592                                                       static_cast<VkImageTiling>( tiling ),
1593                                                       &propertyCount,
1594                                                       nullptr );
1595     properties.resize( propertyCount );
1596     d.vkGetPhysicalDeviceSparseImageFormatProperties( m_physicalDevice,
1597                                                       static_cast<VkFormat>( format ),
1598                                                       static_cast<VkImageType>( type ),
1599                                                       static_cast<VkSampleCountFlagBits>( samples ),
1600                                                       static_cast<VkImageUsageFlags>( usage ),
1601                                                       static_cast<VkImageTiling>( tiling ),
1602                                                       &propertyCount,
1603                                                       reinterpret_cast<VkSparseImageFormatProperties *>( properties.data() ) );
1604 
1605     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
1606     if ( propertyCount < properties.size() )
1607     {
1608       properties.resize( propertyCount );
1609     }
1610     return properties;
1611   }
1612 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
1613 
1614   // wrapper function for command vkQueueBindSparse, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueBindSparse.html
1615   template <typename Dispatch>
bindSparse(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindSparseInfo * pBindInfo,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const1616   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::bindSparse( uint32_t                                     bindInfoCount,
1617                                                                    const VULKAN_HPP_NAMESPACE::BindSparseInfo * pBindInfo,
1618                                                                    VULKAN_HPP_NAMESPACE::Fence                  fence,
1619                                                                    Dispatch const &                             d ) const VULKAN_HPP_NOEXCEPT
1620   {
1621     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1622     return static_cast<Result>( d.vkQueueBindSparse(
1623       static_cast<VkQueue>( m_queue ), bindInfoCount, reinterpret_cast<const VkBindSparseInfo *>( pBindInfo ), static_cast<VkFence>( fence ) ) );
1624   }
1625 
1626 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
1627   // wrapper function for command vkQueueBindSparse, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueBindSparse.html
1628   template <typename Dispatch>
bindSparse(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindSparseInfo> const & bindInfo,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const1629   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Queue::bindSparse(
1630     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindSparseInfo> const & bindInfo, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const
1631   {
1632     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1633 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1634     VULKAN_HPP_ASSERT( d.vkQueueBindSparse && "Function <vkQueueBindSparse> requires <VK_VERSION_1_0>" );
1635 #  endif
1636 
1637     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
1638       d.vkQueueBindSparse( m_queue, bindInfo.size(), reinterpret_cast<const VkBindSparseInfo *>( bindInfo.data() ), static_cast<VkFence>( fence ) ) );
1639     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::bindSparse" );
1640 
1641     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
1642   }
1643 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
1644 
1645   // wrapper function for command vkCreateFence, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateFence.html
1646   template <typename Dispatch>
createFence(const VULKAN_HPP_NAMESPACE::FenceCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Fence * pFence,Dispatch const & d) const1647   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createFence( const VULKAN_HPP_NAMESPACE::FenceCreateInfo *     pCreateInfo,
1648                                                                      const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
1649                                                                      VULKAN_HPP_NAMESPACE::Fence *                     pFence,
1650                                                                      Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
1651   {
1652     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1653     return static_cast<Result>( d.vkCreateFence( static_cast<VkDevice>( m_device ),
1654                                                  reinterpret_cast<const VkFenceCreateInfo *>( pCreateInfo ),
1655                                                  reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
1656                                                  reinterpret_cast<VkFence *>( pFence ) ) );
1657   }
1658 
1659 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
1660   // wrapper function for command vkCreateFence, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateFence.html
1661   template <typename Dispatch>
createFence(const VULKAN_HPP_NAMESPACE::FenceCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const1662   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Fence>::type Device::createFence(
1663     const VULKAN_HPP_NAMESPACE::FenceCreateInfo & createInfo, Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator, Dispatch const & d ) const
1664   {
1665     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1666 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1667     VULKAN_HPP_ASSERT( d.vkCreateFence && "Function <vkCreateFence> requires <VK_VERSION_1_0>" );
1668 #  endif
1669 
1670     VULKAN_HPP_NAMESPACE::Fence  fence;
1671     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
1672       d.vkCreateFence( m_device,
1673                        reinterpret_cast<const VkFenceCreateInfo *>( &createInfo ),
1674                        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
1675                        reinterpret_cast<VkFence *>( &fence ) ) );
1676     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createFence" );
1677 
1678     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( fence ) );
1679   }
1680 
1681 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
1682   // wrapper function for command vkCreateFence, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateFence.html
1683   template <typename Dispatch>
createFenceUnique(const VULKAN_HPP_NAMESPACE::FenceCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const1684   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Fence, Dispatch>>::type Device::createFenceUnique(
1685     const VULKAN_HPP_NAMESPACE::FenceCreateInfo & createInfo, Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator, Dispatch const & d ) const
1686   {
1687     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1688 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1689     VULKAN_HPP_ASSERT( d.vkCreateFence && "Function <vkCreateFence> requires <VK_VERSION_1_0>" );
1690 #    endif
1691 
1692     VULKAN_HPP_NAMESPACE::Fence  fence;
1693     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
1694       d.vkCreateFence( m_device,
1695                        reinterpret_cast<const VkFenceCreateInfo *>( &createInfo ),
1696                        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
1697                        reinterpret_cast<VkFence *>( &fence ) ) );
1698     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createFenceUnique" );
1699 
1700     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
1701       result, UniqueHandle<VULKAN_HPP_NAMESPACE::Fence, Dispatch>( fence, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
1702   }
1703 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
1704 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
1705 
1706   // wrapper function for command vkDestroyFence, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyFence.html
1707   template <typename Dispatch>
destroyFence(VULKAN_HPP_NAMESPACE::Fence fence,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const1708   VULKAN_HPP_INLINE void Device::destroyFence( VULKAN_HPP_NAMESPACE::Fence                       fence,
1709                                                const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
1710                                                Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
1711   {
1712     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1713     d.vkDestroyFence( static_cast<VkDevice>( m_device ), static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
1714   }
1715 
1716 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
1717   // wrapper function for command vkDestroyFence, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyFence.html
1718   template <typename Dispatch>
destroyFence(VULKAN_HPP_NAMESPACE::Fence fence,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const1719   VULKAN_HPP_INLINE void Device::destroyFence( VULKAN_HPP_NAMESPACE::Fence                               fence,
1720                                                Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
1721                                                Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
1722   {
1723     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1724 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1725     VULKAN_HPP_ASSERT( d.vkDestroyFence && "Function <vkDestroyFence> requires <VK_VERSION_1_0>" );
1726 #  endif
1727 
1728     d.vkDestroyFence( m_device,
1729                       static_cast<VkFence>( fence ),
1730                       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
1731   }
1732 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
1733 
1734   // wrapper function for command vkDestroyFence, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyFence.html
1735   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Fence fence,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const1736   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Fence                       fence,
1737                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
1738                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
1739   {
1740     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1741     d.vkDestroyFence( static_cast<VkDevice>( m_device ), static_cast<VkFence>( fence ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
1742   }
1743 
1744 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
1745   // wrapper function for command vkDestroyFence, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyFence.html
1746   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Fence fence,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const1747   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Fence                               fence,
1748                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
1749                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
1750   {
1751     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1752 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1753     VULKAN_HPP_ASSERT( d.vkDestroyFence && "Function <vkDestroyFence> requires <VK_VERSION_1_0>" );
1754 #  endif
1755 
1756     d.vkDestroyFence( m_device,
1757                       static_cast<VkFence>( fence ),
1758                       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
1759   }
1760 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
1761 
1762   // wrapper function for command vkResetFences, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetFences.html
1763   template <typename Dispatch>
resetFences(uint32_t fenceCount,const VULKAN_HPP_NAMESPACE::Fence * pFences,Dispatch const & d) const1764   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::resetFences( uint32_t                            fenceCount,
1765                                                                      const VULKAN_HPP_NAMESPACE::Fence * pFences,
1766                                                                      Dispatch const &                    d ) const VULKAN_HPP_NOEXCEPT
1767   {
1768     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1769     return static_cast<Result>( d.vkResetFences( static_cast<VkDevice>( m_device ), fenceCount, reinterpret_cast<const VkFence *>( pFences ) ) );
1770   }
1771 
1772 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
1773   // wrapper function for command vkResetFences, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetFences.html
1774   template <typename Dispatch>
1775   VULKAN_HPP_INLINE typename ResultValueType<void>::type
resetFences(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences,Dispatch const & d) const1776     Device::resetFences( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences, Dispatch const & d ) const
1777   {
1778     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1779 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1780     VULKAN_HPP_ASSERT( d.vkResetFences && "Function <vkResetFences> requires <VK_VERSION_1_0>" );
1781 #  endif
1782 
1783     VULKAN_HPP_NAMESPACE::Result result =
1784       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkResetFences( m_device, fences.size(), reinterpret_cast<const VkFence *>( fences.data() ) ) );
1785     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetFences" );
1786 
1787     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
1788   }
1789 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
1790 
1791 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
1792   // wrapper function for command vkGetFenceStatus, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFenceStatus.html
1793   template <typename Dispatch>
getFenceStatus(VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const1794   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
1795   {
1796     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1797     return static_cast<Result>( d.vkGetFenceStatus( static_cast<VkDevice>( m_device ), static_cast<VkFence>( fence ) ) );
1798   }
1799 #else
1800   // wrapper function for command vkGetFenceStatus, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFenceStatus.html
1801   template <typename Dispatch>
getFenceStatus(VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const1802   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::getFenceStatus( VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const
1803   {
1804     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1805 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1806     VULKAN_HPP_ASSERT( d.vkGetFenceStatus && "Function <vkGetFenceStatus> requires <VK_VERSION_1_0>" );
1807 #  endif
1808 
1809     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetFenceStatus( m_device, static_cast<VkFence>( fence ) ) );
1810     VULKAN_HPP_NAMESPACE::detail::resultCheck(
1811       result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceStatus", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
1812 
1813     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
1814   }
1815 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
1816 
1817   // wrapper function for command vkWaitForFences, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkWaitForFences.html
1818   template <typename Dispatch>
waitForFences(uint32_t fenceCount,const VULKAN_HPP_NAMESPACE::Fence * pFences,VULKAN_HPP_NAMESPACE::Bool32 waitAll,uint64_t timeout,Dispatch const & d) const1819   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitForFences( uint32_t                            fenceCount,
1820                                                                        const VULKAN_HPP_NAMESPACE::Fence * pFences,
1821                                                                        VULKAN_HPP_NAMESPACE::Bool32        waitAll,
1822                                                                        uint64_t                            timeout,
1823                                                                        Dispatch const &                    d ) const VULKAN_HPP_NOEXCEPT
1824   {
1825     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1826     return static_cast<Result>( d.vkWaitForFences(
1827       static_cast<VkDevice>( m_device ), fenceCount, reinterpret_cast<const VkFence *>( pFences ), static_cast<VkBool32>( waitAll ), timeout ) );
1828   }
1829 
1830 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
1831   // wrapper function for command vkWaitForFences, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkWaitForFences.html
1832   template <typename Dispatch>
1833   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result
waitForFences(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences,VULKAN_HPP_NAMESPACE::Bool32 waitAll,uint64_t timeout,Dispatch const & d) const1834                                          Device::waitForFences( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Fence> const & fences,
1835                            VULKAN_HPP_NAMESPACE::Bool32                                                waitAll,
1836                            uint64_t                                                                    timeout,
1837                            Dispatch const &                                                            d ) const
1838   {
1839     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1840 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1841     VULKAN_HPP_ASSERT( d.vkWaitForFences && "Function <vkWaitForFences> requires <VK_VERSION_1_0>" );
1842 #  endif
1843 
1844     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
1845       d.vkWaitForFences( m_device, fences.size(), reinterpret_cast<const VkFence *>( fences.data() ), static_cast<VkBool32>( waitAll ), timeout ) );
1846     VULKAN_HPP_NAMESPACE::detail::resultCheck(
1847       result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitForFences", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
1848 
1849     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
1850   }
1851 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
1852 
1853   // wrapper function for command vkCreateSemaphore, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSemaphore.html
1854   template <typename Dispatch>
createSemaphore(const VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Semaphore * pSemaphore,Dispatch const & d) const1855   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo * pCreateInfo,
1856                                                                          const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
1857                                                                          VULKAN_HPP_NAMESPACE::Semaphore *                 pSemaphore,
1858                                                                          Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
1859   {
1860     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1861     return static_cast<Result>( d.vkCreateSemaphore( static_cast<VkDevice>( m_device ),
1862                                                      reinterpret_cast<const VkSemaphoreCreateInfo *>( pCreateInfo ),
1863                                                      reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
1864                                                      reinterpret_cast<VkSemaphore *>( pSemaphore ) ) );
1865   }
1866 
1867 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
1868   // wrapper function for command vkCreateSemaphore, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSemaphore.html
1869   template <typename Dispatch>
1870   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Semaphore>::type
createSemaphore(const VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const1871                        Device::createSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo &         createInfo,
1872                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
1873                              Dispatch const &                                          d ) const
1874   {
1875     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1876 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1877     VULKAN_HPP_ASSERT( d.vkCreateSemaphore && "Function <vkCreateSemaphore> requires <VK_VERSION_1_0>" );
1878 #  endif
1879 
1880     VULKAN_HPP_NAMESPACE::Semaphore semaphore;
1881     VULKAN_HPP_NAMESPACE::Result    result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
1882       d.vkCreateSemaphore( m_device,
1883                            reinterpret_cast<const VkSemaphoreCreateInfo *>( &createInfo ),
1884                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
1885                            reinterpret_cast<VkSemaphore *>( &semaphore ) ) );
1886     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSemaphore" );
1887 
1888     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( semaphore ) );
1889   }
1890 
1891 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
1892   // wrapper function for command vkCreateSemaphore, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSemaphore.html
1893   template <typename Dispatch>
1894   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Semaphore, Dispatch>>::type
createSemaphoreUnique(const VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const1895                        Device::createSemaphoreUnique( const VULKAN_HPP_NAMESPACE::SemaphoreCreateInfo &         createInfo,
1896                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
1897                                    Dispatch const &                                          d ) const
1898   {
1899     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1900 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1901     VULKAN_HPP_ASSERT( d.vkCreateSemaphore && "Function <vkCreateSemaphore> requires <VK_VERSION_1_0>" );
1902 #    endif
1903 
1904     VULKAN_HPP_NAMESPACE::Semaphore semaphore;
1905     VULKAN_HPP_NAMESPACE::Result    result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
1906       d.vkCreateSemaphore( m_device,
1907                            reinterpret_cast<const VkSemaphoreCreateInfo *>( &createInfo ),
1908                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
1909                            reinterpret_cast<VkSemaphore *>( &semaphore ) ) );
1910     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSemaphoreUnique" );
1911 
1912     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
1913       result, UniqueHandle<VULKAN_HPP_NAMESPACE::Semaphore, Dispatch>( semaphore, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
1914   }
1915 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
1916 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
1917 
1918   // wrapper function for command vkDestroySemaphore, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySemaphore.html
1919   template <typename Dispatch>
destroySemaphore(VULKAN_HPP_NAMESPACE::Semaphore semaphore,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const1920   VULKAN_HPP_INLINE void Device::destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore                   semaphore,
1921                                                    const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
1922                                                    Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
1923   {
1924     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1925     d.vkDestroySemaphore(
1926       static_cast<VkDevice>( m_device ), static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
1927   }
1928 
1929 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
1930   // wrapper function for command vkDestroySemaphore, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySemaphore.html
1931   template <typename Dispatch>
destroySemaphore(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const1932   VULKAN_HPP_INLINE void Device::destroySemaphore( VULKAN_HPP_NAMESPACE::Semaphore                           semaphore,
1933                                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
1934                                                    Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
1935   {
1936     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1937 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1938     VULKAN_HPP_ASSERT( d.vkDestroySemaphore && "Function <vkDestroySemaphore> requires <VK_VERSION_1_0>" );
1939 #  endif
1940 
1941     d.vkDestroySemaphore( m_device,
1942                           static_cast<VkSemaphore>( semaphore ),
1943                           reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
1944   }
1945 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
1946 
1947   // wrapper function for command vkDestroySemaphore, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySemaphore.html
1948   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Semaphore semaphore,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const1949   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Semaphore                   semaphore,
1950                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
1951                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
1952   {
1953     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1954     d.vkDestroySemaphore(
1955       static_cast<VkDevice>( m_device ), static_cast<VkSemaphore>( semaphore ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
1956   }
1957 
1958 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
1959   // wrapper function for command vkDestroySemaphore, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySemaphore.html
1960   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const1961   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Semaphore                           semaphore,
1962                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
1963                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
1964   {
1965     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1966 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1967     VULKAN_HPP_ASSERT( d.vkDestroySemaphore && "Function <vkDestroySemaphore> requires <VK_VERSION_1_0>" );
1968 #  endif
1969 
1970     d.vkDestroySemaphore( m_device,
1971                           static_cast<VkSemaphore>( semaphore ),
1972                           reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
1973   }
1974 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
1975 
1976   // wrapper function for command vkCreateEvent, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateEvent.html
1977   template <typename Dispatch>
createEvent(const VULKAN_HPP_NAMESPACE::EventCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Event * pEvent,Dispatch const & d) const1978   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createEvent( const VULKAN_HPP_NAMESPACE::EventCreateInfo *     pCreateInfo,
1979                                                                      const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
1980                                                                      VULKAN_HPP_NAMESPACE::Event *                     pEvent,
1981                                                                      Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
1982   {
1983     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1984     return static_cast<Result>( d.vkCreateEvent( static_cast<VkDevice>( m_device ),
1985                                                  reinterpret_cast<const VkEventCreateInfo *>( pCreateInfo ),
1986                                                  reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
1987                                                  reinterpret_cast<VkEvent *>( pEvent ) ) );
1988   }
1989 
1990 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
1991   // wrapper function for command vkCreateEvent, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateEvent.html
1992   template <typename Dispatch>
createEvent(const VULKAN_HPP_NAMESPACE::EventCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const1993   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Event>::type Device::createEvent(
1994     const VULKAN_HPP_NAMESPACE::EventCreateInfo & createInfo, Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator, Dispatch const & d ) const
1995   {
1996     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
1997 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
1998     VULKAN_HPP_ASSERT( d.vkCreateEvent && "Function <vkCreateEvent> requires <VK_VERSION_1_0>" );
1999 #  endif
2000 
2001     VULKAN_HPP_NAMESPACE::Event  event;
2002     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
2003       d.vkCreateEvent( m_device,
2004                        reinterpret_cast<const VkEventCreateInfo *>( &createInfo ),
2005                        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
2006                        reinterpret_cast<VkEvent *>( &event ) ) );
2007     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createEvent" );
2008 
2009     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( event ) );
2010   }
2011 
2012 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
2013   // wrapper function for command vkCreateEvent, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateEvent.html
2014   template <typename Dispatch>
createEventUnique(const VULKAN_HPP_NAMESPACE::EventCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2015   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Event, Dispatch>>::type Device::createEventUnique(
2016     const VULKAN_HPP_NAMESPACE::EventCreateInfo & createInfo, Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator, Dispatch const & d ) const
2017   {
2018     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2019 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2020     VULKAN_HPP_ASSERT( d.vkCreateEvent && "Function <vkCreateEvent> requires <VK_VERSION_1_0>" );
2021 #    endif
2022 
2023     VULKAN_HPP_NAMESPACE::Event  event;
2024     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
2025       d.vkCreateEvent( m_device,
2026                        reinterpret_cast<const VkEventCreateInfo *>( &createInfo ),
2027                        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
2028                        reinterpret_cast<VkEvent *>( &event ) ) );
2029     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createEventUnique" );
2030 
2031     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
2032       result, UniqueHandle<VULKAN_HPP_NAMESPACE::Event, Dispatch>( event, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
2033   }
2034 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
2035 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
2036 
2037   // wrapper function for command vkDestroyEvent, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyEvent.html
2038   template <typename Dispatch>
destroyEvent(VULKAN_HPP_NAMESPACE::Event event,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const2039   VULKAN_HPP_INLINE void Device::destroyEvent( VULKAN_HPP_NAMESPACE::Event                       event,
2040                                                const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
2041                                                Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
2042   {
2043     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2044     d.vkDestroyEvent( static_cast<VkDevice>( m_device ), static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
2045   }
2046 
2047 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
2048   // wrapper function for command vkDestroyEvent, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyEvent.html
2049   template <typename Dispatch>
destroyEvent(VULKAN_HPP_NAMESPACE::Event event,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2050   VULKAN_HPP_INLINE void Device::destroyEvent( VULKAN_HPP_NAMESPACE::Event                               event,
2051                                                Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
2052                                                Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
2053   {
2054     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2055 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2056     VULKAN_HPP_ASSERT( d.vkDestroyEvent && "Function <vkDestroyEvent> requires <VK_VERSION_1_0>" );
2057 #  endif
2058 
2059     d.vkDestroyEvent( m_device,
2060                       static_cast<VkEvent>( event ),
2061                       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
2062   }
2063 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
2064 
2065   // wrapper function for command vkDestroyEvent, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyEvent.html
2066   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Event event,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const2067   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Event                       event,
2068                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
2069                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
2070   {
2071     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2072     d.vkDestroyEvent( static_cast<VkDevice>( m_device ), static_cast<VkEvent>( event ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
2073   }
2074 
2075 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
2076   // wrapper function for command vkDestroyEvent, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyEvent.html
2077   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Event event,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2078   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Event                               event,
2079                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
2080                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
2081   {
2082     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2083 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2084     VULKAN_HPP_ASSERT( d.vkDestroyEvent && "Function <vkDestroyEvent> requires <VK_VERSION_1_0>" );
2085 #  endif
2086 
2087     d.vkDestroyEvent( m_device,
2088                       static_cast<VkEvent>( event ),
2089                       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
2090   }
2091 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
2092 
2093 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
2094   // wrapper function for command vkGetEventStatus, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetEventStatus.html
2095   template <typename Dispatch>
getEventStatus(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const2096   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
2097   {
2098     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2099     return static_cast<Result>( d.vkGetEventStatus( static_cast<VkDevice>( m_device ), static_cast<VkEvent>( event ) ) );
2100   }
2101 #else
2102   // wrapper function for command vkGetEventStatus, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetEventStatus.html
2103   template <typename Dispatch>
getEventStatus(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const2104   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::getEventStatus( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const
2105   {
2106     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2107 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2108     VULKAN_HPP_ASSERT( d.vkGetEventStatus && "Function <vkGetEventStatus> requires <VK_VERSION_1_0>" );
2109 #  endif
2110 
2111     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetEventStatus( m_device, static_cast<VkEvent>( event ) ) );
2112     VULKAN_HPP_NAMESPACE::detail::resultCheck(
2113       result, VULKAN_HPP_NAMESPACE_STRING "::Device::getEventStatus", { VULKAN_HPP_NAMESPACE::Result::eEventSet, VULKAN_HPP_NAMESPACE::Result::eEventReset } );
2114 
2115     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
2116   }
2117 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
2118 
2119 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
2120   // wrapper function for command vkSetEvent, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetEvent.html
2121   template <typename Dispatch>
setEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const2122   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
2123   {
2124     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2125     return static_cast<Result>( d.vkSetEvent( static_cast<VkDevice>( m_device ), static_cast<VkEvent>( event ) ) );
2126   }
2127 #else
2128   // wrapper function for command vkSetEvent, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetEvent.html
2129   template <typename Dispatch>
setEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const2130   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setEvent( VULKAN_HPP_NAMESPACE::Event event,
2131                                                                                                                    Dispatch const &            d ) const
2132   {
2133     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2134 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2135     VULKAN_HPP_ASSERT( d.vkSetEvent && "Function <vkSetEvent> requires <VK_VERSION_1_0>" );
2136 #  endif
2137 
2138     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkSetEvent( m_device, static_cast<VkEvent>( event ) ) );
2139     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setEvent" );
2140 
2141     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
2142   }
2143 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
2144 
2145 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
2146   // wrapper function for command vkResetEvent, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetEvent.html
2147   template <typename Dispatch>
resetEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const2148   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
2149   {
2150     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2151     return static_cast<Result>( d.vkResetEvent( static_cast<VkDevice>( m_device ), static_cast<VkEvent>( event ) ) );
2152   }
2153 #else
2154   // wrapper function for command vkResetEvent, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetEvent.html
2155   template <typename Dispatch>
resetEvent(VULKAN_HPP_NAMESPACE::Event event,Dispatch const & d) const2156   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::resetEvent( VULKAN_HPP_NAMESPACE::Event event, Dispatch const & d ) const
2157   {
2158     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2159 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2160     VULKAN_HPP_ASSERT( d.vkResetEvent && "Function <vkResetEvent> requires <VK_VERSION_1_0>" );
2161 #  endif
2162 
2163     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkResetEvent( m_device, static_cast<VkEvent>( event ) ) );
2164     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetEvent" );
2165 
2166     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
2167   }
2168 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
2169 
2170   // wrapper function for command vkCreateQueryPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateQueryPool.html
2171   template <typename Dispatch>
createQueryPool(const VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::QueryPool * pQueryPool,Dispatch const & d) const2172   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createQueryPool( const VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo * pCreateInfo,
2173                                                                          const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
2174                                                                          VULKAN_HPP_NAMESPACE::QueryPool *                 pQueryPool,
2175                                                                          Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
2176   {
2177     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2178     return static_cast<Result>( d.vkCreateQueryPool( static_cast<VkDevice>( m_device ),
2179                                                      reinterpret_cast<const VkQueryPoolCreateInfo *>( pCreateInfo ),
2180                                                      reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
2181                                                      reinterpret_cast<VkQueryPool *>( pQueryPool ) ) );
2182   }
2183 
2184 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
2185   // wrapper function for command vkCreateQueryPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateQueryPool.html
2186   template <typename Dispatch>
2187   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::QueryPool>::type
createQueryPool(const VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2188                        Device::createQueryPool( const VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo &         createInfo,
2189                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
2190                              Dispatch const &                                          d ) const
2191   {
2192     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2193 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2194     VULKAN_HPP_ASSERT( d.vkCreateQueryPool && "Function <vkCreateQueryPool> requires <VK_VERSION_1_0>" );
2195 #  endif
2196 
2197     VULKAN_HPP_NAMESPACE::QueryPool queryPool;
2198     VULKAN_HPP_NAMESPACE::Result    result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
2199       d.vkCreateQueryPool( m_device,
2200                            reinterpret_cast<const VkQueryPoolCreateInfo *>( &createInfo ),
2201                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
2202                            reinterpret_cast<VkQueryPool *>( &queryPool ) ) );
2203     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createQueryPool" );
2204 
2205     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( queryPool ) );
2206   }
2207 
2208 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
2209   // wrapper function for command vkCreateQueryPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateQueryPool.html
2210   template <typename Dispatch>
2211   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::QueryPool, Dispatch>>::type
createQueryPoolUnique(const VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2212                        Device::createQueryPoolUnique( const VULKAN_HPP_NAMESPACE::QueryPoolCreateInfo &         createInfo,
2213                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
2214                                    Dispatch const &                                          d ) const
2215   {
2216     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2217 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2218     VULKAN_HPP_ASSERT( d.vkCreateQueryPool && "Function <vkCreateQueryPool> requires <VK_VERSION_1_0>" );
2219 #    endif
2220 
2221     VULKAN_HPP_NAMESPACE::QueryPool queryPool;
2222     VULKAN_HPP_NAMESPACE::Result    result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
2223       d.vkCreateQueryPool( m_device,
2224                            reinterpret_cast<const VkQueryPoolCreateInfo *>( &createInfo ),
2225                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
2226                            reinterpret_cast<VkQueryPool *>( &queryPool ) ) );
2227     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createQueryPoolUnique" );
2228 
2229     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
2230       result, UniqueHandle<VULKAN_HPP_NAMESPACE::QueryPool, Dispatch>( queryPool, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
2231   }
2232 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
2233 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
2234 
2235   // wrapper function for command vkDestroyQueryPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyQueryPool.html
2236   template <typename Dispatch>
destroyQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const2237   VULKAN_HPP_INLINE void Device::destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool                   queryPool,
2238                                                    const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
2239                                                    Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
2240   {
2241     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2242     d.vkDestroyQueryPool(
2243       static_cast<VkDevice>( m_device ), static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
2244   }
2245 
2246 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
2247   // wrapper function for command vkDestroyQueryPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyQueryPool.html
2248   template <typename Dispatch>
destroyQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2249   VULKAN_HPP_INLINE void Device::destroyQueryPool( VULKAN_HPP_NAMESPACE::QueryPool                           queryPool,
2250                                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
2251                                                    Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
2252   {
2253     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2254 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2255     VULKAN_HPP_ASSERT( d.vkDestroyQueryPool && "Function <vkDestroyQueryPool> requires <VK_VERSION_1_0>" );
2256 #  endif
2257 
2258     d.vkDestroyQueryPool( m_device,
2259                           static_cast<VkQueryPool>( queryPool ),
2260                           reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
2261   }
2262 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
2263 
2264   // wrapper function for command vkDestroyQueryPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyQueryPool.html
2265   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::QueryPool queryPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const2266   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::QueryPool                   queryPool,
2267                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
2268                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
2269   {
2270     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2271     d.vkDestroyQueryPool(
2272       static_cast<VkDevice>( m_device ), static_cast<VkQueryPool>( queryPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
2273   }
2274 
2275 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
2276   // wrapper function for command vkDestroyQueryPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyQueryPool.html
2277   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::QueryPool queryPool,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2278   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::QueryPool                           queryPool,
2279                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
2280                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
2281   {
2282     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2283 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2284     VULKAN_HPP_ASSERT( d.vkDestroyQueryPool && "Function <vkDestroyQueryPool> requires <VK_VERSION_1_0>" );
2285 #  endif
2286 
2287     d.vkDestroyQueryPool( m_device,
2288                           static_cast<VkQueryPool>( queryPool ),
2289                           reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
2290   }
2291 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
2292 
2293   // wrapper function for command vkGetQueryPoolResults, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetQueryPoolResults.html
2294   template <typename Dispatch>
getQueryPoolResults(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,size_t dataSize,void * pData,VULKAN_HPP_NAMESPACE::DeviceSize stride,VULKAN_HPP_NAMESPACE::QueryResultFlags flags,Dispatch const & d) const2295   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool        queryPool,
2296                                                                              uint32_t                               firstQuery,
2297                                                                              uint32_t                               queryCount,
2298                                                                              size_t                                 dataSize,
2299                                                                              void *                                 pData,
2300                                                                              VULKAN_HPP_NAMESPACE::DeviceSize       stride,
2301                                                                              VULKAN_HPP_NAMESPACE::QueryResultFlags flags,
2302                                                                              Dispatch const &                       d ) const VULKAN_HPP_NOEXCEPT
2303   {
2304     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2305     return static_cast<Result>( d.vkGetQueryPoolResults( static_cast<VkDevice>( m_device ),
2306                                                          static_cast<VkQueryPool>( queryPool ),
2307                                                          firstQuery,
2308                                                          queryCount,
2309                                                          dataSize,
2310                                                          pData,
2311                                                          static_cast<VkDeviceSize>( stride ),
2312                                                          static_cast<VkQueryResultFlags>( flags ) ) );
2313   }
2314 
2315 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
2316   // wrapper function for command vkGetQueryPoolResults, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetQueryPoolResults.html
2317   template <typename DataType,
2318             typename DataTypeAllocator,
2319             typename Dispatch,
2320             typename std::enable_if<std::is_same<typename DataTypeAllocator::value_type, DataType>::value, int>::type>
2321   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<DataType, DataTypeAllocator>>
getQueryPoolResults(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,size_t dataSize,VULKAN_HPP_NAMESPACE::DeviceSize stride,VULKAN_HPP_NAMESPACE::QueryResultFlags flags,Dispatch const & d) const2322                                          Device::getQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool        queryPool,
2323                                  uint32_t                               firstQuery,
2324                                  uint32_t                               queryCount,
2325                                  size_t                                 dataSize,
2326                                  VULKAN_HPP_NAMESPACE::DeviceSize       stride,
2327                                  VULKAN_HPP_NAMESPACE::QueryResultFlags flags,
2328                                  Dispatch const &                       d ) const
2329   {
2330     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2331 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2332     VULKAN_HPP_ASSERT( d.vkGetQueryPoolResults && "Function <vkGetQueryPoolResults> requires <VK_VERSION_1_0>" );
2333 #  endif
2334 
2335     VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
2336     std::vector<DataType, DataTypeAllocator> data( dataSize / sizeof( DataType ) );
2337     VULKAN_HPP_NAMESPACE::Result             result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetQueryPoolResults( m_device,
2338                                                                                                               static_cast<VkQueryPool>( queryPool ),
2339                                                                                                               firstQuery,
2340                                                                                                               queryCount,
2341                                                                                                               data.size() * sizeof( DataType ),
2342                                                                                                               reinterpret_cast<void *>( data.data() ),
2343                                                                                                               static_cast<VkDeviceSize>( stride ),
2344                                                                                                               static_cast<VkQueryResultFlags>( flags ) ) );
2345     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
2346                                                VULKAN_HPP_NAMESPACE_STRING "::Device::getQueryPoolResults",
2347                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
2348 
2349     return ResultValue<std::vector<DataType, DataTypeAllocator>>( result, std::move( data ) );
2350   }
2351 
2352   // wrapper function for command vkGetQueryPoolResults, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetQueryPoolResults.html
2353   template <typename DataType, typename Dispatch>
getQueryPoolResult(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,VULKAN_HPP_NAMESPACE::DeviceSize stride,VULKAN_HPP_NAMESPACE::QueryResultFlags flags,Dispatch const & d) const2354   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<DataType> Device::getQueryPoolResult( VULKAN_HPP_NAMESPACE::QueryPool        queryPool,
2355                                                                                            uint32_t                               firstQuery,
2356                                                                                            uint32_t                               queryCount,
2357                                                                                            VULKAN_HPP_NAMESPACE::DeviceSize       stride,
2358                                                                                            VULKAN_HPP_NAMESPACE::QueryResultFlags flags,
2359                                                                                            Dispatch const &                       d ) const
2360   {
2361     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2362 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2363     VULKAN_HPP_ASSERT( d.vkGetQueryPoolResults && "Function <vkGetQueryPoolResults> requires <VK_VERSION_1_0>" );
2364 #  endif
2365 
2366     DataType                     data;
2367     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetQueryPoolResults( m_device,
2368                                                                                                               static_cast<VkQueryPool>( queryPool ),
2369                                                                                                               firstQuery,
2370                                                                                                               queryCount,
2371                                                                                                               sizeof( DataType ),
2372                                                                                                               reinterpret_cast<void *>( &data ),
2373                                                                                                               static_cast<VkDeviceSize>( stride ),
2374                                                                                                               static_cast<VkQueryResultFlags>( flags ) ) );
2375     VULKAN_HPP_NAMESPACE::detail::resultCheck(
2376       result, VULKAN_HPP_NAMESPACE_STRING "::Device::getQueryPoolResult", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eNotReady } );
2377 
2378     return ResultValue<DataType>( result, std::move( data ) );
2379   }
2380 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
2381 
2382   // wrapper function for command vkCreateBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateBuffer.html
2383   template <typename Dispatch>
createBuffer(const VULKAN_HPP_NAMESPACE::BufferCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Buffer * pBuffer,Dispatch const & d) const2384   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createBuffer( const VULKAN_HPP_NAMESPACE::BufferCreateInfo *    pCreateInfo,
2385                                                                       const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
2386                                                                       VULKAN_HPP_NAMESPACE::Buffer *                    pBuffer,
2387                                                                       Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
2388   {
2389     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2390     return static_cast<Result>( d.vkCreateBuffer( static_cast<VkDevice>( m_device ),
2391                                                   reinterpret_cast<const VkBufferCreateInfo *>( pCreateInfo ),
2392                                                   reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
2393                                                   reinterpret_cast<VkBuffer *>( pBuffer ) ) );
2394   }
2395 
2396 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
2397   // wrapper function for command vkCreateBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateBuffer.html
2398   template <typename Dispatch>
createBuffer(const VULKAN_HPP_NAMESPACE::BufferCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2399   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Buffer>::type Device::createBuffer(
2400     const VULKAN_HPP_NAMESPACE::BufferCreateInfo & createInfo, Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator, Dispatch const & d ) const
2401   {
2402     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2403 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2404     VULKAN_HPP_ASSERT( d.vkCreateBuffer && "Function <vkCreateBuffer> requires <VK_VERSION_1_0>" );
2405 #  endif
2406 
2407     VULKAN_HPP_NAMESPACE::Buffer buffer;
2408     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
2409       d.vkCreateBuffer( m_device,
2410                         reinterpret_cast<const VkBufferCreateInfo *>( &createInfo ),
2411                         reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
2412                         reinterpret_cast<VkBuffer *>( &buffer ) ) );
2413     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createBuffer" );
2414 
2415     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( buffer ) );
2416   }
2417 
2418 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
2419   // wrapper function for command vkCreateBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateBuffer.html
2420   template <typename Dispatch>
createBufferUnique(const VULKAN_HPP_NAMESPACE::BufferCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2421   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Buffer, Dispatch>>::type Device::createBufferUnique(
2422     const VULKAN_HPP_NAMESPACE::BufferCreateInfo & createInfo, Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator, Dispatch const & d ) const
2423   {
2424     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2425 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2426     VULKAN_HPP_ASSERT( d.vkCreateBuffer && "Function <vkCreateBuffer> requires <VK_VERSION_1_0>" );
2427 #    endif
2428 
2429     VULKAN_HPP_NAMESPACE::Buffer buffer;
2430     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
2431       d.vkCreateBuffer( m_device,
2432                         reinterpret_cast<const VkBufferCreateInfo *>( &createInfo ),
2433                         reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
2434                         reinterpret_cast<VkBuffer *>( &buffer ) ) );
2435     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferUnique" );
2436 
2437     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
2438       result, UniqueHandle<VULKAN_HPP_NAMESPACE::Buffer, Dispatch>( buffer, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
2439   }
2440 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
2441 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
2442 
2443   // wrapper function for command vkDestroyBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyBuffer.html
2444   template <typename Dispatch>
destroyBuffer(VULKAN_HPP_NAMESPACE::Buffer buffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const2445   VULKAN_HPP_INLINE void Device::destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer                      buffer,
2446                                                 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
2447                                                 Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
2448   {
2449     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2450     d.vkDestroyBuffer( static_cast<VkDevice>( m_device ), static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
2451   }
2452 
2453 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
2454   // wrapper function for command vkDestroyBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyBuffer.html
2455   template <typename Dispatch>
destroyBuffer(VULKAN_HPP_NAMESPACE::Buffer buffer,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2456   VULKAN_HPP_INLINE void Device::destroyBuffer( VULKAN_HPP_NAMESPACE::Buffer                              buffer,
2457                                                 Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
2458                                                 Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
2459   {
2460     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2461 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2462     VULKAN_HPP_ASSERT( d.vkDestroyBuffer && "Function <vkDestroyBuffer> requires <VK_VERSION_1_0>" );
2463 #  endif
2464 
2465     d.vkDestroyBuffer( m_device,
2466                        static_cast<VkBuffer>( buffer ),
2467                        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
2468   }
2469 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
2470 
2471   // wrapper function for command vkDestroyBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyBuffer.html
2472   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Buffer buffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const2473   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Buffer                      buffer,
2474                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
2475                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
2476   {
2477     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2478     d.vkDestroyBuffer( static_cast<VkDevice>( m_device ), static_cast<VkBuffer>( buffer ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
2479   }
2480 
2481 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
2482   // wrapper function for command vkDestroyBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyBuffer.html
2483   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Buffer buffer,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2484   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Buffer                              buffer,
2485                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
2486                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
2487   {
2488     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2489 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2490     VULKAN_HPP_ASSERT( d.vkDestroyBuffer && "Function <vkDestroyBuffer> requires <VK_VERSION_1_0>" );
2491 #  endif
2492 
2493     d.vkDestroyBuffer( m_device,
2494                        static_cast<VkBuffer>( buffer ),
2495                        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
2496   }
2497 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
2498 
2499   // wrapper function for command vkCreateBufferView, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateBufferView.html
2500   template <typename Dispatch>
createBufferView(const VULKAN_HPP_NAMESPACE::BufferViewCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::BufferView * pView,Dispatch const & d) const2501   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createBufferView( const VULKAN_HPP_NAMESPACE::BufferViewCreateInfo * pCreateInfo,
2502                                                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks *  pAllocator,
2503                                                                           VULKAN_HPP_NAMESPACE::BufferView *                 pView,
2504                                                                           Dispatch const &                                   d ) const VULKAN_HPP_NOEXCEPT
2505   {
2506     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2507     return static_cast<Result>( d.vkCreateBufferView( static_cast<VkDevice>( m_device ),
2508                                                       reinterpret_cast<const VkBufferViewCreateInfo *>( pCreateInfo ),
2509                                                       reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
2510                                                       reinterpret_cast<VkBufferView *>( pView ) ) );
2511   }
2512 
2513 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
2514   // wrapper function for command vkCreateBufferView, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateBufferView.html
2515   template <typename Dispatch>
2516   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::BufferView>::type
createBufferView(const VULKAN_HPP_NAMESPACE::BufferViewCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2517                        Device::createBufferView( const VULKAN_HPP_NAMESPACE::BufferViewCreateInfo &        createInfo,
2518                               Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
2519                               Dispatch const &                                          d ) const
2520   {
2521     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2522 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2523     VULKAN_HPP_ASSERT( d.vkCreateBufferView && "Function <vkCreateBufferView> requires <VK_VERSION_1_0>" );
2524 #  endif
2525 
2526     VULKAN_HPP_NAMESPACE::BufferView view;
2527     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
2528       d.vkCreateBufferView( m_device,
2529                             reinterpret_cast<const VkBufferViewCreateInfo *>( &createInfo ),
2530                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
2531                             reinterpret_cast<VkBufferView *>( &view ) ) );
2532     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferView" );
2533 
2534     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( view ) );
2535   }
2536 
2537 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
2538   // wrapper function for command vkCreateBufferView, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateBufferView.html
2539   template <typename Dispatch>
2540   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::BufferView, Dispatch>>::type
createBufferViewUnique(const VULKAN_HPP_NAMESPACE::BufferViewCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2541                        Device::createBufferViewUnique( const VULKAN_HPP_NAMESPACE::BufferViewCreateInfo &        createInfo,
2542                                     Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
2543                                     Dispatch const &                                          d ) const
2544   {
2545     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2546 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2547     VULKAN_HPP_ASSERT( d.vkCreateBufferView && "Function <vkCreateBufferView> requires <VK_VERSION_1_0>" );
2548 #    endif
2549 
2550     VULKAN_HPP_NAMESPACE::BufferView view;
2551     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
2552       d.vkCreateBufferView( m_device,
2553                             reinterpret_cast<const VkBufferViewCreateInfo *>( &createInfo ),
2554                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
2555                             reinterpret_cast<VkBufferView *>( &view ) ) );
2556     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferViewUnique" );
2557 
2558     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
2559       result, UniqueHandle<VULKAN_HPP_NAMESPACE::BufferView, Dispatch>( view, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
2560   }
2561 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
2562 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
2563 
2564   // wrapper function for command vkDestroyBufferView, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyBufferView.html
2565   template <typename Dispatch>
destroyBufferView(VULKAN_HPP_NAMESPACE::BufferView bufferView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const2566   VULKAN_HPP_INLINE void Device::destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView                  bufferView,
2567                                                     const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
2568                                                     Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
2569   {
2570     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2571     d.vkDestroyBufferView(
2572       static_cast<VkDevice>( m_device ), static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
2573   }
2574 
2575 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
2576   // wrapper function for command vkDestroyBufferView, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyBufferView.html
2577   template <typename Dispatch>
destroyBufferView(VULKAN_HPP_NAMESPACE::BufferView bufferView,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2578   VULKAN_HPP_INLINE void Device::destroyBufferView( VULKAN_HPP_NAMESPACE::BufferView                          bufferView,
2579                                                     Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
2580                                                     Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
2581   {
2582     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2583 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2584     VULKAN_HPP_ASSERT( d.vkDestroyBufferView && "Function <vkDestroyBufferView> requires <VK_VERSION_1_0>" );
2585 #  endif
2586 
2587     d.vkDestroyBufferView( m_device,
2588                            static_cast<VkBufferView>( bufferView ),
2589                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
2590   }
2591 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
2592 
2593   // wrapper function for command vkDestroyBufferView, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyBufferView.html
2594   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::BufferView bufferView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const2595   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferView                  bufferView,
2596                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
2597                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
2598   {
2599     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2600     d.vkDestroyBufferView(
2601       static_cast<VkDevice>( m_device ), static_cast<VkBufferView>( bufferView ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
2602   }
2603 
2604 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
2605   // wrapper function for command vkDestroyBufferView, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyBufferView.html
2606   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::BufferView bufferView,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2607   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferView                          bufferView,
2608                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
2609                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
2610   {
2611     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2612 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2613     VULKAN_HPP_ASSERT( d.vkDestroyBufferView && "Function <vkDestroyBufferView> requires <VK_VERSION_1_0>" );
2614 #  endif
2615 
2616     d.vkDestroyBufferView( m_device,
2617                            static_cast<VkBufferView>( bufferView ),
2618                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
2619   }
2620 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
2621 
2622   // wrapper function for command vkCreateImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateImage.html
2623   template <typename Dispatch>
createImage(const VULKAN_HPP_NAMESPACE::ImageCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Image * pImage,Dispatch const & d) const2624   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createImage( const VULKAN_HPP_NAMESPACE::ImageCreateInfo *     pCreateInfo,
2625                                                                      const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
2626                                                                      VULKAN_HPP_NAMESPACE::Image *                     pImage,
2627                                                                      Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
2628   {
2629     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2630     return static_cast<Result>( d.vkCreateImage( static_cast<VkDevice>( m_device ),
2631                                                  reinterpret_cast<const VkImageCreateInfo *>( pCreateInfo ),
2632                                                  reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
2633                                                  reinterpret_cast<VkImage *>( pImage ) ) );
2634   }
2635 
2636 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
2637   // wrapper function for command vkCreateImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateImage.html
2638   template <typename Dispatch>
createImage(const VULKAN_HPP_NAMESPACE::ImageCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2639   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Image>::type Device::createImage(
2640     const VULKAN_HPP_NAMESPACE::ImageCreateInfo & createInfo, Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator, Dispatch const & d ) const
2641   {
2642     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2643 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2644     VULKAN_HPP_ASSERT( d.vkCreateImage && "Function <vkCreateImage> requires <VK_VERSION_1_0>" );
2645 #  endif
2646 
2647     VULKAN_HPP_NAMESPACE::Image  image;
2648     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
2649       d.vkCreateImage( m_device,
2650                        reinterpret_cast<const VkImageCreateInfo *>( &createInfo ),
2651                        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
2652                        reinterpret_cast<VkImage *>( &image ) ) );
2653     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createImage" );
2654 
2655     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( image ) );
2656   }
2657 
2658 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
2659   // wrapper function for command vkCreateImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateImage.html
2660   template <typename Dispatch>
createImageUnique(const VULKAN_HPP_NAMESPACE::ImageCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2661   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Image, Dispatch>>::type Device::createImageUnique(
2662     const VULKAN_HPP_NAMESPACE::ImageCreateInfo & createInfo, Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator, Dispatch const & d ) const
2663   {
2664     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2665 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2666     VULKAN_HPP_ASSERT( d.vkCreateImage && "Function <vkCreateImage> requires <VK_VERSION_1_0>" );
2667 #    endif
2668 
2669     VULKAN_HPP_NAMESPACE::Image  image;
2670     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
2671       d.vkCreateImage( m_device,
2672                        reinterpret_cast<const VkImageCreateInfo *>( &createInfo ),
2673                        reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
2674                        reinterpret_cast<VkImage *>( &image ) ) );
2675     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageUnique" );
2676 
2677     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
2678       result, UniqueHandle<VULKAN_HPP_NAMESPACE::Image, Dispatch>( image, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
2679   }
2680 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
2681 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
2682 
2683   // wrapper function for command vkDestroyImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyImage.html
2684   template <typename Dispatch>
destroyImage(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const2685   VULKAN_HPP_INLINE void Device::destroyImage( VULKAN_HPP_NAMESPACE::Image                       image,
2686                                                const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
2687                                                Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
2688   {
2689     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2690     d.vkDestroyImage( static_cast<VkDevice>( m_device ), static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
2691   }
2692 
2693 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
2694   // wrapper function for command vkDestroyImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyImage.html
2695   template <typename Dispatch>
destroyImage(VULKAN_HPP_NAMESPACE::Image image,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2696   VULKAN_HPP_INLINE void Device::destroyImage( VULKAN_HPP_NAMESPACE::Image                               image,
2697                                                Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
2698                                                Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
2699   {
2700     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2701 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2702     VULKAN_HPP_ASSERT( d.vkDestroyImage && "Function <vkDestroyImage> requires <VK_VERSION_1_0>" );
2703 #  endif
2704 
2705     d.vkDestroyImage( m_device,
2706                       static_cast<VkImage>( image ),
2707                       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
2708   }
2709 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
2710 
2711   // wrapper function for command vkDestroyImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyImage.html
2712   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const2713   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Image                       image,
2714                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
2715                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
2716   {
2717     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2718     d.vkDestroyImage( static_cast<VkDevice>( m_device ), static_cast<VkImage>( image ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
2719   }
2720 
2721 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
2722   // wrapper function for command vkDestroyImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyImage.html
2723   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Image image,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2724   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Image                               image,
2725                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
2726                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
2727   {
2728     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2729 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2730     VULKAN_HPP_ASSERT( d.vkDestroyImage && "Function <vkDestroyImage> requires <VK_VERSION_1_0>" );
2731 #  endif
2732 
2733     d.vkDestroyImage( m_device,
2734                       static_cast<VkImage>( image ),
2735                       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
2736   }
2737 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
2738 
2739   // wrapper function for command vkGetImageSubresourceLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSubresourceLayout.html
2740   template <typename Dispatch>
getImageSubresourceLayout(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::ImageSubresource * pSubresource,VULKAN_HPP_NAMESPACE::SubresourceLayout * pLayout,Dispatch const & d) const2741   VULKAN_HPP_INLINE void Device::getImageSubresourceLayout( VULKAN_HPP_NAMESPACE::Image                    image,
2742                                                             const VULKAN_HPP_NAMESPACE::ImageSubresource * pSubresource,
2743                                                             VULKAN_HPP_NAMESPACE::SubresourceLayout *      pLayout,
2744                                                             Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
2745   {
2746     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2747     d.vkGetImageSubresourceLayout( static_cast<VkDevice>( m_device ),
2748                                    static_cast<VkImage>( image ),
2749                                    reinterpret_cast<const VkImageSubresource *>( pSubresource ),
2750                                    reinterpret_cast<VkSubresourceLayout *>( pLayout ) );
2751   }
2752 
2753 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
2754   // wrapper function for command vkGetImageSubresourceLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSubresourceLayout.html
2755   template <typename Dispatch>
getImageSubresourceLayout(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::ImageSubresource & subresource,Dispatch const & d) const2756   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout Device::getImageSubresourceLayout(
2757     VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::ImageSubresource & subresource, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
2758   {
2759     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2760 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2761     VULKAN_HPP_ASSERT( d.vkGetImageSubresourceLayout && "Function <vkGetImageSubresourceLayout> requires <VK_VERSION_1_0>" );
2762 #  endif
2763 
2764     VULKAN_HPP_NAMESPACE::SubresourceLayout layout;
2765     d.vkGetImageSubresourceLayout( m_device,
2766                                    static_cast<VkImage>( image ),
2767                                    reinterpret_cast<const VkImageSubresource *>( &subresource ),
2768                                    reinterpret_cast<VkSubresourceLayout *>( &layout ) );
2769 
2770     return layout;
2771   }
2772 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
2773 
2774   // wrapper function for command vkCreateImageView, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateImageView.html
2775   template <typename Dispatch>
createImageView(const VULKAN_HPP_NAMESPACE::ImageViewCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::ImageView * pView,Dispatch const & d) const2776   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createImageView( const VULKAN_HPP_NAMESPACE::ImageViewCreateInfo * pCreateInfo,
2777                                                                          const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
2778                                                                          VULKAN_HPP_NAMESPACE::ImageView *                 pView,
2779                                                                          Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
2780   {
2781     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2782     return static_cast<Result>( d.vkCreateImageView( static_cast<VkDevice>( m_device ),
2783                                                      reinterpret_cast<const VkImageViewCreateInfo *>( pCreateInfo ),
2784                                                      reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
2785                                                      reinterpret_cast<VkImageView *>( pView ) ) );
2786   }
2787 
2788 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
2789   // wrapper function for command vkCreateImageView, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateImageView.html
2790   template <typename Dispatch>
2791   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageView>::type
createImageView(const VULKAN_HPP_NAMESPACE::ImageViewCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2792                        Device::createImageView( const VULKAN_HPP_NAMESPACE::ImageViewCreateInfo &         createInfo,
2793                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
2794                              Dispatch const &                                          d ) const
2795   {
2796     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2797 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2798     VULKAN_HPP_ASSERT( d.vkCreateImageView && "Function <vkCreateImageView> requires <VK_VERSION_1_0>" );
2799 #  endif
2800 
2801     VULKAN_HPP_NAMESPACE::ImageView view;
2802     VULKAN_HPP_NAMESPACE::Result    result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
2803       d.vkCreateImageView( m_device,
2804                            reinterpret_cast<const VkImageViewCreateInfo *>( &createInfo ),
2805                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
2806                            reinterpret_cast<VkImageView *>( &view ) ) );
2807     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageView" );
2808 
2809     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( view ) );
2810   }
2811 
2812 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
2813   // wrapper function for command vkCreateImageView, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateImageView.html
2814   template <typename Dispatch>
2815   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::ImageView, Dispatch>>::type
createImageViewUnique(const VULKAN_HPP_NAMESPACE::ImageViewCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2816                        Device::createImageViewUnique( const VULKAN_HPP_NAMESPACE::ImageViewCreateInfo &         createInfo,
2817                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
2818                                    Dispatch const &                                          d ) const
2819   {
2820     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2821 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2822     VULKAN_HPP_ASSERT( d.vkCreateImageView && "Function <vkCreateImageView> requires <VK_VERSION_1_0>" );
2823 #    endif
2824 
2825     VULKAN_HPP_NAMESPACE::ImageView view;
2826     VULKAN_HPP_NAMESPACE::Result    result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
2827       d.vkCreateImageView( m_device,
2828                            reinterpret_cast<const VkImageViewCreateInfo *>( &createInfo ),
2829                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
2830                            reinterpret_cast<VkImageView *>( &view ) ) );
2831     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createImageViewUnique" );
2832 
2833     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
2834       result, UniqueHandle<VULKAN_HPP_NAMESPACE::ImageView, Dispatch>( view, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
2835   }
2836 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
2837 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
2838 
2839   // wrapper function for command vkDestroyImageView, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyImageView.html
2840   template <typename Dispatch>
destroyImageView(VULKAN_HPP_NAMESPACE::ImageView imageView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const2841   VULKAN_HPP_INLINE void Device::destroyImageView( VULKAN_HPP_NAMESPACE::ImageView                   imageView,
2842                                                    const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
2843                                                    Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
2844   {
2845     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2846     d.vkDestroyImageView(
2847       static_cast<VkDevice>( m_device ), static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
2848   }
2849 
2850 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
2851   // wrapper function for command vkDestroyImageView, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyImageView.html
2852   template <typename Dispatch>
destroyImageView(VULKAN_HPP_NAMESPACE::ImageView imageView,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2853   VULKAN_HPP_INLINE void Device::destroyImageView( VULKAN_HPP_NAMESPACE::ImageView                           imageView,
2854                                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
2855                                                    Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
2856   {
2857     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2858 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2859     VULKAN_HPP_ASSERT( d.vkDestroyImageView && "Function <vkDestroyImageView> requires <VK_VERSION_1_0>" );
2860 #  endif
2861 
2862     d.vkDestroyImageView( m_device,
2863                           static_cast<VkImageView>( imageView ),
2864                           reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
2865   }
2866 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
2867 
2868   // wrapper function for command vkDestroyImageView, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyImageView.html
2869   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ImageView imageView,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const2870   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ImageView                   imageView,
2871                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
2872                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
2873   {
2874     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2875     d.vkDestroyImageView(
2876       static_cast<VkDevice>( m_device ), static_cast<VkImageView>( imageView ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
2877   }
2878 
2879 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
2880   // wrapper function for command vkDestroyImageView, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyImageView.html
2881   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ImageView imageView,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2882   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ImageView                           imageView,
2883                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
2884                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
2885   {
2886     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2887 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2888     VULKAN_HPP_ASSERT( d.vkDestroyImageView && "Function <vkDestroyImageView> requires <VK_VERSION_1_0>" );
2889 #  endif
2890 
2891     d.vkDestroyImageView( m_device,
2892                           static_cast<VkImageView>( imageView ),
2893                           reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
2894   }
2895 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
2896 
2897   // wrapper function for command vkCreateShaderModule, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateShaderModule.html
2898   template <typename Dispatch>
createShaderModule(const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::ShaderModule * pShaderModule,Dispatch const & d) const2899   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createShaderModule( const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo * pCreateInfo,
2900                                                                             const VULKAN_HPP_NAMESPACE::AllocationCallbacks *    pAllocator,
2901                                                                             VULKAN_HPP_NAMESPACE::ShaderModule *                 pShaderModule,
2902                                                                             Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
2903   {
2904     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2905     return static_cast<Result>( d.vkCreateShaderModule( static_cast<VkDevice>( m_device ),
2906                                                         reinterpret_cast<const VkShaderModuleCreateInfo *>( pCreateInfo ),
2907                                                         reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
2908                                                         reinterpret_cast<VkShaderModule *>( pShaderModule ) ) );
2909   }
2910 
2911 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
2912   // wrapper function for command vkCreateShaderModule, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateShaderModule.html
2913   template <typename Dispatch>
2914   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ShaderModule>::type
createShaderModule(const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2915                        Device::createShaderModule( const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo &      createInfo,
2916                                 Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
2917                                 Dispatch const &                                          d ) const
2918   {
2919     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2920 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2921     VULKAN_HPP_ASSERT( d.vkCreateShaderModule && "Function <vkCreateShaderModule> requires <VK_VERSION_1_0>" );
2922 #  endif
2923 
2924     VULKAN_HPP_NAMESPACE::ShaderModule shaderModule;
2925     VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
2926       d.vkCreateShaderModule( m_device,
2927                               reinterpret_cast<const VkShaderModuleCreateInfo *>( &createInfo ),
2928                               reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
2929                               reinterpret_cast<VkShaderModule *>( &shaderModule ) ) );
2930     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createShaderModule" );
2931 
2932     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( shaderModule ) );
2933   }
2934 
2935 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
2936   // wrapper function for command vkCreateShaderModule, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateShaderModule.html
2937   template <typename Dispatch>
2938   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderModule, Dispatch>>::type
createShaderModuleUnique(const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2939                        Device::createShaderModuleUnique( const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo &      createInfo,
2940                                       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
2941                                       Dispatch const &                                          d ) const
2942   {
2943     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2944 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2945     VULKAN_HPP_ASSERT( d.vkCreateShaderModule && "Function <vkCreateShaderModule> requires <VK_VERSION_1_0>" );
2946 #    endif
2947 
2948     VULKAN_HPP_NAMESPACE::ShaderModule shaderModule;
2949     VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
2950       d.vkCreateShaderModule( m_device,
2951                               reinterpret_cast<const VkShaderModuleCreateInfo *>( &createInfo ),
2952                               reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
2953                               reinterpret_cast<VkShaderModule *>( &shaderModule ) ) );
2954     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createShaderModuleUnique" );
2955 
2956     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
2957       result, UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderModule, Dispatch>( shaderModule, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
2958   }
2959 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
2960 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
2961 
2962   // wrapper function for command vkDestroyShaderModule, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyShaderModule.html
2963   template <typename Dispatch>
destroyShaderModule(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const2964   VULKAN_HPP_INLINE void Device::destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule                shaderModule,
2965                                                       const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
2966                                                       Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
2967   {
2968     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2969     d.vkDestroyShaderModule(
2970       static_cast<VkDevice>( m_device ), static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
2971   }
2972 
2973 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
2974   // wrapper function for command vkDestroyShaderModule, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyShaderModule.html
2975   template <typename Dispatch>
destroyShaderModule(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const2976   VULKAN_HPP_INLINE void Device::destroyShaderModule( VULKAN_HPP_NAMESPACE::ShaderModule                        shaderModule,
2977                                                       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
2978                                                       Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
2979   {
2980     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2981 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
2982     VULKAN_HPP_ASSERT( d.vkDestroyShaderModule && "Function <vkDestroyShaderModule> requires <VK_VERSION_1_0>" );
2983 #  endif
2984 
2985     d.vkDestroyShaderModule( m_device,
2986                              static_cast<VkShaderModule>( shaderModule ),
2987                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
2988   }
2989 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
2990 
2991   // wrapper function for command vkDestroyShaderModule, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyShaderModule.html
2992   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const2993   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderModule                shaderModule,
2994                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
2995                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
2996   {
2997     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
2998     d.vkDestroyShaderModule(
2999       static_cast<VkDevice>( m_device ), static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
3000   }
3001 
3002 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
3003   // wrapper function for command vkDestroyShaderModule, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyShaderModule.html
3004   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const3005   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderModule                        shaderModule,
3006                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
3007                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
3008   {
3009     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3010 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3011     VULKAN_HPP_ASSERT( d.vkDestroyShaderModule && "Function <vkDestroyShaderModule> requires <VK_VERSION_1_0>" );
3012 #  endif
3013 
3014     d.vkDestroyShaderModule( m_device,
3015                              static_cast<VkShaderModule>( shaderModule ),
3016                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
3017   }
3018 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
3019 
3020   // wrapper function for command vkCreatePipelineCache, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePipelineCache.html
3021   template <typename Dispatch>
createPipelineCache(const VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::PipelineCache * pPipelineCache,Dispatch const & d) const3022   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createPipelineCache( const VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo * pCreateInfo,
3023                                                                              const VULKAN_HPP_NAMESPACE::AllocationCallbacks *     pAllocator,
3024                                                                              VULKAN_HPP_NAMESPACE::PipelineCache *                 pPipelineCache,
3025                                                                              Dispatch const &                                      d ) const VULKAN_HPP_NOEXCEPT
3026   {
3027     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3028     return static_cast<Result>( d.vkCreatePipelineCache( static_cast<VkDevice>( m_device ),
3029                                                          reinterpret_cast<const VkPipelineCacheCreateInfo *>( pCreateInfo ),
3030                                                          reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
3031                                                          reinterpret_cast<VkPipelineCache *>( pPipelineCache ) ) );
3032   }
3033 
3034 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
3035   // wrapper function for command vkCreatePipelineCache, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePipelineCache.html
3036   template <typename Dispatch>
3037   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::PipelineCache>::type
createPipelineCache(const VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const3038                        Device::createPipelineCache( const VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo &     createInfo,
3039                                  Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
3040                                  Dispatch const &                                          d ) const
3041   {
3042     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3043 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3044     VULKAN_HPP_ASSERT( d.vkCreatePipelineCache && "Function <vkCreatePipelineCache> requires <VK_VERSION_1_0>" );
3045 #  endif
3046 
3047     VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache;
3048     VULKAN_HPP_NAMESPACE::Result        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
3049       d.vkCreatePipelineCache( m_device,
3050                                reinterpret_cast<const VkPipelineCacheCreateInfo *>( &createInfo ),
3051                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
3052                                reinterpret_cast<VkPipelineCache *>( &pipelineCache ) ) );
3053     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineCache" );
3054 
3055     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( pipelineCache ) );
3056   }
3057 
3058 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
3059   // wrapper function for command vkCreatePipelineCache, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePipelineCache.html
3060   template <typename Dispatch>
3061   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineCache, Dispatch>>::type
createPipelineCacheUnique(const VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const3062                        Device::createPipelineCacheUnique( const VULKAN_HPP_NAMESPACE::PipelineCacheCreateInfo &     createInfo,
3063                                        Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
3064                                        Dispatch const &                                          d ) const
3065   {
3066     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3067 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3068     VULKAN_HPP_ASSERT( d.vkCreatePipelineCache && "Function <vkCreatePipelineCache> requires <VK_VERSION_1_0>" );
3069 #    endif
3070 
3071     VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache;
3072     VULKAN_HPP_NAMESPACE::Result        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
3073       d.vkCreatePipelineCache( m_device,
3074                                reinterpret_cast<const VkPipelineCacheCreateInfo *>( &createInfo ),
3075                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
3076                                reinterpret_cast<VkPipelineCache *>( &pipelineCache ) ) );
3077     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineCacheUnique" );
3078 
3079     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
3080       result, UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineCache, Dispatch>( pipelineCache, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
3081   }
3082 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
3083 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
3084 
3085   // wrapper function for command vkDestroyPipelineCache, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPipelineCache.html
3086   template <typename Dispatch>
destroyPipelineCache(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const3087   VULKAN_HPP_INLINE void Device::destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache               pipelineCache,
3088                                                        const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
3089                                                        Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
3090   {
3091     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3092     d.vkDestroyPipelineCache(
3093       static_cast<VkDevice>( m_device ), static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
3094   }
3095 
3096 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
3097   // wrapper function for command vkDestroyPipelineCache, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPipelineCache.html
3098   template <typename Dispatch>
destroyPipelineCache(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const3099   VULKAN_HPP_INLINE void Device::destroyPipelineCache( VULKAN_HPP_NAMESPACE::PipelineCache                       pipelineCache,
3100                                                        Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
3101                                                        Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
3102   {
3103     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3104 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3105     VULKAN_HPP_ASSERT( d.vkDestroyPipelineCache && "Function <vkDestroyPipelineCache> requires <VK_VERSION_1_0>" );
3106 #  endif
3107 
3108     d.vkDestroyPipelineCache( m_device,
3109                               static_cast<VkPipelineCache>( pipelineCache ),
3110                               reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
3111   }
3112 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
3113 
3114   // wrapper function for command vkDestroyPipelineCache, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPipelineCache.html
3115   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const3116   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineCache               pipelineCache,
3117                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
3118                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
3119   {
3120     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3121     d.vkDestroyPipelineCache(
3122       static_cast<VkDevice>( m_device ), static_cast<VkPipelineCache>( pipelineCache ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
3123   }
3124 
3125 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
3126   // wrapper function for command vkDestroyPipelineCache, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPipelineCache.html
3127   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const3128   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineCache                       pipelineCache,
3129                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
3130                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
3131   {
3132     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3133 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3134     VULKAN_HPP_ASSERT( d.vkDestroyPipelineCache && "Function <vkDestroyPipelineCache> requires <VK_VERSION_1_0>" );
3135 #  endif
3136 
3137     d.vkDestroyPipelineCache( m_device,
3138                               static_cast<VkPipelineCache>( pipelineCache ),
3139                               reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
3140   }
3141 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
3142 
3143   // wrapper function for command vkGetPipelineCacheData, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineCacheData.html
3144   template <typename Dispatch>
getPipelineCacheData(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,size_t * pDataSize,void * pData,Dispatch const & d) const3145   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,
3146                                                                               size_t *                            pDataSize,
3147                                                                               void *                              pData,
3148                                                                               Dispatch const &                    d ) const VULKAN_HPP_NOEXCEPT
3149   {
3150     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3151     return static_cast<Result>(
3152       d.vkGetPipelineCacheData( static_cast<VkDevice>( m_device ), static_cast<VkPipelineCache>( pipelineCache ), pDataSize, pData ) );
3153   }
3154 
3155 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
3156   // wrapper function for command vkGetPipelineCacheData, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineCacheData.html
3157   template <typename Uint8_tAllocator,
3158             typename Dispatch,
3159             typename std::enable_if<std::is_same<typename Uint8_tAllocator::value_type, uint8_t>::value, int>::type>
3160   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type
getPipelineCacheData(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,Dispatch const & d) const3161                        Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Dispatch const & d ) const
3162   {
3163     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3164 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3165     VULKAN_HPP_ASSERT( d.vkGetPipelineCacheData && "Function <vkGetPipelineCacheData> requires <VK_VERSION_1_0>" );
3166 #  endif
3167 
3168     std::vector<uint8_t, Uint8_tAllocator> data;
3169     size_t                                 dataSize;
3170     VULKAN_HPP_NAMESPACE::Result           result;
3171     do
3172     {
3173       result =
3174         static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, nullptr ) );
3175       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
3176       {
3177         data.resize( dataSize );
3178         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
3179           d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, reinterpret_cast<void *>( data.data() ) ) );
3180       }
3181     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
3182     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineCacheData" );
3183     VULKAN_HPP_ASSERT( dataSize <= data.size() );
3184     if ( dataSize < data.size() )
3185     {
3186       data.resize( dataSize );
3187     }
3188     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) );
3189   }
3190 
3191   // wrapper function for command vkGetPipelineCacheData, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineCacheData.html
3192   template <typename Uint8_tAllocator,
3193             typename Dispatch,
3194             typename std::enable_if<std::is_same<typename Uint8_tAllocator::value_type, uint8_t>::value, int>::type>
3195   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type
getPipelineCacheData(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,Uint8_tAllocator & uint8_tAllocator,Dispatch const & d) const3196     Device::getPipelineCacheData( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d ) const
3197   {
3198     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3199 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3200     VULKAN_HPP_ASSERT( d.vkGetPipelineCacheData && "Function <vkGetPipelineCacheData> requires <VK_VERSION_1_0>" );
3201 #  endif
3202 
3203     std::vector<uint8_t, Uint8_tAllocator> data( uint8_tAllocator );
3204     size_t                                 dataSize;
3205     VULKAN_HPP_NAMESPACE::Result           result;
3206     do
3207     {
3208       result =
3209         static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, nullptr ) );
3210       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
3211       {
3212         data.resize( dataSize );
3213         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
3214           d.vkGetPipelineCacheData( m_device, static_cast<VkPipelineCache>( pipelineCache ), &dataSize, reinterpret_cast<void *>( data.data() ) ) );
3215       }
3216     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
3217     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineCacheData" );
3218     VULKAN_HPP_ASSERT( dataSize <= data.size() );
3219     if ( dataSize < data.size() )
3220     {
3221       data.resize( dataSize );
3222     }
3223     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) );
3224   }
3225 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
3226 
3227   // wrapper function for command vkMergePipelineCaches, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkMergePipelineCaches.html
3228   template <typename Dispatch>
mergePipelineCaches(VULKAN_HPP_NAMESPACE::PipelineCache dstCache,uint32_t srcCacheCount,const VULKAN_HPP_NAMESPACE::PipelineCache * pSrcCaches,Dispatch const & d) const3229   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache         dstCache,
3230                                                                              uint32_t                                    srcCacheCount,
3231                                                                              const VULKAN_HPP_NAMESPACE::PipelineCache * pSrcCaches,
3232                                                                              Dispatch const &                            d ) const VULKAN_HPP_NOEXCEPT
3233   {
3234     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3235     return static_cast<Result>( d.vkMergePipelineCaches(
3236       static_cast<VkDevice>( m_device ), static_cast<VkPipelineCache>( dstCache ), srcCacheCount, reinterpret_cast<const VkPipelineCache *>( pSrcCaches ) ) );
3237   }
3238 
3239 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
3240   // wrapper function for command vkMergePipelineCaches, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkMergePipelineCaches.html
3241   template <typename Dispatch>
3242   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
mergePipelineCaches(VULKAN_HPP_NAMESPACE::PipelineCache dstCache,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::PipelineCache> const & srcCaches,Dispatch const & d) const3243                                           Device::mergePipelineCaches( VULKAN_HPP_NAMESPACE::PipelineCache                                                 dstCache,
3244                                  VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::PipelineCache> const & srcCaches,
3245                                  Dispatch const &                                                                    d ) const
3246   {
3247     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3248 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3249     VULKAN_HPP_ASSERT( d.vkMergePipelineCaches && "Function <vkMergePipelineCaches> requires <VK_VERSION_1_0>" );
3250 #  endif
3251 
3252     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkMergePipelineCaches(
3253       m_device, static_cast<VkPipelineCache>( dstCache ), srcCaches.size(), reinterpret_cast<const VkPipelineCache *>( srcCaches.data() ) ) );
3254     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mergePipelineCaches" );
3255 
3256     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
3257   }
3258 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
3259 
3260   // wrapper function for command vkCreateGraphicsPipelines, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateGraphicsPipelines.html
3261   template <typename Dispatch>
createGraphicsPipelines(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,uint32_t createInfoCount,const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo * pCreateInfos,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Pipeline * pPipelines,Dispatch const & d) const3262   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache                      pipelineCache,
3263                                                                                  uint32_t                                                 createInfoCount,
3264                                                                                  const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo * pCreateInfos,
3265                                                                                  const VULKAN_HPP_NAMESPACE::AllocationCallbacks *        pAllocator,
3266                                                                                  VULKAN_HPP_NAMESPACE::Pipeline *                         pPipelines,
3267                                                                                  Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
3268   {
3269     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3270     return static_cast<Result>( d.vkCreateGraphicsPipelines( static_cast<VkDevice>( m_device ),
3271                                                              static_cast<VkPipelineCache>( pipelineCache ),
3272                                                              createInfoCount,
3273                                                              reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( pCreateInfos ),
3274                                                              reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
3275                                                              reinterpret_cast<VkPipeline *>( pPipelines ) ) );
3276   }
3277 
3278 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
3279   // wrapper function for command vkCreateGraphicsPipelines, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateGraphicsPipelines.html
3280   template <typename PipelineAllocator,
3281             typename Dispatch,
3282             typename std::enable_if<std::is_same<typename PipelineAllocator::value_type, VULKAN_HPP_NAMESPACE::Pipeline>::value, int>::type>
3283   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
createGraphicsPipelines(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const3284                                          Device::createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache                                                              pipelineCache,
3285                                      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,
3286                                      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                        allocator,
3287                                      Dispatch const &                                                                                 d ) const
3288   {
3289     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3290 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3291     VULKAN_HPP_ASSERT( d.vkCreateGraphicsPipelines && "Function <vkCreateGraphicsPipelines> requires <VK_VERSION_1_0>" );
3292 #  endif
3293 
3294     std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator> pipelines( createInfos.size() );
3295     VULKAN_HPP_NAMESPACE::Result                                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateGraphicsPipelines(
3296       m_device,
3297       static_cast<VkPipelineCache>( pipelineCache ),
3298       createInfos.size(),
3299       reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( createInfos.data() ),
3300       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
3301       reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
3302     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
3303                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelines",
3304                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
3305 
3306     return ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>( result, std::move( pipelines ) );
3307   }
3308 
3309   // wrapper function for command vkCreateGraphicsPipelines, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateGraphicsPipelines.html
3310   template <typename PipelineAllocator,
3311             typename Dispatch,
3312             typename std::enable_if<std::is_same<typename PipelineAllocator::value_type, VULKAN_HPP_NAMESPACE::Pipeline>::value, int>::type>
3313   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
createGraphicsPipelines(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const3314                                          Device::createGraphicsPipelines( VULKAN_HPP_NAMESPACE::PipelineCache                                                              pipelineCache,
3315                                      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,
3316                                      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                        allocator,
3317                                      PipelineAllocator &                                                                              pipelineAllocator,
3318                                      Dispatch const &                                                                                 d ) const
3319   {
3320     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3321 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3322     VULKAN_HPP_ASSERT( d.vkCreateGraphicsPipelines && "Function <vkCreateGraphicsPipelines> requires <VK_VERSION_1_0>" );
3323 #  endif
3324 
3325     std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
3326     VULKAN_HPP_NAMESPACE::Result                                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateGraphicsPipelines(
3327       m_device,
3328       static_cast<VkPipelineCache>( pipelineCache ),
3329       createInfos.size(),
3330       reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( createInfos.data() ),
3331       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
3332       reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
3333     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
3334                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelines",
3335                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
3336 
3337     return ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>( result, std::move( pipelines ) );
3338   }
3339 
3340   // wrapper function for command vkCreateGraphicsPipelines, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateGraphicsPipelines.html
3341   template <typename Dispatch>
3342   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<VULKAN_HPP_NAMESPACE::Pipeline>
createGraphicsPipeline(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const3343                                          Device::createGraphicsPipeline( VULKAN_HPP_NAMESPACE::PipelineCache                       pipelineCache,
3344                                     const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo &  createInfo,
3345                                     Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
3346                                     Dispatch const &                                          d ) const
3347   {
3348     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3349 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3350     VULKAN_HPP_ASSERT( d.vkCreateGraphicsPipelines && "Function <vkCreateGraphicsPipelines> requires <VK_VERSION_1_0>" );
3351 #  endif
3352 
3353     VULKAN_HPP_NAMESPACE::Pipeline pipeline;
3354     VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateGraphicsPipelines(
3355       m_device,
3356       static_cast<VkPipelineCache>( pipelineCache ),
3357       1,
3358       reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( &createInfo ),
3359       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
3360       reinterpret_cast<VkPipeline *>( &pipeline ) ) );
3361     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
3362                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipeline",
3363                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
3364 
3365     return ResultValue<VULKAN_HPP_NAMESPACE::Pipeline>( result, std::move( pipeline ) );
3366   }
3367 
3368 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
3369   // wrapper function for command vkCreateGraphicsPipelines, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateGraphicsPipelines.html
3370   template <
3371     typename Dispatch,
3372     typename PipelineAllocator,
3373     typename std::enable_if<std::is_same<typename PipelineAllocator::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>::value, int>::type>
3374   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
createGraphicsPipelinesUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const3375                                          Device::createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache                                                              pipelineCache,
3376                                            VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,
3377                                            Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                        allocator,
3378                                            Dispatch const &                                                                                 d ) const
3379   {
3380     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3381 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3382     VULKAN_HPP_ASSERT( d.vkCreateGraphicsPipelines && "Function <vkCreateGraphicsPipelines> requires <VK_VERSION_1_0>" );
3383 #    endif
3384 
3385     std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
3386     VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateGraphicsPipelines(
3387       m_device,
3388       static_cast<VkPipelineCache>( pipelineCache ),
3389       createInfos.size(),
3390       reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( createInfos.data() ),
3391       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
3392       reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
3393     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
3394                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique",
3395                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
3396     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
3397     uniquePipelines.reserve( createInfos.size() );
3398     detail::ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
3399     for ( auto const & pipeline : pipelines )
3400     {
3401       uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipeline, deleter ) );
3402     }
3403     return ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>( result, std::move( uniquePipelines ) );
3404   }
3405 
3406   // wrapper function for command vkCreateGraphicsPipelines, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateGraphicsPipelines.html
3407   template <
3408     typename Dispatch,
3409     typename PipelineAllocator,
3410     typename std::enable_if<std::is_same<typename PipelineAllocator::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>::value, int>::type>
3411   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
createGraphicsPipelinesUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const3412                                          Device::createGraphicsPipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache                                                              pipelineCache,
3413                                            VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo> const & createInfos,
3414                                            Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                        allocator,
3415                                            PipelineAllocator &                                                                              pipelineAllocator,
3416                                            Dispatch const &                                                                                 d ) const
3417   {
3418     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3419 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3420     VULKAN_HPP_ASSERT( d.vkCreateGraphicsPipelines && "Function <vkCreateGraphicsPipelines> requires <VK_VERSION_1_0>" );
3421 #    endif
3422 
3423     std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
3424     VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateGraphicsPipelines(
3425       m_device,
3426       static_cast<VkPipelineCache>( pipelineCache ),
3427       createInfos.size(),
3428       reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( createInfos.data() ),
3429       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
3430       reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
3431     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
3432                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelinesUnique",
3433                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
3434     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
3435     uniquePipelines.reserve( createInfos.size() );
3436     detail::ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
3437     for ( auto const & pipeline : pipelines )
3438     {
3439       uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipeline, deleter ) );
3440     }
3441     return ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>( result, std::move( uniquePipelines ) );
3442   }
3443 
3444   // wrapper function for command vkCreateGraphicsPipelines, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateGraphicsPipelines.html
3445   template <typename Dispatch>
3446   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>
createGraphicsPipelineUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const3447                                          Device::createGraphicsPipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache                       pipelineCache,
3448                                           const VULKAN_HPP_NAMESPACE::GraphicsPipelineCreateInfo &  createInfo,
3449                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
3450                                           Dispatch const &                                          d ) const
3451   {
3452     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3453 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3454     VULKAN_HPP_ASSERT( d.vkCreateGraphicsPipelines && "Function <vkCreateGraphicsPipelines> requires <VK_VERSION_1_0>" );
3455 #    endif
3456 
3457     VULKAN_HPP_NAMESPACE::Pipeline pipeline;
3458     VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateGraphicsPipelines(
3459       m_device,
3460       static_cast<VkPipelineCache>( pipelineCache ),
3461       1,
3462       reinterpret_cast<const VkGraphicsPipelineCreateInfo *>( &createInfo ),
3463       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
3464       reinterpret_cast<VkPipeline *>( &pipeline ) ) );
3465     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
3466                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createGraphicsPipelineUnique",
3467                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
3468 
3469     return ResultValue<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>(
3470       result, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>( pipeline, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
3471   }
3472 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
3473 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
3474 
3475   // wrapper function for command vkCreateComputePipelines, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateComputePipelines.html
3476   template <typename Dispatch>
createComputePipelines(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,uint32_t createInfoCount,const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo * pCreateInfos,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Pipeline * pPipelines,Dispatch const & d) const3477   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache                     pipelineCache,
3478                                                                                 uint32_t                                                createInfoCount,
3479                                                                                 const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo * pCreateInfos,
3480                                                                                 const VULKAN_HPP_NAMESPACE::AllocationCallbacks *       pAllocator,
3481                                                                                 VULKAN_HPP_NAMESPACE::Pipeline *                        pPipelines,
3482                                                                                 Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
3483   {
3484     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3485     return static_cast<Result>( d.vkCreateComputePipelines( static_cast<VkDevice>( m_device ),
3486                                                             static_cast<VkPipelineCache>( pipelineCache ),
3487                                                             createInfoCount,
3488                                                             reinterpret_cast<const VkComputePipelineCreateInfo *>( pCreateInfos ),
3489                                                             reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
3490                                                             reinterpret_cast<VkPipeline *>( pPipelines ) ) );
3491   }
3492 
3493 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
3494   // wrapper function for command vkCreateComputePipelines, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateComputePipelines.html
3495   template <typename PipelineAllocator,
3496             typename Dispatch,
3497             typename std::enable_if<std::is_same<typename PipelineAllocator::value_type, VULKAN_HPP_NAMESPACE::Pipeline>::value, int>::type>
3498   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
createComputePipelines(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const3499                                          Device::createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache                                                             pipelineCache,
3500                                     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,
3501                                     Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                       allocator,
3502                                     Dispatch const &                                                                                d ) const
3503   {
3504     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3505 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3506     VULKAN_HPP_ASSERT( d.vkCreateComputePipelines && "Function <vkCreateComputePipelines> requires <VK_VERSION_1_0>" );
3507 #  endif
3508 
3509     std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator> pipelines( createInfos.size() );
3510     VULKAN_HPP_NAMESPACE::Result                                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateComputePipelines(
3511       m_device,
3512       static_cast<VkPipelineCache>( pipelineCache ),
3513       createInfos.size(),
3514       reinterpret_cast<const VkComputePipelineCreateInfo *>( createInfos.data() ),
3515       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
3516       reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
3517     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
3518                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelines",
3519                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
3520 
3521     return ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>( result, std::move( pipelines ) );
3522   }
3523 
3524   // wrapper function for command vkCreateComputePipelines, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateComputePipelines.html
3525   template <typename PipelineAllocator,
3526             typename Dispatch,
3527             typename std::enable_if<std::is_same<typename PipelineAllocator::value_type, VULKAN_HPP_NAMESPACE::Pipeline>::value, int>::type>
3528   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
createComputePipelines(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const3529                                          Device::createComputePipelines( VULKAN_HPP_NAMESPACE::PipelineCache                                                             pipelineCache,
3530                                     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,
3531                                     Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                       allocator,
3532                                     PipelineAllocator &                                                                             pipelineAllocator,
3533                                     Dispatch const &                                                                                d ) const
3534   {
3535     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3536 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3537     VULKAN_HPP_ASSERT( d.vkCreateComputePipelines && "Function <vkCreateComputePipelines> requires <VK_VERSION_1_0>" );
3538 #  endif
3539 
3540     std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
3541     VULKAN_HPP_NAMESPACE::Result                                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateComputePipelines(
3542       m_device,
3543       static_cast<VkPipelineCache>( pipelineCache ),
3544       createInfos.size(),
3545       reinterpret_cast<const VkComputePipelineCreateInfo *>( createInfos.data() ),
3546       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
3547       reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
3548     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
3549                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelines",
3550                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
3551 
3552     return ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>( result, std::move( pipelines ) );
3553   }
3554 
3555   // wrapper function for command vkCreateComputePipelines, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateComputePipelines.html
3556   template <typename Dispatch>
3557   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<VULKAN_HPP_NAMESPACE::Pipeline>
createComputePipeline(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const3558                                          Device::createComputePipeline( VULKAN_HPP_NAMESPACE::PipelineCache                       pipelineCache,
3559                                    const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo &   createInfo,
3560                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
3561                                    Dispatch const &                                          d ) const
3562   {
3563     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3564 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3565     VULKAN_HPP_ASSERT( d.vkCreateComputePipelines && "Function <vkCreateComputePipelines> requires <VK_VERSION_1_0>" );
3566 #  endif
3567 
3568     VULKAN_HPP_NAMESPACE::Pipeline pipeline;
3569     VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateComputePipelines(
3570       m_device,
3571       static_cast<VkPipelineCache>( pipelineCache ),
3572       1,
3573       reinterpret_cast<const VkComputePipelineCreateInfo *>( &createInfo ),
3574       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
3575       reinterpret_cast<VkPipeline *>( &pipeline ) ) );
3576     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
3577                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipeline",
3578                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
3579 
3580     return ResultValue<VULKAN_HPP_NAMESPACE::Pipeline>( result, std::move( pipeline ) );
3581   }
3582 
3583 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
3584   // wrapper function for command vkCreateComputePipelines, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateComputePipelines.html
3585   template <
3586     typename Dispatch,
3587     typename PipelineAllocator,
3588     typename std::enable_if<std::is_same<typename PipelineAllocator::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>::value, int>::type>
3589   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
createComputePipelinesUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const3590                                          Device::createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache                                                             pipelineCache,
3591                                           VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,
3592                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                       allocator,
3593                                           Dispatch const &                                                                                d ) const
3594   {
3595     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3596 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3597     VULKAN_HPP_ASSERT( d.vkCreateComputePipelines && "Function <vkCreateComputePipelines> requires <VK_VERSION_1_0>" );
3598 #    endif
3599 
3600     std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
3601     VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateComputePipelines(
3602       m_device,
3603       static_cast<VkPipelineCache>( pipelineCache ),
3604       createInfos.size(),
3605       reinterpret_cast<const VkComputePipelineCreateInfo *>( createInfos.data() ),
3606       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
3607       reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
3608     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
3609                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique",
3610                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
3611     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
3612     uniquePipelines.reserve( createInfos.size() );
3613     detail::ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
3614     for ( auto const & pipeline : pipelines )
3615     {
3616       uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipeline, deleter ) );
3617     }
3618     return ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>( result, std::move( uniquePipelines ) );
3619   }
3620 
3621   // wrapper function for command vkCreateComputePipelines, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateComputePipelines.html
3622   template <
3623     typename Dispatch,
3624     typename PipelineAllocator,
3625     typename std::enable_if<std::is_same<typename PipelineAllocator::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>::value, int>::type>
3626   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
createComputePipelinesUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const3627                                          Device::createComputePipelinesUnique( VULKAN_HPP_NAMESPACE::PipelineCache                                                             pipelineCache,
3628                                           VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo> const & createInfos,
3629                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                       allocator,
3630                                           PipelineAllocator &                                                                             pipelineAllocator,
3631                                           Dispatch const &                                                                                d ) const
3632   {
3633     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3634 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3635     VULKAN_HPP_ASSERT( d.vkCreateComputePipelines && "Function <vkCreateComputePipelines> requires <VK_VERSION_1_0>" );
3636 #    endif
3637 
3638     std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
3639     VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateComputePipelines(
3640       m_device,
3641       static_cast<VkPipelineCache>( pipelineCache ),
3642       createInfos.size(),
3643       reinterpret_cast<const VkComputePipelineCreateInfo *>( createInfos.data() ),
3644       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
3645       reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
3646     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
3647                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelinesUnique",
3648                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
3649     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
3650     uniquePipelines.reserve( createInfos.size() );
3651     detail::ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
3652     for ( auto const & pipeline : pipelines )
3653     {
3654       uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipeline, deleter ) );
3655     }
3656     return ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>( result, std::move( uniquePipelines ) );
3657   }
3658 
3659   // wrapper function for command vkCreateComputePipelines, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateComputePipelines.html
3660   template <typename Dispatch>
3661   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>
createComputePipelineUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const3662                                          Device::createComputePipelineUnique( VULKAN_HPP_NAMESPACE::PipelineCache                       pipelineCache,
3663                                          const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo &   createInfo,
3664                                          Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
3665                                          Dispatch const &                                          d ) const
3666   {
3667     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3668 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3669     VULKAN_HPP_ASSERT( d.vkCreateComputePipelines && "Function <vkCreateComputePipelines> requires <VK_VERSION_1_0>" );
3670 #    endif
3671 
3672     VULKAN_HPP_NAMESPACE::Pipeline pipeline;
3673     VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateComputePipelines(
3674       m_device,
3675       static_cast<VkPipelineCache>( pipelineCache ),
3676       1,
3677       reinterpret_cast<const VkComputePipelineCreateInfo *>( &createInfo ),
3678       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
3679       reinterpret_cast<VkPipeline *>( &pipeline ) ) );
3680     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
3681                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createComputePipelineUnique",
3682                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
3683 
3684     return ResultValue<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>(
3685       result, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>( pipeline, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
3686   }
3687 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
3688 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
3689 
3690   // wrapper function for command vkDestroyPipeline, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPipeline.html
3691   template <typename Dispatch>
destroyPipeline(VULKAN_HPP_NAMESPACE::Pipeline pipeline,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const3692   VULKAN_HPP_INLINE void Device::destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline                    pipeline,
3693                                                   const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
3694                                                   Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
3695   {
3696     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3697     d.vkDestroyPipeline(
3698       static_cast<VkDevice>( m_device ), static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
3699   }
3700 
3701 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
3702   // wrapper function for command vkDestroyPipeline, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPipeline.html
3703   template <typename Dispatch>
destroyPipeline(VULKAN_HPP_NAMESPACE::Pipeline pipeline,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const3704   VULKAN_HPP_INLINE void Device::destroyPipeline( VULKAN_HPP_NAMESPACE::Pipeline                            pipeline,
3705                                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
3706                                                   Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
3707   {
3708     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3709 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3710     VULKAN_HPP_ASSERT( d.vkDestroyPipeline && "Function <vkDestroyPipeline> requires <VK_VERSION_1_0>" );
3711 #  endif
3712 
3713     d.vkDestroyPipeline( m_device,
3714                          static_cast<VkPipeline>( pipeline ),
3715                          reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
3716   }
3717 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
3718 
3719   // wrapper function for command vkDestroyPipeline, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPipeline.html
3720   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Pipeline pipeline,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const3721   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Pipeline                    pipeline,
3722                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
3723                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
3724   {
3725     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3726     d.vkDestroyPipeline(
3727       static_cast<VkDevice>( m_device ), static_cast<VkPipeline>( pipeline ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
3728   }
3729 
3730 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
3731   // wrapper function for command vkDestroyPipeline, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPipeline.html
3732   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Pipeline pipeline,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const3733   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Pipeline                            pipeline,
3734                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
3735                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
3736   {
3737     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3738 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3739     VULKAN_HPP_ASSERT( d.vkDestroyPipeline && "Function <vkDestroyPipeline> requires <VK_VERSION_1_0>" );
3740 #  endif
3741 
3742     d.vkDestroyPipeline( m_device,
3743                          static_cast<VkPipeline>( pipeline ),
3744                          reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
3745   }
3746 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
3747 
3748   // wrapper function for command vkCreatePipelineLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePipelineLayout.html
3749   template <typename Dispatch>
createPipelineLayout(const VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::PipelineLayout * pPipelineLayout,Dispatch const & d) const3750   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createPipelineLayout( const VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo * pCreateInfo,
3751                                                                               const VULKAN_HPP_NAMESPACE::AllocationCallbacks *      pAllocator,
3752                                                                               VULKAN_HPP_NAMESPACE::PipelineLayout *                 pPipelineLayout,
3753                                                                               Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
3754   {
3755     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3756     return static_cast<Result>( d.vkCreatePipelineLayout( static_cast<VkDevice>( m_device ),
3757                                                           reinterpret_cast<const VkPipelineLayoutCreateInfo *>( pCreateInfo ),
3758                                                           reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
3759                                                           reinterpret_cast<VkPipelineLayout *>( pPipelineLayout ) ) );
3760   }
3761 
3762 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
3763   // wrapper function for command vkCreatePipelineLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePipelineLayout.html
3764   template <typename Dispatch>
3765   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::PipelineLayout>::type
createPipelineLayout(const VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const3766                        Device::createPipelineLayout( const VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo &    createInfo,
3767                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
3768                                   Dispatch const &                                          d ) const
3769   {
3770     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3771 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3772     VULKAN_HPP_ASSERT( d.vkCreatePipelineLayout && "Function <vkCreatePipelineLayout> requires <VK_VERSION_1_0>" );
3773 #  endif
3774 
3775     VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout;
3776     VULKAN_HPP_NAMESPACE::Result         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
3777       d.vkCreatePipelineLayout( m_device,
3778                                 reinterpret_cast<const VkPipelineLayoutCreateInfo *>( &createInfo ),
3779                                 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
3780                                 reinterpret_cast<VkPipelineLayout *>( &pipelineLayout ) ) );
3781     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineLayout" );
3782 
3783     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( pipelineLayout ) );
3784   }
3785 
3786 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
3787   // wrapper function for command vkCreatePipelineLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePipelineLayout.html
3788   template <typename Dispatch>
3789   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineLayout, Dispatch>>::type
createPipelineLayoutUnique(const VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const3790                        Device::createPipelineLayoutUnique( const VULKAN_HPP_NAMESPACE::PipelineLayoutCreateInfo &    createInfo,
3791                                         Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
3792                                         Dispatch const &                                          d ) const
3793   {
3794     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3795 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3796     VULKAN_HPP_ASSERT( d.vkCreatePipelineLayout && "Function <vkCreatePipelineLayout> requires <VK_VERSION_1_0>" );
3797 #    endif
3798 
3799     VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout;
3800     VULKAN_HPP_NAMESPACE::Result         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
3801       d.vkCreatePipelineLayout( m_device,
3802                                 reinterpret_cast<const VkPipelineLayoutCreateInfo *>( &createInfo ),
3803                                 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
3804                                 reinterpret_cast<VkPipelineLayout *>( &pipelineLayout ) ) );
3805     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineLayoutUnique" );
3806 
3807     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
3808       result, UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineLayout, Dispatch>( pipelineLayout, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
3809   }
3810 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
3811 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
3812 
3813   // wrapper function for command vkDestroyPipelineLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPipelineLayout.html
3814   template <typename Dispatch>
destroyPipelineLayout(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const3815   VULKAN_HPP_INLINE void Device::destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout              pipelineLayout,
3816                                                         const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
3817                                                         Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
3818   {
3819     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3820     d.vkDestroyPipelineLayout(
3821       static_cast<VkDevice>( m_device ), static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
3822   }
3823 
3824 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
3825   // wrapper function for command vkDestroyPipelineLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPipelineLayout.html
3826   template <typename Dispatch>
destroyPipelineLayout(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const3827   VULKAN_HPP_INLINE void Device::destroyPipelineLayout( VULKAN_HPP_NAMESPACE::PipelineLayout                      pipelineLayout,
3828                                                         Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
3829                                                         Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
3830   {
3831     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3832 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3833     VULKAN_HPP_ASSERT( d.vkDestroyPipelineLayout && "Function <vkDestroyPipelineLayout> requires <VK_VERSION_1_0>" );
3834 #  endif
3835 
3836     d.vkDestroyPipelineLayout( m_device,
3837                                static_cast<VkPipelineLayout>( pipelineLayout ),
3838                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
3839   }
3840 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
3841 
3842   // wrapper function for command vkDestroyPipelineLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPipelineLayout.html
3843   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const3844   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineLayout              pipelineLayout,
3845                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
3846                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
3847   {
3848     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3849     d.vkDestroyPipelineLayout(
3850       static_cast<VkDevice>( m_device ), static_cast<VkPipelineLayout>( pipelineLayout ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
3851   }
3852 
3853 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
3854   // wrapper function for command vkDestroyPipelineLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPipelineLayout.html
3855   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineLayout pipelineLayout,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const3856   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineLayout                      pipelineLayout,
3857                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
3858                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
3859   {
3860     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3861 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3862     VULKAN_HPP_ASSERT( d.vkDestroyPipelineLayout && "Function <vkDestroyPipelineLayout> requires <VK_VERSION_1_0>" );
3863 #  endif
3864 
3865     d.vkDestroyPipelineLayout( m_device,
3866                                static_cast<VkPipelineLayout>( pipelineLayout ),
3867                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
3868   }
3869 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
3870 
3871   // wrapper function for command vkCreateSampler, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSampler.html
3872   template <typename Dispatch>
createSampler(const VULKAN_HPP_NAMESPACE::SamplerCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Sampler * pSampler,Dispatch const & d) const3873   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createSampler( const VULKAN_HPP_NAMESPACE::SamplerCreateInfo *   pCreateInfo,
3874                                                                        const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
3875                                                                        VULKAN_HPP_NAMESPACE::Sampler *                   pSampler,
3876                                                                        Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
3877   {
3878     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3879     return static_cast<Result>( d.vkCreateSampler( static_cast<VkDevice>( m_device ),
3880                                                    reinterpret_cast<const VkSamplerCreateInfo *>( pCreateInfo ),
3881                                                    reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
3882                                                    reinterpret_cast<VkSampler *>( pSampler ) ) );
3883   }
3884 
3885 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
3886   // wrapper function for command vkCreateSampler, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSampler.html
3887   template <typename Dispatch>
createSampler(const VULKAN_HPP_NAMESPACE::SamplerCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const3888   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Sampler>::type Device::createSampler(
3889     const VULKAN_HPP_NAMESPACE::SamplerCreateInfo & createInfo, Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator, Dispatch const & d ) const
3890   {
3891     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3892 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3893     VULKAN_HPP_ASSERT( d.vkCreateSampler && "Function <vkCreateSampler> requires <VK_VERSION_1_0>" );
3894 #  endif
3895 
3896     VULKAN_HPP_NAMESPACE::Sampler sampler;
3897     VULKAN_HPP_NAMESPACE::Result  result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
3898       d.vkCreateSampler( m_device,
3899                          reinterpret_cast<const VkSamplerCreateInfo *>( &createInfo ),
3900                          reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
3901                          reinterpret_cast<VkSampler *>( &sampler ) ) );
3902     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSampler" );
3903 
3904     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( sampler ) );
3905   }
3906 
3907 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
3908   // wrapper function for command vkCreateSampler, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSampler.html
3909   template <typename Dispatch>
createSamplerUnique(const VULKAN_HPP_NAMESPACE::SamplerCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const3910   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Sampler, Dispatch>>::type Device::createSamplerUnique(
3911     const VULKAN_HPP_NAMESPACE::SamplerCreateInfo & createInfo, Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator, Dispatch const & d ) const
3912   {
3913     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3914 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3915     VULKAN_HPP_ASSERT( d.vkCreateSampler && "Function <vkCreateSampler> requires <VK_VERSION_1_0>" );
3916 #    endif
3917 
3918     VULKAN_HPP_NAMESPACE::Sampler sampler;
3919     VULKAN_HPP_NAMESPACE::Result  result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
3920       d.vkCreateSampler( m_device,
3921                          reinterpret_cast<const VkSamplerCreateInfo *>( &createInfo ),
3922                          reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
3923                          reinterpret_cast<VkSampler *>( &sampler ) ) );
3924     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerUnique" );
3925 
3926     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
3927       result, UniqueHandle<VULKAN_HPP_NAMESPACE::Sampler, Dispatch>( sampler, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
3928   }
3929 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
3930 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
3931 
3932   // wrapper function for command vkDestroySampler, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySampler.html
3933   template <typename Dispatch>
destroySampler(VULKAN_HPP_NAMESPACE::Sampler sampler,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const3934   VULKAN_HPP_INLINE void Device::destroySampler( VULKAN_HPP_NAMESPACE::Sampler                     sampler,
3935                                                  const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
3936                                                  Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
3937   {
3938     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3939     d.vkDestroySampler( static_cast<VkDevice>( m_device ), static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
3940   }
3941 
3942 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
3943   // wrapper function for command vkDestroySampler, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySampler.html
3944   template <typename Dispatch>
destroySampler(VULKAN_HPP_NAMESPACE::Sampler sampler,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const3945   VULKAN_HPP_INLINE void Device::destroySampler( VULKAN_HPP_NAMESPACE::Sampler                             sampler,
3946                                                  Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
3947                                                  Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
3948   {
3949     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3950 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3951     VULKAN_HPP_ASSERT( d.vkDestroySampler && "Function <vkDestroySampler> requires <VK_VERSION_1_0>" );
3952 #  endif
3953 
3954     d.vkDestroySampler( m_device,
3955                         static_cast<VkSampler>( sampler ),
3956                         reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
3957   }
3958 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
3959 
3960   // wrapper function for command vkDestroySampler, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySampler.html
3961   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Sampler sampler,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const3962   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Sampler                     sampler,
3963                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
3964                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
3965   {
3966     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3967     d.vkDestroySampler( static_cast<VkDevice>( m_device ), static_cast<VkSampler>( sampler ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
3968   }
3969 
3970 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
3971   // wrapper function for command vkDestroySampler, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySampler.html
3972   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Sampler sampler,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const3973   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Sampler                             sampler,
3974                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
3975                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
3976   {
3977     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3978 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
3979     VULKAN_HPP_ASSERT( d.vkDestroySampler && "Function <vkDestroySampler> requires <VK_VERSION_1_0>" );
3980 #  endif
3981 
3982     d.vkDestroySampler( m_device,
3983                         static_cast<VkSampler>( sampler ),
3984                         reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
3985   }
3986 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
3987 
3988   // wrapper function for command vkCreateDescriptorSetLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDescriptorSetLayout.html
3989   template <typename Dispatch>
createDescriptorSetLayout(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorSetLayout * pSetLayout,Dispatch const & d) const3990   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createDescriptorSetLayout( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo,
3991                                                                                    const VULKAN_HPP_NAMESPACE::AllocationCallbacks *           pAllocator,
3992                                                                                    VULKAN_HPP_NAMESPACE::DescriptorSetLayout *                 pSetLayout,
3993                                                                                    Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
3994   {
3995     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
3996     return static_cast<Result>( d.vkCreateDescriptorSetLayout( static_cast<VkDevice>( m_device ),
3997                                                                reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( pCreateInfo ),
3998                                                                reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
3999                                                                reinterpret_cast<VkDescriptorSetLayout *>( pSetLayout ) ) );
4000   }
4001 
4002 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
4003   // wrapper function for command vkCreateDescriptorSetLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDescriptorSetLayout.html
4004   template <typename Dispatch>
4005   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DescriptorSetLayout>::type
createDescriptorSetLayout(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const4006                        Device::createDescriptorSetLayout( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo,
4007                                        Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>   allocator,
4008                                        Dispatch const &                                            d ) const
4009   {
4010     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4011 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4012     VULKAN_HPP_ASSERT( d.vkCreateDescriptorSetLayout && "Function <vkCreateDescriptorSetLayout> requires <VK_VERSION_1_0>" );
4013 #  endif
4014 
4015     VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout;
4016     VULKAN_HPP_NAMESPACE::Result              result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDescriptorSetLayout(
4017       m_device,
4018       reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ),
4019       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
4020       reinterpret_cast<VkDescriptorSetLayout *>( &setLayout ) ) );
4021     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorSetLayout" );
4022 
4023     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( setLayout ) );
4024   }
4025 
4026 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
4027   // wrapper function for command vkCreateDescriptorSetLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDescriptorSetLayout.html
4028   template <typename Dispatch>
4029   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorSetLayout, Dispatch>>::type
createDescriptorSetLayoutUnique(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const4030                        Device::createDescriptorSetLayoutUnique( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo,
4031                                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>   allocator,
4032                                              Dispatch const &                                            d ) const
4033   {
4034     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4035 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4036     VULKAN_HPP_ASSERT( d.vkCreateDescriptorSetLayout && "Function <vkCreateDescriptorSetLayout> requires <VK_VERSION_1_0>" );
4037 #    endif
4038 
4039     VULKAN_HPP_NAMESPACE::DescriptorSetLayout setLayout;
4040     VULKAN_HPP_NAMESPACE::Result              result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDescriptorSetLayout(
4041       m_device,
4042       reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ),
4043       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
4044       reinterpret_cast<VkDescriptorSetLayout *>( &setLayout ) ) );
4045     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorSetLayoutUnique" );
4046 
4047     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
4048       result, UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorSetLayout, Dispatch>( setLayout, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
4049   }
4050 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
4051 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
4052 
4053   // wrapper function for command vkDestroyDescriptorSetLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDescriptorSetLayout.html
4054   template <typename Dispatch>
destroyDescriptorSetLayout(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const4055   VULKAN_HPP_INLINE void Device::destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout         descriptorSetLayout,
4056                                                              const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
4057                                                              Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
4058   {
4059     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4060     d.vkDestroyDescriptorSetLayout( static_cast<VkDevice>( m_device ),
4061                                     static_cast<VkDescriptorSetLayout>( descriptorSetLayout ),
4062                                     reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
4063   }
4064 
4065 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
4066   // wrapper function for command vkDestroyDescriptorSetLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDescriptorSetLayout.html
4067   template <typename Dispatch>
destroyDescriptorSetLayout(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const4068   VULKAN_HPP_INLINE void Device::destroyDescriptorSetLayout( VULKAN_HPP_NAMESPACE::DescriptorSetLayout                 descriptorSetLayout,
4069                                                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
4070                                                              Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
4071   {
4072     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4073 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4074     VULKAN_HPP_ASSERT( d.vkDestroyDescriptorSetLayout && "Function <vkDestroyDescriptorSetLayout> requires <VK_VERSION_1_0>" );
4075 #  endif
4076 
4077     d.vkDestroyDescriptorSetLayout(
4078       m_device,
4079       static_cast<VkDescriptorSetLayout>( descriptorSetLayout ),
4080       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
4081   }
4082 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
4083 
4084   // wrapper function for command vkDestroyDescriptorSetLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDescriptorSetLayout.html
4085   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const4086   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout         descriptorSetLayout,
4087                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
4088                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
4089   {
4090     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4091     d.vkDestroyDescriptorSetLayout( static_cast<VkDevice>( m_device ),
4092                                     static_cast<VkDescriptorSetLayout>( descriptorSetLayout ),
4093                                     reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
4094   }
4095 
4096 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
4097   // wrapper function for command vkDestroyDescriptorSetLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDescriptorSetLayout.html
4098   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorSetLayout descriptorSetLayout,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const4099   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorSetLayout                 descriptorSetLayout,
4100                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
4101                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
4102   {
4103     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4104 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4105     VULKAN_HPP_ASSERT( d.vkDestroyDescriptorSetLayout && "Function <vkDestroyDescriptorSetLayout> requires <VK_VERSION_1_0>" );
4106 #  endif
4107 
4108     d.vkDestroyDescriptorSetLayout(
4109       m_device,
4110       static_cast<VkDescriptorSetLayout>( descriptorSetLayout ),
4111       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
4112   }
4113 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
4114 
4115   // wrapper function for command vkCreateDescriptorPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDescriptorPool.html
4116   template <typename Dispatch>
createDescriptorPool(const VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorPool * pDescriptorPool,Dispatch const & d) const4117   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createDescriptorPool( const VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo * pCreateInfo,
4118                                                                               const VULKAN_HPP_NAMESPACE::AllocationCallbacks *      pAllocator,
4119                                                                               VULKAN_HPP_NAMESPACE::DescriptorPool *                 pDescriptorPool,
4120                                                                               Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
4121   {
4122     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4123     return static_cast<Result>( d.vkCreateDescriptorPool( static_cast<VkDevice>( m_device ),
4124                                                           reinterpret_cast<const VkDescriptorPoolCreateInfo *>( pCreateInfo ),
4125                                                           reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
4126                                                           reinterpret_cast<VkDescriptorPool *>( pDescriptorPool ) ) );
4127   }
4128 
4129 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
4130   // wrapper function for command vkCreateDescriptorPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDescriptorPool.html
4131   template <typename Dispatch>
4132   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DescriptorPool>::type
createDescriptorPool(const VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const4133                        Device::createDescriptorPool( const VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo &    createInfo,
4134                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
4135                                   Dispatch const &                                          d ) const
4136   {
4137     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4138 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4139     VULKAN_HPP_ASSERT( d.vkCreateDescriptorPool && "Function <vkCreateDescriptorPool> requires <VK_VERSION_1_0>" );
4140 #  endif
4141 
4142     VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool;
4143     VULKAN_HPP_NAMESPACE::Result         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
4144       d.vkCreateDescriptorPool( m_device,
4145                                 reinterpret_cast<const VkDescriptorPoolCreateInfo *>( &createInfo ),
4146                                 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
4147                                 reinterpret_cast<VkDescriptorPool *>( &descriptorPool ) ) );
4148     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorPool" );
4149 
4150     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( descriptorPool ) );
4151   }
4152 
4153 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
4154   // wrapper function for command vkCreateDescriptorPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDescriptorPool.html
4155   template <typename Dispatch>
4156   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorPool, Dispatch>>::type
createDescriptorPoolUnique(const VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const4157                        Device::createDescriptorPoolUnique( const VULKAN_HPP_NAMESPACE::DescriptorPoolCreateInfo &    createInfo,
4158                                         Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
4159                                         Dispatch const &                                          d ) const
4160   {
4161     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4162 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4163     VULKAN_HPP_ASSERT( d.vkCreateDescriptorPool && "Function <vkCreateDescriptorPool> requires <VK_VERSION_1_0>" );
4164 #    endif
4165 
4166     VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool;
4167     VULKAN_HPP_NAMESPACE::Result         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
4168       d.vkCreateDescriptorPool( m_device,
4169                                 reinterpret_cast<const VkDescriptorPoolCreateInfo *>( &createInfo ),
4170                                 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
4171                                 reinterpret_cast<VkDescriptorPool *>( &descriptorPool ) ) );
4172     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorPoolUnique" );
4173 
4174     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
4175       result, UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorPool, Dispatch>( descriptorPool, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
4176   }
4177 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
4178 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
4179 
4180   // wrapper function for command vkDestroyDescriptorPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDescriptorPool.html
4181   template <typename Dispatch>
destroyDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const4182   VULKAN_HPP_INLINE void Device::destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool              descriptorPool,
4183                                                         const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
4184                                                         Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
4185   {
4186     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4187     d.vkDestroyDescriptorPool(
4188       static_cast<VkDevice>( m_device ), static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
4189   }
4190 
4191 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
4192   // wrapper function for command vkDestroyDescriptorPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDescriptorPool.html
4193   template <typename Dispatch>
destroyDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const4194   VULKAN_HPP_INLINE void Device::destroyDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool                      descriptorPool,
4195                                                         Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
4196                                                         Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
4197   {
4198     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4199 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4200     VULKAN_HPP_ASSERT( d.vkDestroyDescriptorPool && "Function <vkDestroyDescriptorPool> requires <VK_VERSION_1_0>" );
4201 #  endif
4202 
4203     d.vkDestroyDescriptorPool( m_device,
4204                                static_cast<VkDescriptorPool>( descriptorPool ),
4205                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
4206   }
4207 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
4208 
4209   // wrapper function for command vkDestroyDescriptorPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDescriptorPool.html
4210   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const4211   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorPool              descriptorPool,
4212                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
4213                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
4214   {
4215     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4216     d.vkDestroyDescriptorPool(
4217       static_cast<VkDevice>( m_device ), static_cast<VkDescriptorPool>( descriptorPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
4218   }
4219 
4220 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
4221   // wrapper function for command vkDestroyDescriptorPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDescriptorPool.html
4222   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const4223   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorPool                      descriptorPool,
4224                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
4225                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
4226   {
4227     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4228 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4229     VULKAN_HPP_ASSERT( d.vkDestroyDescriptorPool && "Function <vkDestroyDescriptorPool> requires <VK_VERSION_1_0>" );
4230 #  endif
4231 
4232     d.vkDestroyDescriptorPool( m_device,
4233                                static_cast<VkDescriptorPool>( descriptorPool ),
4234                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
4235   }
4236 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
4237 
4238 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
4239   // wrapper function for command vkResetDescriptorPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetDescriptorPool.html
4240   template <typename Dispatch>
resetDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags,Dispatch const & d) const4241   VULKAN_HPP_INLINE Result Device::resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool           descriptorPool,
4242                                                         VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags,
4243                                                         Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
4244   {
4245     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4246     return static_cast<Result>( d.vkResetDescriptorPool(
4247       static_cast<VkDevice>( m_device ), static_cast<VkDescriptorPool>( descriptorPool ), static_cast<VkDescriptorPoolResetFlags>( flags ) ) );
4248   }
4249 #else
4250   // wrapper function for command vkResetDescriptorPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetDescriptorPool.html
4251   template <typename Dispatch>
resetDescriptorPool(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags,Dispatch const & d) const4252   VULKAN_HPP_INLINE void Device::resetDescriptorPool( VULKAN_HPP_NAMESPACE::DescriptorPool           descriptorPool,
4253                                                       VULKAN_HPP_NAMESPACE::DescriptorPoolResetFlags flags,
4254                                                       Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
4255   {
4256     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4257 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4258     VULKAN_HPP_ASSERT( d.vkResetDescriptorPool && "Function <vkResetDescriptorPool> requires <VK_VERSION_1_0>" );
4259 #  endif
4260 
4261     d.vkResetDescriptorPool( m_device, static_cast<VkDescriptorPool>( descriptorPool ), static_cast<VkDescriptorPoolResetFlags>( flags ) );
4262   }
4263 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
4264 
4265   // wrapper function for command vkAllocateDescriptorSets, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAllocateDescriptorSets.html
4266   template <typename Dispatch>
allocateDescriptorSets(const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo * pAllocateInfo,VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,Dispatch const & d) const4267   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::allocateDescriptorSets( const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo * pAllocateInfo,
4268                                                                                 VULKAN_HPP_NAMESPACE::DescriptorSet *                   pDescriptorSets,
4269                                                                                 Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
4270   {
4271     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4272     return static_cast<Result>( d.vkAllocateDescriptorSets( static_cast<VkDevice>( m_device ),
4273                                                             reinterpret_cast<const VkDescriptorSetAllocateInfo *>( pAllocateInfo ),
4274                                                             reinterpret_cast<VkDescriptorSet *>( pDescriptorSets ) ) );
4275   }
4276 
4277 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
4278   // wrapper function for command vkAllocateDescriptorSets, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAllocateDescriptorSets.html
4279   template <typename DescriptorSetAllocator,
4280             typename Dispatch,
4281             typename std::enable_if<std::is_same<typename DescriptorSetAllocator::value_type, VULKAN_HPP_NAMESPACE::DescriptorSet>::value, int>::type>
4282   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DescriptorSet, DescriptorSetAllocator>>::type
allocateDescriptorSets(const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo & allocateInfo,Dispatch const & d) const4283                        Device::allocateDescriptorSets( const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo & allocateInfo, Dispatch const & d ) const
4284   {
4285     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4286 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4287     VULKAN_HPP_ASSERT( d.vkAllocateDescriptorSets && "Function <vkAllocateDescriptorSets> requires <VK_VERSION_1_0>" );
4288 #  endif
4289 
4290     std::vector<VULKAN_HPP_NAMESPACE::DescriptorSet, DescriptorSetAllocator> descriptorSets( allocateInfo.descriptorSetCount );
4291     VULKAN_HPP_NAMESPACE::Result                                             result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAllocateDescriptorSets(
4292       m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkDescriptorSet *>( descriptorSets.data() ) ) );
4293     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSets" );
4294 
4295     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( descriptorSets ) );
4296   }
4297 
4298   // wrapper function for command vkAllocateDescriptorSets, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAllocateDescriptorSets.html
4299   template <typename DescriptorSetAllocator,
4300             typename Dispatch,
4301             typename std::enable_if<std::is_same<typename DescriptorSetAllocator::value_type, VULKAN_HPP_NAMESPACE::DescriptorSet>::value, int>::type>
4302   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DescriptorSet, DescriptorSetAllocator>>::type
allocateDescriptorSets(const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo & allocateInfo,DescriptorSetAllocator & descriptorSetAllocator,Dispatch const & d) const4303                        Device::allocateDescriptorSets( const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo & allocateInfo,
4304                                     DescriptorSetAllocator &                                descriptorSetAllocator,
4305                                     Dispatch const &                                        d ) const
4306   {
4307     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4308 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4309     VULKAN_HPP_ASSERT( d.vkAllocateDescriptorSets && "Function <vkAllocateDescriptorSets> requires <VK_VERSION_1_0>" );
4310 #  endif
4311 
4312     std::vector<VULKAN_HPP_NAMESPACE::DescriptorSet, DescriptorSetAllocator> descriptorSets( allocateInfo.descriptorSetCount, descriptorSetAllocator );
4313     VULKAN_HPP_NAMESPACE::Result                                             result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAllocateDescriptorSets(
4314       m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkDescriptorSet *>( descriptorSets.data() ) ) );
4315     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSets" );
4316 
4317     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( descriptorSets ) );
4318   }
4319 
4320 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
4321   // wrapper function for command vkAllocateDescriptorSets, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAllocateDescriptorSets.html
4322   template <
4323     typename Dispatch,
4324     typename DescriptorSetAllocator,
4325     typename std::enable_if<std::is_same<typename DescriptorSetAllocator::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorSet, Dispatch>>::value,
4326                             int>::type>
4327   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
4328     typename ResultValueType<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorSet, Dispatch>, DescriptorSetAllocator>>::type
allocateDescriptorSetsUnique(const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo & allocateInfo,Dispatch const & d) const4329     Device::allocateDescriptorSetsUnique( const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo & allocateInfo, Dispatch const & d ) const
4330   {
4331     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4332 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4333     VULKAN_HPP_ASSERT( d.vkAllocateDescriptorSets && "Function <vkAllocateDescriptorSets> requires <VK_VERSION_1_0>" );
4334 #    endif
4335 
4336     std::vector<VULKAN_HPP_NAMESPACE::DescriptorSet> descriptorSets( allocateInfo.descriptorSetCount );
4337     VULKAN_HPP_NAMESPACE::Result                     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAllocateDescriptorSets(
4338       m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkDescriptorSet *>( descriptorSets.data() ) ) );
4339     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" );
4340     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorSet, Dispatch>, DescriptorSetAllocator> uniqueDescriptorSets;
4341     uniqueDescriptorSets.reserve( allocateInfo.descriptorSetCount );
4342     detail::PoolFree<Device, DescriptorPool, Dispatch> deleter( *this, allocateInfo.descriptorPool, d );
4343     for ( auto const & descriptorSet : descriptorSets )
4344     {
4345       uniqueDescriptorSets.push_back( UniqueHandle<DescriptorSet, Dispatch>( descriptorSet, deleter ) );
4346     }
4347     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( uniqueDescriptorSets ) );
4348   }
4349 
4350   // wrapper function for command vkAllocateDescriptorSets, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAllocateDescriptorSets.html
4351   template <
4352     typename Dispatch,
4353     typename DescriptorSetAllocator,
4354     typename std::enable_if<std::is_same<typename DescriptorSetAllocator::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorSet, Dispatch>>::value,
4355                             int>::type>
4356   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
4357     typename ResultValueType<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorSet, Dispatch>, DescriptorSetAllocator>>::type
allocateDescriptorSetsUnique(const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo & allocateInfo,DescriptorSetAllocator & descriptorSetAllocator,Dispatch const & d) const4358     Device::allocateDescriptorSetsUnique( const VULKAN_HPP_NAMESPACE::DescriptorSetAllocateInfo & allocateInfo,
4359                                           DescriptorSetAllocator &                                descriptorSetAllocator,
4360                                           Dispatch const &                                        d ) const
4361   {
4362     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4363 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4364     VULKAN_HPP_ASSERT( d.vkAllocateDescriptorSets && "Function <vkAllocateDescriptorSets> requires <VK_VERSION_1_0>" );
4365 #    endif
4366 
4367     std::vector<VULKAN_HPP_NAMESPACE::DescriptorSet> descriptorSets( allocateInfo.descriptorSetCount );
4368     VULKAN_HPP_NAMESPACE::Result                     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAllocateDescriptorSets(
4369       m_device, reinterpret_cast<const VkDescriptorSetAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkDescriptorSet *>( descriptorSets.data() ) ) );
4370     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateDescriptorSetsUnique" );
4371     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorSet, Dispatch>, DescriptorSetAllocator> uniqueDescriptorSets( descriptorSetAllocator );
4372     uniqueDescriptorSets.reserve( allocateInfo.descriptorSetCount );
4373     detail::PoolFree<Device, DescriptorPool, Dispatch> deleter( *this, allocateInfo.descriptorPool, d );
4374     for ( auto const & descriptorSet : descriptorSets )
4375     {
4376       uniqueDescriptorSets.push_back( UniqueHandle<DescriptorSet, Dispatch>( descriptorSet, deleter ) );
4377     }
4378     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( uniqueDescriptorSets ) );
4379   }
4380 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
4381 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
4382 
4383   // wrapper function for command vkFreeDescriptorSets, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkFreeDescriptorSets.html
4384   template <typename Dispatch>
freeDescriptorSets(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,uint32_t descriptorSetCount,const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,Dispatch const & d) const4385   VULKAN_HPP_INLINE Result Device::freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool        descriptorPool,
4386                                                        uint32_t                                    descriptorSetCount,
4387                                                        const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,
4388                                                        Dispatch const &                            d ) const VULKAN_HPP_NOEXCEPT
4389   {
4390     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4391     return static_cast<Result>( d.vkFreeDescriptorSets( static_cast<VkDevice>( m_device ),
4392                                                         static_cast<VkDescriptorPool>( descriptorPool ),
4393                                                         descriptorSetCount,
4394                                                         reinterpret_cast<const VkDescriptorSet *>( pDescriptorSets ) ) );
4395   }
4396 
4397 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
4398   // wrapper function for command vkFreeDescriptorSets, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkFreeDescriptorSets.html
4399   template <typename Dispatch>
freeDescriptorSets(VULKAN_HPP_NAMESPACE::DescriptorPool descriptorPool,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets,Dispatch const & d) const4400   VULKAN_HPP_INLINE void Device::freeDescriptorSets( VULKAN_HPP_NAMESPACE::DescriptorPool                                                descriptorPool,
4401                                                      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets,
4402                                                      Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
4403   {
4404     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4405 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4406     VULKAN_HPP_ASSERT( d.vkFreeDescriptorSets && "Function <vkFreeDescriptorSets> requires <VK_VERSION_1_0>" );
4407 #  endif
4408 
4409     d.vkFreeDescriptorSets(
4410       m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSets.size(), reinterpret_cast<const VkDescriptorSet *>( descriptorSets.data() ) );
4411   }
4412 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
4413 
4414   // wrapper function for command vkFreeDescriptorSets, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkFreeDescriptorSets.html
4415   template <typename Dispatch>
Result(Device::free)4416   VULKAN_HPP_INLINE Result( Device::free )( VULKAN_HPP_NAMESPACE::DescriptorPool        descriptorPool,
4417                                             uint32_t                                    descriptorSetCount,
4418                                             const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,
4419                                             Dispatch const &                            d ) const VULKAN_HPP_NOEXCEPT
4420   {
4421     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4422     return static_cast<Result>( d.vkFreeDescriptorSets( static_cast<VkDevice>( m_device ),
4423                                                         static_cast<VkDescriptorPool>( descriptorPool ),
4424                                                         descriptorSetCount,
4425                                                         reinterpret_cast<const VkDescriptorSet *>( pDescriptorSets ) ) );
4426   }
4427 
4428 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
4429   // wrapper function for command vkFreeDescriptorSets, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkFreeDescriptorSets.html
4430   template <typename Dispatch>
4431   VULKAN_HPP_INLINE void( Device::free )( VULKAN_HPP_NAMESPACE::DescriptorPool                                                descriptorPool,
4432                                           VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets,
4433                                           Dispatch const &                                                                    d ) const VULKAN_HPP_NOEXCEPT
4434   {
4435     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4436 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4437     VULKAN_HPP_ASSERT( d.vkFreeDescriptorSets && "Function <vkFreeDescriptorSets> requires <VK_VERSION_1_0>" );
4438 #  endif
4439 
4440     d.vkFreeDescriptorSets(
4441       m_device, static_cast<VkDescriptorPool>( descriptorPool ), descriptorSets.size(), reinterpret_cast<const VkDescriptorSet *>( descriptorSets.data() ) );
4442   }
4443 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
4444 
4445   // wrapper function for command vkUpdateDescriptorSets, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkUpdateDescriptorSets.html
4446   template <typename Dispatch>
updateDescriptorSets(uint32_t descriptorWriteCount,const VULKAN_HPP_NAMESPACE::WriteDescriptorSet * pDescriptorWrites,uint32_t descriptorCopyCount,const VULKAN_HPP_NAMESPACE::CopyDescriptorSet * pDescriptorCopies,Dispatch const & d) const4447   VULKAN_HPP_INLINE void Device::updateDescriptorSets( uint32_t                                         descriptorWriteCount,
4448                                                        const VULKAN_HPP_NAMESPACE::WriteDescriptorSet * pDescriptorWrites,
4449                                                        uint32_t                                         descriptorCopyCount,
4450                                                        const VULKAN_HPP_NAMESPACE::CopyDescriptorSet *  pDescriptorCopies,
4451                                                        Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
4452   {
4453     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4454     d.vkUpdateDescriptorSets( static_cast<VkDevice>( m_device ),
4455                               descriptorWriteCount,
4456                               reinterpret_cast<const VkWriteDescriptorSet *>( pDescriptorWrites ),
4457                               descriptorCopyCount,
4458                               reinterpret_cast<const VkCopyDescriptorSet *>( pDescriptorCopies ) );
4459   }
4460 
4461 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
4462   // wrapper function for command vkUpdateDescriptorSets, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkUpdateDescriptorSets.html
4463   template <typename Dispatch>
4464   VULKAN_HPP_INLINE void
updateDescriptorSets(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CopyDescriptorSet> const & descriptorCopies,Dispatch const & d) const4465     Device::updateDescriptorSets( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites,
4466                                   VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CopyDescriptorSet> const &  descriptorCopies,
4467                                   Dispatch const &                                                                         d ) const VULKAN_HPP_NOEXCEPT
4468   {
4469     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4470 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4471     VULKAN_HPP_ASSERT( d.vkUpdateDescriptorSets && "Function <vkUpdateDescriptorSets> requires <VK_VERSION_1_0>" );
4472 #  endif
4473 
4474     d.vkUpdateDescriptorSets( m_device,
4475                               descriptorWrites.size(),
4476                               reinterpret_cast<const VkWriteDescriptorSet *>( descriptorWrites.data() ),
4477                               descriptorCopies.size(),
4478                               reinterpret_cast<const VkCopyDescriptorSet *>( descriptorCopies.data() ) );
4479   }
4480 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
4481 
4482   // wrapper function for command vkCreateFramebuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateFramebuffer.html
4483   template <typename Dispatch>
createFramebuffer(const VULKAN_HPP_NAMESPACE::FramebufferCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Framebuffer * pFramebuffer,Dispatch const & d) const4484   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createFramebuffer( const VULKAN_HPP_NAMESPACE::FramebufferCreateInfo * pCreateInfo,
4485                                                                            const VULKAN_HPP_NAMESPACE::AllocationCallbacks *   pAllocator,
4486                                                                            VULKAN_HPP_NAMESPACE::Framebuffer *                 pFramebuffer,
4487                                                                            Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
4488   {
4489     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4490     return static_cast<Result>( d.vkCreateFramebuffer( static_cast<VkDevice>( m_device ),
4491                                                        reinterpret_cast<const VkFramebufferCreateInfo *>( pCreateInfo ),
4492                                                        reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
4493                                                        reinterpret_cast<VkFramebuffer *>( pFramebuffer ) ) );
4494   }
4495 
4496 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
4497   // wrapper function for command vkCreateFramebuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateFramebuffer.html
4498   template <typename Dispatch>
4499   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Framebuffer>::type
createFramebuffer(const VULKAN_HPP_NAMESPACE::FramebufferCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const4500                        Device::createFramebuffer( const VULKAN_HPP_NAMESPACE::FramebufferCreateInfo &       createInfo,
4501                                Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
4502                                Dispatch const &                                          d ) const
4503   {
4504     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4505 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4506     VULKAN_HPP_ASSERT( d.vkCreateFramebuffer && "Function <vkCreateFramebuffer> requires <VK_VERSION_1_0>" );
4507 #  endif
4508 
4509     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer;
4510     VULKAN_HPP_NAMESPACE::Result      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
4511       d.vkCreateFramebuffer( m_device,
4512                              reinterpret_cast<const VkFramebufferCreateInfo *>( &createInfo ),
4513                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
4514                              reinterpret_cast<VkFramebuffer *>( &framebuffer ) ) );
4515     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createFramebuffer" );
4516 
4517     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( framebuffer ) );
4518   }
4519 
4520 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
4521   // wrapper function for command vkCreateFramebuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateFramebuffer.html
4522   template <typename Dispatch>
4523   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Framebuffer, Dispatch>>::type
createFramebufferUnique(const VULKAN_HPP_NAMESPACE::FramebufferCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const4524                        Device::createFramebufferUnique( const VULKAN_HPP_NAMESPACE::FramebufferCreateInfo &       createInfo,
4525                                      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
4526                                      Dispatch const &                                          d ) const
4527   {
4528     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4529 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4530     VULKAN_HPP_ASSERT( d.vkCreateFramebuffer && "Function <vkCreateFramebuffer> requires <VK_VERSION_1_0>" );
4531 #    endif
4532 
4533     VULKAN_HPP_NAMESPACE::Framebuffer framebuffer;
4534     VULKAN_HPP_NAMESPACE::Result      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
4535       d.vkCreateFramebuffer( m_device,
4536                              reinterpret_cast<const VkFramebufferCreateInfo *>( &createInfo ),
4537                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
4538                              reinterpret_cast<VkFramebuffer *>( &framebuffer ) ) );
4539     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createFramebufferUnique" );
4540 
4541     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
4542       result, UniqueHandle<VULKAN_HPP_NAMESPACE::Framebuffer, Dispatch>( framebuffer, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
4543   }
4544 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
4545 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
4546 
4547   // wrapper function for command vkDestroyFramebuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyFramebuffer.html
4548   template <typename Dispatch>
destroyFramebuffer(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const4549   VULKAN_HPP_INLINE void Device::destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer                 framebuffer,
4550                                                      const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
4551                                                      Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
4552   {
4553     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4554     d.vkDestroyFramebuffer(
4555       static_cast<VkDevice>( m_device ), static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
4556   }
4557 
4558 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
4559   // wrapper function for command vkDestroyFramebuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyFramebuffer.html
4560   template <typename Dispatch>
destroyFramebuffer(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const4561   VULKAN_HPP_INLINE void Device::destroyFramebuffer( VULKAN_HPP_NAMESPACE::Framebuffer                         framebuffer,
4562                                                      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
4563                                                      Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
4564   {
4565     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4566 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4567     VULKAN_HPP_ASSERT( d.vkDestroyFramebuffer && "Function <vkDestroyFramebuffer> requires <VK_VERSION_1_0>" );
4568 #  endif
4569 
4570     d.vkDestroyFramebuffer( m_device,
4571                             static_cast<VkFramebuffer>( framebuffer ),
4572                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
4573   }
4574 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
4575 
4576   // wrapper function for command vkDestroyFramebuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyFramebuffer.html
4577   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const4578   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Framebuffer                 framebuffer,
4579                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
4580                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
4581   {
4582     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4583     d.vkDestroyFramebuffer(
4584       static_cast<VkDevice>( m_device ), static_cast<VkFramebuffer>( framebuffer ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
4585   }
4586 
4587 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
4588   // wrapper function for command vkDestroyFramebuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyFramebuffer.html
4589   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const4590   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::Framebuffer                         framebuffer,
4591                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
4592                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
4593   {
4594     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4595 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4596     VULKAN_HPP_ASSERT( d.vkDestroyFramebuffer && "Function <vkDestroyFramebuffer> requires <VK_VERSION_1_0>" );
4597 #  endif
4598 
4599     d.vkDestroyFramebuffer( m_device,
4600                             static_cast<VkFramebuffer>( framebuffer ),
4601                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
4602   }
4603 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
4604 
4605   // wrapper function for command vkCreateRenderPass, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRenderPass.html
4606   template <typename Dispatch>
createRenderPass(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass,Dispatch const & d) const4607   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo * pCreateInfo,
4608                                                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks *  pAllocator,
4609                                                                           VULKAN_HPP_NAMESPACE::RenderPass *                 pRenderPass,
4610                                                                           Dispatch const &                                   d ) const VULKAN_HPP_NOEXCEPT
4611   {
4612     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4613     return static_cast<Result>( d.vkCreateRenderPass( static_cast<VkDevice>( m_device ),
4614                                                       reinterpret_cast<const VkRenderPassCreateInfo *>( pCreateInfo ),
4615                                                       reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
4616                                                       reinterpret_cast<VkRenderPass *>( pRenderPass ) ) );
4617   }
4618 
4619 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
4620   // wrapper function for command vkCreateRenderPass, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRenderPass.html
4621   template <typename Dispatch>
4622   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::RenderPass>::type
createRenderPass(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const4623                        Device::createRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo &        createInfo,
4624                               Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
4625                               Dispatch const &                                          d ) const
4626   {
4627     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4628 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4629     VULKAN_HPP_ASSERT( d.vkCreateRenderPass && "Function <vkCreateRenderPass> requires <VK_VERSION_1_0>" );
4630 #  endif
4631 
4632     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
4633     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
4634       d.vkCreateRenderPass( m_device,
4635                             reinterpret_cast<const VkRenderPassCreateInfo *>( &createInfo ),
4636                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
4637                             reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
4638     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass" );
4639 
4640     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( renderPass ) );
4641   }
4642 
4643 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
4644   // wrapper function for command vkCreateRenderPass, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRenderPass.html
4645   template <typename Dispatch>
4646   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>>::type
createRenderPassUnique(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const4647                        Device::createRenderPassUnique( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo &        createInfo,
4648                                     Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
4649                                     Dispatch const &                                          d ) const
4650   {
4651     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4652 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4653     VULKAN_HPP_ASSERT( d.vkCreateRenderPass && "Function <vkCreateRenderPass> requires <VK_VERSION_1_0>" );
4654 #    endif
4655 
4656     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
4657     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
4658       d.vkCreateRenderPass( m_device,
4659                             reinterpret_cast<const VkRenderPassCreateInfo *>( &createInfo ),
4660                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
4661                             reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
4662     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPassUnique" );
4663 
4664     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
4665       result, UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>( renderPass, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
4666   }
4667 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
4668 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
4669 
4670   // wrapper function for command vkDestroyRenderPass, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyRenderPass.html
4671   template <typename Dispatch>
destroyRenderPass(VULKAN_HPP_NAMESPACE::RenderPass renderPass,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const4672   VULKAN_HPP_INLINE void Device::destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass                  renderPass,
4673                                                     const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
4674                                                     Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
4675   {
4676     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4677     d.vkDestroyRenderPass(
4678       static_cast<VkDevice>( m_device ), static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
4679   }
4680 
4681 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
4682   // wrapper function for command vkDestroyRenderPass, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyRenderPass.html
4683   template <typename Dispatch>
destroyRenderPass(VULKAN_HPP_NAMESPACE::RenderPass renderPass,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const4684   VULKAN_HPP_INLINE void Device::destroyRenderPass( VULKAN_HPP_NAMESPACE::RenderPass                          renderPass,
4685                                                     Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
4686                                                     Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
4687   {
4688     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4689 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4690     VULKAN_HPP_ASSERT( d.vkDestroyRenderPass && "Function <vkDestroyRenderPass> requires <VK_VERSION_1_0>" );
4691 #  endif
4692 
4693     d.vkDestroyRenderPass( m_device,
4694                            static_cast<VkRenderPass>( renderPass ),
4695                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
4696   }
4697 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
4698 
4699   // wrapper function for command vkDestroyRenderPass, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyRenderPass.html
4700   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::RenderPass renderPass,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const4701   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::RenderPass                  renderPass,
4702                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
4703                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
4704   {
4705     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4706     d.vkDestroyRenderPass(
4707       static_cast<VkDevice>( m_device ), static_cast<VkRenderPass>( renderPass ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
4708   }
4709 
4710 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
4711   // wrapper function for command vkDestroyRenderPass, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyRenderPass.html
4712   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::RenderPass renderPass,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const4713   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::RenderPass                          renderPass,
4714                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
4715                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
4716   {
4717     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4718 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4719     VULKAN_HPP_ASSERT( d.vkDestroyRenderPass && "Function <vkDestroyRenderPass> requires <VK_VERSION_1_0>" );
4720 #  endif
4721 
4722     d.vkDestroyRenderPass( m_device,
4723                            static_cast<VkRenderPass>( renderPass ),
4724                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
4725   }
4726 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
4727 
4728   // wrapper function for command vkGetRenderAreaGranularity, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRenderAreaGranularity.html
4729   template <typename Dispatch>
getRenderAreaGranularity(VULKAN_HPP_NAMESPACE::RenderPass renderPass,VULKAN_HPP_NAMESPACE::Extent2D * pGranularity,Dispatch const & d) const4730   VULKAN_HPP_INLINE void Device::getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass,
4731                                                            VULKAN_HPP_NAMESPACE::Extent2D * pGranularity,
4732                                                            Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
4733   {
4734     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4735     d.vkGetRenderAreaGranularity( static_cast<VkDevice>( m_device ), static_cast<VkRenderPass>( renderPass ), reinterpret_cast<VkExtent2D *>( pGranularity ) );
4736   }
4737 
4738 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
4739   // wrapper function for command vkGetRenderAreaGranularity, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRenderAreaGranularity.html
4740   template <typename Dispatch>
getRenderAreaGranularity(VULKAN_HPP_NAMESPACE::RenderPass renderPass,Dispatch const & d) const4741   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Extent2D Device::getRenderAreaGranularity( VULKAN_HPP_NAMESPACE::RenderPass renderPass,
4742                                                                                                           Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
4743   {
4744     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4745 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4746     VULKAN_HPP_ASSERT( d.vkGetRenderAreaGranularity && "Function <vkGetRenderAreaGranularity> requires <VK_VERSION_1_0>" );
4747 #  endif
4748 
4749     VULKAN_HPP_NAMESPACE::Extent2D granularity;
4750     d.vkGetRenderAreaGranularity( m_device, static_cast<VkRenderPass>( renderPass ), reinterpret_cast<VkExtent2D *>( &granularity ) );
4751 
4752     return granularity;
4753   }
4754 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
4755 
4756   // wrapper function for command vkCreateCommandPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCommandPool.html
4757   template <typename Dispatch>
createCommandPool(const VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::CommandPool * pCommandPool,Dispatch const & d) const4758   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createCommandPool( const VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo * pCreateInfo,
4759                                                                            const VULKAN_HPP_NAMESPACE::AllocationCallbacks *   pAllocator,
4760                                                                            VULKAN_HPP_NAMESPACE::CommandPool *                 pCommandPool,
4761                                                                            Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
4762   {
4763     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4764     return static_cast<Result>( d.vkCreateCommandPool( static_cast<VkDevice>( m_device ),
4765                                                        reinterpret_cast<const VkCommandPoolCreateInfo *>( pCreateInfo ),
4766                                                        reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
4767                                                        reinterpret_cast<VkCommandPool *>( pCommandPool ) ) );
4768   }
4769 
4770 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
4771   // wrapper function for command vkCreateCommandPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCommandPool.html
4772   template <typename Dispatch>
4773   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::CommandPool>::type
createCommandPool(const VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const4774                        Device::createCommandPool( const VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo &       createInfo,
4775                                Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
4776                                Dispatch const &                                          d ) const
4777   {
4778     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4779 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4780     VULKAN_HPP_ASSERT( d.vkCreateCommandPool && "Function <vkCreateCommandPool> requires <VK_VERSION_1_0>" );
4781 #  endif
4782 
4783     VULKAN_HPP_NAMESPACE::CommandPool commandPool;
4784     VULKAN_HPP_NAMESPACE::Result      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
4785       d.vkCreateCommandPool( m_device,
4786                              reinterpret_cast<const VkCommandPoolCreateInfo *>( &createInfo ),
4787                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
4788                              reinterpret_cast<VkCommandPool *>( &commandPool ) ) );
4789     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createCommandPool" );
4790 
4791     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( commandPool ) );
4792   }
4793 
4794 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
4795   // wrapper function for command vkCreateCommandPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCommandPool.html
4796   template <typename Dispatch>
4797   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::CommandPool, Dispatch>>::type
createCommandPoolUnique(const VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const4798                        Device::createCommandPoolUnique( const VULKAN_HPP_NAMESPACE::CommandPoolCreateInfo &       createInfo,
4799                                      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
4800                                      Dispatch const &                                          d ) const
4801   {
4802     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4803 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4804     VULKAN_HPP_ASSERT( d.vkCreateCommandPool && "Function <vkCreateCommandPool> requires <VK_VERSION_1_0>" );
4805 #    endif
4806 
4807     VULKAN_HPP_NAMESPACE::CommandPool commandPool;
4808     VULKAN_HPP_NAMESPACE::Result      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
4809       d.vkCreateCommandPool( m_device,
4810                              reinterpret_cast<const VkCommandPoolCreateInfo *>( &createInfo ),
4811                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
4812                              reinterpret_cast<VkCommandPool *>( &commandPool ) ) );
4813     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createCommandPoolUnique" );
4814 
4815     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
4816       result, UniqueHandle<VULKAN_HPP_NAMESPACE::CommandPool, Dispatch>( commandPool, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
4817   }
4818 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
4819 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
4820 
4821   // wrapper function for command vkDestroyCommandPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCommandPool.html
4822   template <typename Dispatch>
destroyCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const4823   VULKAN_HPP_INLINE void Device::destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool                 commandPool,
4824                                                      const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
4825                                                      Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
4826   {
4827     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4828     d.vkDestroyCommandPool(
4829       static_cast<VkDevice>( m_device ), static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
4830   }
4831 
4832 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
4833   // wrapper function for command vkDestroyCommandPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCommandPool.html
4834   template <typename Dispatch>
destroyCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const4835   VULKAN_HPP_INLINE void Device::destroyCommandPool( VULKAN_HPP_NAMESPACE::CommandPool                         commandPool,
4836                                                      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
4837                                                      Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
4838   {
4839     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4840 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4841     VULKAN_HPP_ASSERT( d.vkDestroyCommandPool && "Function <vkDestroyCommandPool> requires <VK_VERSION_1_0>" );
4842 #  endif
4843 
4844     d.vkDestroyCommandPool( m_device,
4845                             static_cast<VkCommandPool>( commandPool ),
4846                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
4847   }
4848 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
4849 
4850   // wrapper function for command vkDestroyCommandPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCommandPool.html
4851   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::CommandPool commandPool,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const4852   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CommandPool                 commandPool,
4853                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
4854                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
4855   {
4856     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4857     d.vkDestroyCommandPool(
4858       static_cast<VkDevice>( m_device ), static_cast<VkCommandPool>( commandPool ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
4859   }
4860 
4861 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
4862   // wrapper function for command vkDestroyCommandPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCommandPool.html
4863   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::CommandPool commandPool,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const4864   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CommandPool                         commandPool,
4865                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
4866                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
4867   {
4868     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4869 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4870     VULKAN_HPP_ASSERT( d.vkDestroyCommandPool && "Function <vkDestroyCommandPool> requires <VK_VERSION_1_0>" );
4871 #  endif
4872 
4873     d.vkDestroyCommandPool( m_device,
4874                             static_cast<VkCommandPool>( commandPool ),
4875                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
4876   }
4877 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
4878 
4879 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
4880   // wrapper function for command vkResetCommandPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetCommandPool.html
4881   template <typename Dispatch>
resetCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags,Dispatch const & d) const4882   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool           commandPool,
4883                                                                           VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags,
4884                                                                           Dispatch const &                            d ) const VULKAN_HPP_NOEXCEPT
4885   {
4886     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4887     return static_cast<Result>(
4888       d.vkResetCommandPool( static_cast<VkDevice>( m_device ), static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolResetFlags>( flags ) ) );
4889   }
4890 #else
4891   // wrapper function for command vkResetCommandPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetCommandPool.html
4892   template <typename Dispatch>
4893   VULKAN_HPP_INLINE typename ResultValueType<void>::type
resetCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags,Dispatch const & d) const4894     Device::resetCommandPool( VULKAN_HPP_NAMESPACE::CommandPool commandPool, VULKAN_HPP_NAMESPACE::CommandPoolResetFlags flags, Dispatch const & d ) const
4895   {
4896     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4897 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4898     VULKAN_HPP_ASSERT( d.vkResetCommandPool && "Function <vkResetCommandPool> requires <VK_VERSION_1_0>" );
4899 #  endif
4900 
4901     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
4902       d.vkResetCommandPool( m_device, static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolResetFlags>( flags ) ) );
4903     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::resetCommandPool" );
4904 
4905     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
4906   }
4907 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
4908 
4909   // wrapper function for command vkAllocateCommandBuffers, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAllocateCommandBuffers.html
4910   template <typename Dispatch>
allocateCommandBuffers(const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo * pAllocateInfo,VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,Dispatch const & d) const4911   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::allocateCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo * pAllocateInfo,
4912                                                                                 VULKAN_HPP_NAMESPACE::CommandBuffer *                   pCommandBuffers,
4913                                                                                 Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
4914   {
4915     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4916     return static_cast<Result>( d.vkAllocateCommandBuffers( static_cast<VkDevice>( m_device ),
4917                                                             reinterpret_cast<const VkCommandBufferAllocateInfo *>( pAllocateInfo ),
4918                                                             reinterpret_cast<VkCommandBuffer *>( pCommandBuffers ) ) );
4919   }
4920 
4921 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
4922   // wrapper function for command vkAllocateCommandBuffers, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAllocateCommandBuffers.html
4923   template <typename CommandBufferAllocator,
4924             typename Dispatch,
4925             typename std::enable_if<std::is_same<typename CommandBufferAllocator::value_type, VULKAN_HPP_NAMESPACE::CommandBuffer>::value, int>::type>
4926   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::CommandBuffer, CommandBufferAllocator>>::type
allocateCommandBuffers(const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo & allocateInfo,Dispatch const & d) const4927                        Device::allocateCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo & allocateInfo, Dispatch const & d ) const
4928   {
4929     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4930 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4931     VULKAN_HPP_ASSERT( d.vkAllocateCommandBuffers && "Function <vkAllocateCommandBuffers> requires <VK_VERSION_1_0>" );
4932 #  endif
4933 
4934     std::vector<VULKAN_HPP_NAMESPACE::CommandBuffer, CommandBufferAllocator> commandBuffers( allocateInfo.commandBufferCount );
4935     VULKAN_HPP_NAMESPACE::Result                                             result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAllocateCommandBuffers(
4936       m_device, reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkCommandBuffer *>( commandBuffers.data() ) ) );
4937     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffers" );
4938 
4939     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( commandBuffers ) );
4940   }
4941 
4942   // wrapper function for command vkAllocateCommandBuffers, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAllocateCommandBuffers.html
4943   template <typename CommandBufferAllocator,
4944             typename Dispatch,
4945             typename std::enable_if<std::is_same<typename CommandBufferAllocator::value_type, VULKAN_HPP_NAMESPACE::CommandBuffer>::value, int>::type>
4946   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::CommandBuffer, CommandBufferAllocator>>::type
allocateCommandBuffers(const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo & allocateInfo,CommandBufferAllocator & commandBufferAllocator,Dispatch const & d) const4947                        Device::allocateCommandBuffers( const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo & allocateInfo,
4948                                     CommandBufferAllocator &                                commandBufferAllocator,
4949                                     Dispatch const &                                        d ) const
4950   {
4951     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4952 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4953     VULKAN_HPP_ASSERT( d.vkAllocateCommandBuffers && "Function <vkAllocateCommandBuffers> requires <VK_VERSION_1_0>" );
4954 #  endif
4955 
4956     std::vector<VULKAN_HPP_NAMESPACE::CommandBuffer, CommandBufferAllocator> commandBuffers( allocateInfo.commandBufferCount, commandBufferAllocator );
4957     VULKAN_HPP_NAMESPACE::Result                                             result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAllocateCommandBuffers(
4958       m_device, reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkCommandBuffer *>( commandBuffers.data() ) ) );
4959     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffers" );
4960 
4961     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( commandBuffers ) );
4962   }
4963 
4964 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
4965   // wrapper function for command vkAllocateCommandBuffers, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAllocateCommandBuffers.html
4966   template <
4967     typename Dispatch,
4968     typename CommandBufferAllocator,
4969     typename std::enable_if<std::is_same<typename CommandBufferAllocator::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::CommandBuffer, Dispatch>>::value,
4970                             int>::type>
4971   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
4972     typename ResultValueType<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::CommandBuffer, Dispatch>, CommandBufferAllocator>>::type
allocateCommandBuffersUnique(const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo & allocateInfo,Dispatch const & d) const4973     Device::allocateCommandBuffersUnique( const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo & allocateInfo, Dispatch const & d ) const
4974   {
4975     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
4976 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
4977     VULKAN_HPP_ASSERT( d.vkAllocateCommandBuffers && "Function <vkAllocateCommandBuffers> requires <VK_VERSION_1_0>" );
4978 #    endif
4979 
4980     std::vector<VULKAN_HPP_NAMESPACE::CommandBuffer> commandBuffers( allocateInfo.commandBufferCount );
4981     VULKAN_HPP_NAMESPACE::Result                     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAllocateCommandBuffers(
4982       m_device, reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkCommandBuffer *>( commandBuffers.data() ) ) );
4983     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" );
4984     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::CommandBuffer, Dispatch>, CommandBufferAllocator> uniqueCommandBuffers;
4985     uniqueCommandBuffers.reserve( allocateInfo.commandBufferCount );
4986     detail::PoolFree<Device, CommandPool, Dispatch> deleter( *this, allocateInfo.commandPool, d );
4987     for ( auto const & commandBuffer : commandBuffers )
4988     {
4989       uniqueCommandBuffers.push_back( UniqueHandle<CommandBuffer, Dispatch>( commandBuffer, deleter ) );
4990     }
4991     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( uniqueCommandBuffers ) );
4992   }
4993 
4994   // wrapper function for command vkAllocateCommandBuffers, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAllocateCommandBuffers.html
4995   template <
4996     typename Dispatch,
4997     typename CommandBufferAllocator,
4998     typename std::enable_if<std::is_same<typename CommandBufferAllocator::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::CommandBuffer, Dispatch>>::value,
4999                             int>::type>
5000   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
5001     typename ResultValueType<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::CommandBuffer, Dispatch>, CommandBufferAllocator>>::type
allocateCommandBuffersUnique(const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo & allocateInfo,CommandBufferAllocator & commandBufferAllocator,Dispatch const & d) const5002     Device::allocateCommandBuffersUnique( const VULKAN_HPP_NAMESPACE::CommandBufferAllocateInfo & allocateInfo,
5003                                           CommandBufferAllocator &                                commandBufferAllocator,
5004                                           Dispatch const &                                        d ) const
5005   {
5006     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5007 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
5008     VULKAN_HPP_ASSERT( d.vkAllocateCommandBuffers && "Function <vkAllocateCommandBuffers> requires <VK_VERSION_1_0>" );
5009 #    endif
5010 
5011     std::vector<VULKAN_HPP_NAMESPACE::CommandBuffer> commandBuffers( allocateInfo.commandBufferCount );
5012     VULKAN_HPP_NAMESPACE::Result                     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAllocateCommandBuffers(
5013       m_device, reinterpret_cast<const VkCommandBufferAllocateInfo *>( &allocateInfo ), reinterpret_cast<VkCommandBuffer *>( commandBuffers.data() ) ) );
5014     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::allocateCommandBuffersUnique" );
5015     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::CommandBuffer, Dispatch>, CommandBufferAllocator> uniqueCommandBuffers( commandBufferAllocator );
5016     uniqueCommandBuffers.reserve( allocateInfo.commandBufferCount );
5017     detail::PoolFree<Device, CommandPool, Dispatch> deleter( *this, allocateInfo.commandPool, d );
5018     for ( auto const & commandBuffer : commandBuffers )
5019     {
5020       uniqueCommandBuffers.push_back( UniqueHandle<CommandBuffer, Dispatch>( commandBuffer, deleter ) );
5021     }
5022     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( uniqueCommandBuffers ) );
5023   }
5024 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
5025 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
5026 
5027   // wrapper function for command vkFreeCommandBuffers, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkFreeCommandBuffers.html
5028   template <typename Dispatch>
freeCommandBuffers(VULKAN_HPP_NAMESPACE::CommandPool commandPool,uint32_t commandBufferCount,const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,Dispatch const & d) const5029   VULKAN_HPP_INLINE void Device::freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool           commandPool,
5030                                                      uint32_t                                    commandBufferCount,
5031                                                      const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,
5032                                                      Dispatch const &                            d ) const VULKAN_HPP_NOEXCEPT
5033   {
5034     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5035     d.vkFreeCommandBuffers( static_cast<VkDevice>( m_device ),
5036                             static_cast<VkCommandPool>( commandPool ),
5037                             commandBufferCount,
5038                             reinterpret_cast<const VkCommandBuffer *>( pCommandBuffers ) );
5039   }
5040 
5041 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
5042   // wrapper function for command vkFreeCommandBuffers, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkFreeCommandBuffers.html
5043   template <typename Dispatch>
freeCommandBuffers(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers,Dispatch const & d) const5044   VULKAN_HPP_INLINE void Device::freeCommandBuffers( VULKAN_HPP_NAMESPACE::CommandPool                                                   commandPool,
5045                                                      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers,
5046                                                      Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
5047   {
5048     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5049 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
5050     VULKAN_HPP_ASSERT( d.vkFreeCommandBuffers && "Function <vkFreeCommandBuffers> requires <VK_VERSION_1_0>" );
5051 #  endif
5052 
5053     d.vkFreeCommandBuffers(
5054       m_device, static_cast<VkCommandPool>( commandPool ), commandBuffers.size(), reinterpret_cast<const VkCommandBuffer *>( commandBuffers.data() ) );
5055   }
5056 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
5057 
5058   // wrapper function for command vkFreeCommandBuffers, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkFreeCommandBuffers.html
5059   template <typename Dispatch>
5060   VULKAN_HPP_INLINE void( Device::free )( VULKAN_HPP_NAMESPACE::CommandPool           commandPool,
5061                                           uint32_t                                    commandBufferCount,
5062                                           const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,
5063                                           Dispatch const &                            d ) const VULKAN_HPP_NOEXCEPT
5064   {
5065     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5066     d.vkFreeCommandBuffers( static_cast<VkDevice>( m_device ),
5067                             static_cast<VkCommandPool>( commandPool ),
5068                             commandBufferCount,
5069                             reinterpret_cast<const VkCommandBuffer *>( pCommandBuffers ) );
5070   }
5071 
5072 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
5073   // wrapper function for command vkFreeCommandBuffers, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkFreeCommandBuffers.html
5074   template <typename Dispatch>
5075   VULKAN_HPP_INLINE void( Device::free )( VULKAN_HPP_NAMESPACE::CommandPool                                                   commandPool,
5076                                           VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers,
5077                                           Dispatch const &                                                                    d ) const VULKAN_HPP_NOEXCEPT
5078   {
5079     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5080 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
5081     VULKAN_HPP_ASSERT( d.vkFreeCommandBuffers && "Function <vkFreeCommandBuffers> requires <VK_VERSION_1_0>" );
5082 #  endif
5083 
5084     d.vkFreeCommandBuffers(
5085       m_device, static_cast<VkCommandPool>( commandPool ), commandBuffers.size(), reinterpret_cast<const VkCommandBuffer *>( commandBuffers.data() ) );
5086   }
5087 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
5088 
5089   // wrapper function for command vkBeginCommandBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBeginCommandBuffer.html
5090   template <typename Dispatch>
begin(const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo * pBeginInfo,Dispatch const & d) const5091   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo * pBeginInfo,
5092                                                                       Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
5093   {
5094     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5095     return static_cast<Result>(
5096       d.vkBeginCommandBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCommandBufferBeginInfo *>( pBeginInfo ) ) );
5097   }
5098 
5099 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
5100   // wrapper function for command vkBeginCommandBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBeginCommandBuffer.html
5101   template <typename Dispatch>
5102   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
begin(const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo & beginInfo,Dispatch const & d) const5103                                           CommandBuffer::begin( const VULKAN_HPP_NAMESPACE::CommandBufferBeginInfo & beginInfo, Dispatch const & d ) const
5104   {
5105     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5106 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
5107     VULKAN_HPP_ASSERT( d.vkBeginCommandBuffer && "Function <vkBeginCommandBuffer> requires <VK_VERSION_1_0>" );
5108 #  endif
5109 
5110     VULKAN_HPP_NAMESPACE::Result result =
5111       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkBeginCommandBuffer( m_commandBuffer, reinterpret_cast<const VkCommandBufferBeginInfo *>( &beginInfo ) ) );
5112     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::begin" );
5113 
5114     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
5115   }
5116 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
5117 
5118 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
5119   // wrapper function for command vkEndCommandBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkEndCommandBuffer.html
5120   template <typename Dispatch>
end(Dispatch const & d) const5121   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::end( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
5122   {
5123     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5124     return static_cast<Result>( d.vkEndCommandBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ) ) );
5125   }
5126 #else
5127   // wrapper function for command vkEndCommandBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkEndCommandBuffer.html
5128   template <typename Dispatch>
end(Dispatch const & d) const5129   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::end( Dispatch const & d ) const
5130   {
5131     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5132 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
5133     VULKAN_HPP_ASSERT( d.vkEndCommandBuffer && "Function <vkEndCommandBuffer> requires <VK_VERSION_1_0>" );
5134 #  endif
5135 
5136     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEndCommandBuffer( m_commandBuffer ) );
5137     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::end" );
5138 
5139     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
5140   }
5141 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
5142 
5143 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
5144   // wrapper function for command vkResetCommandBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetCommandBuffer.html
5145   template <typename Dispatch>
reset(VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags,Dispatch const & d) const5146   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags,
5147                                                                       Dispatch const &                              d ) const VULKAN_HPP_NOEXCEPT
5148   {
5149     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5150     return static_cast<Result>( d.vkResetCommandBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkCommandBufferResetFlags>( flags ) ) );
5151   }
5152 #else
5153   // wrapper function for command vkResetCommandBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetCommandBuffer.html
5154   template <typename Dispatch>
reset(VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags,Dispatch const & d) const5155   VULKAN_HPP_INLINE typename ResultValueType<void>::type CommandBuffer::reset( VULKAN_HPP_NAMESPACE::CommandBufferResetFlags flags, Dispatch const & d ) const
5156   {
5157     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5158 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
5159     VULKAN_HPP_ASSERT( d.vkResetCommandBuffer && "Function <vkResetCommandBuffer> requires <VK_VERSION_1_0>" );
5160 #  endif
5161 
5162     VULKAN_HPP_NAMESPACE::Result result =
5163       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkResetCommandBuffer( m_commandBuffer, static_cast<VkCommandBufferResetFlags>( flags ) ) );
5164     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::reset" );
5165 
5166     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
5167   }
5168 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
5169 
5170   // wrapper function for command vkCmdBindPipeline, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindPipeline.html
5171   template <typename Dispatch>
bindPipeline(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::Pipeline pipeline,Dispatch const & d) const5172   VULKAN_HPP_INLINE void CommandBuffer::bindPipeline( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,
5173                                                       VULKAN_HPP_NAMESPACE::Pipeline          pipeline,
5174                                                       Dispatch const &                        d ) const VULKAN_HPP_NOEXCEPT
5175   {
5176     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5177     d.vkCmdBindPipeline(
5178       static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ) );
5179   }
5180 
5181   // wrapper function for command vkCmdSetViewport, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetViewport.html
5182   template <typename Dispatch>
setViewport(uint32_t firstViewport,uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::Viewport * pViewports,Dispatch const & d) const5183   VULKAN_HPP_INLINE void CommandBuffer::setViewport( uint32_t                               firstViewport,
5184                                                      uint32_t                               viewportCount,
5185                                                      const VULKAN_HPP_NAMESPACE::Viewport * pViewports,
5186                                                      Dispatch const &                       d ) const VULKAN_HPP_NOEXCEPT
5187   {
5188     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5189     d.vkCmdSetViewport( static_cast<VkCommandBuffer>( m_commandBuffer ), firstViewport, viewportCount, reinterpret_cast<const VkViewport *>( pViewports ) );
5190   }
5191 
5192 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
5193   // wrapper function for command vkCmdSetViewport, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetViewport.html
5194   template <typename Dispatch>
setViewport(uint32_t firstViewport,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports,Dispatch const & d) const5195   VULKAN_HPP_INLINE void CommandBuffer::setViewport( uint32_t                                                                       firstViewport,
5196                                                      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports,
5197                                                      Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
5198   {
5199     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5200 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
5201     VULKAN_HPP_ASSERT( d.vkCmdSetViewport && "Function <vkCmdSetViewport> requires <VK_VERSION_1_0>" );
5202 #  endif
5203 
5204     d.vkCmdSetViewport( m_commandBuffer, firstViewport, viewports.size(), reinterpret_cast<const VkViewport *>( viewports.data() ) );
5205   }
5206 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
5207 
5208   // wrapper function for command vkCmdSetScissor, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetScissor.html
5209   template <typename Dispatch>
setScissor(uint32_t firstScissor,uint32_t scissorCount,const VULKAN_HPP_NAMESPACE::Rect2D * pScissors,Dispatch const & d) const5210   VULKAN_HPP_INLINE void CommandBuffer::setScissor( uint32_t                             firstScissor,
5211                                                     uint32_t                             scissorCount,
5212                                                     const VULKAN_HPP_NAMESPACE::Rect2D * pScissors,
5213                                                     Dispatch const &                     d ) const VULKAN_HPP_NOEXCEPT
5214   {
5215     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5216     d.vkCmdSetScissor( static_cast<VkCommandBuffer>( m_commandBuffer ), firstScissor, scissorCount, reinterpret_cast<const VkRect2D *>( pScissors ) );
5217   }
5218 
5219 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
5220   // wrapper function for command vkCmdSetScissor, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetScissor.html
5221   template <typename Dispatch>
setScissor(uint32_t firstScissor,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors,Dispatch const & d) const5222   VULKAN_HPP_INLINE void CommandBuffer::setScissor( uint32_t                                                                     firstScissor,
5223                                                     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors,
5224                                                     Dispatch const &                                                             d ) const VULKAN_HPP_NOEXCEPT
5225   {
5226     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5227 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
5228     VULKAN_HPP_ASSERT( d.vkCmdSetScissor && "Function <vkCmdSetScissor> requires <VK_VERSION_1_0>" );
5229 #  endif
5230 
5231     d.vkCmdSetScissor( m_commandBuffer, firstScissor, scissors.size(), reinterpret_cast<const VkRect2D *>( scissors.data() ) );
5232   }
5233 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
5234 
5235   // wrapper function for command vkCmdSetLineWidth, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetLineWidth.html
5236   template <typename Dispatch>
setLineWidth(float lineWidth,Dispatch const & d) const5237   VULKAN_HPP_INLINE void CommandBuffer::setLineWidth( float lineWidth, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
5238   {
5239     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5240     d.vkCmdSetLineWidth( static_cast<VkCommandBuffer>( m_commandBuffer ), lineWidth );
5241   }
5242 
5243   // wrapper function for command vkCmdSetDepthBias, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthBias.html
5244   template <typename Dispatch>
5245   VULKAN_HPP_INLINE void
setDepthBias(float depthBiasConstantFactor,float depthBiasClamp,float depthBiasSlopeFactor,Dispatch const & d) const5246     CommandBuffer::setDepthBias( float depthBiasConstantFactor, float depthBiasClamp, float depthBiasSlopeFactor, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
5247   {
5248     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5249     d.vkCmdSetDepthBias( static_cast<VkCommandBuffer>( m_commandBuffer ), depthBiasConstantFactor, depthBiasClamp, depthBiasSlopeFactor );
5250   }
5251 
5252   // wrapper function for command vkCmdSetBlendConstants, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetBlendConstants.html
5253   template <typename Dispatch>
setBlendConstants(const float blendConstants[4],Dispatch const & d) const5254   VULKAN_HPP_INLINE void CommandBuffer::setBlendConstants( const float blendConstants[4], Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
5255   {
5256     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5257     d.vkCmdSetBlendConstants( static_cast<VkCommandBuffer>( m_commandBuffer ), blendConstants );
5258   }
5259 
5260   // wrapper function for command vkCmdSetDepthBounds, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthBounds.html
5261   template <typename Dispatch>
setDepthBounds(float minDepthBounds,float maxDepthBounds,Dispatch const & d) const5262   VULKAN_HPP_INLINE void CommandBuffer::setDepthBounds( float minDepthBounds, float maxDepthBounds, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
5263   {
5264     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5265     d.vkCmdSetDepthBounds( static_cast<VkCommandBuffer>( m_commandBuffer ), minDepthBounds, maxDepthBounds );
5266   }
5267 
5268   // wrapper function for command vkCmdSetStencilCompareMask, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetStencilCompareMask.html
5269   template <typename Dispatch>
5270   VULKAN_HPP_INLINE void
setStencilCompareMask(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t compareMask,Dispatch const & d) const5271     CommandBuffer::setStencilCompareMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t compareMask, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
5272   {
5273     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5274     d.vkCmdSetStencilCompareMask( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkStencilFaceFlags>( faceMask ), compareMask );
5275   }
5276 
5277   // wrapper function for command vkCmdSetStencilWriteMask, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetStencilWriteMask.html
5278   template <typename Dispatch>
5279   VULKAN_HPP_INLINE void
setStencilWriteMask(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t writeMask,Dispatch const & d) const5280     CommandBuffer::setStencilWriteMask( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t writeMask, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
5281   {
5282     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5283     d.vkCmdSetStencilWriteMask( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkStencilFaceFlags>( faceMask ), writeMask );
5284   }
5285 
5286   // wrapper function for command vkCmdSetStencilReference, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetStencilReference.html
5287   template <typename Dispatch>
5288   VULKAN_HPP_INLINE void
setStencilReference(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,uint32_t reference,Dispatch const & d) const5289     CommandBuffer::setStencilReference( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask, uint32_t reference, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
5290   {
5291     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5292     d.vkCmdSetStencilReference( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkStencilFaceFlags>( faceMask ), reference );
5293   }
5294 
5295   // wrapper function for command vkCmdBindDescriptorSets, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindDescriptorSets.html
5296   template <typename Dispatch>
bindDescriptorSets(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t firstSet,uint32_t descriptorSetCount,const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,uint32_t dynamicOffsetCount,const uint32_t * pDynamicOffsets,Dispatch const & d) const5297   VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint     pipelineBindPoint,
5298                                                             VULKAN_HPP_NAMESPACE::PipelineLayout        layout,
5299                                                             uint32_t                                    firstSet,
5300                                                             uint32_t                                    descriptorSetCount,
5301                                                             const VULKAN_HPP_NAMESPACE::DescriptorSet * pDescriptorSets,
5302                                                             uint32_t                                    dynamicOffsetCount,
5303                                                             const uint32_t *                            pDynamicOffsets,
5304                                                             Dispatch const &                            d ) const VULKAN_HPP_NOEXCEPT
5305   {
5306     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5307     d.vkCmdBindDescriptorSets( static_cast<VkCommandBuffer>( m_commandBuffer ),
5308                                static_cast<VkPipelineBindPoint>( pipelineBindPoint ),
5309                                static_cast<VkPipelineLayout>( layout ),
5310                                firstSet,
5311                                descriptorSetCount,
5312                                reinterpret_cast<const VkDescriptorSet *>( pDescriptorSets ),
5313                                dynamicOffsetCount,
5314                                pDynamicOffsets );
5315   }
5316 
5317 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
5318   // wrapper function for command vkCmdBindDescriptorSets, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindDescriptorSets.html
5319   template <typename Dispatch>
bindDescriptorSets(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t firstSet,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets,VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t> const & dynamicOffsets,Dispatch const & d) const5320   VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorSets( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,
5321                                                             VULKAN_HPP_NAMESPACE::PipelineLayout    layout,
5322                                                             uint32_t                                firstSet,
5323                                                             VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorSet> const & descriptorSets,
5324                                                             VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t> const &                            dynamicOffsets,
5325                                                             Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
5326   {
5327     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5328 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
5329     VULKAN_HPP_ASSERT( d.vkCmdBindDescriptorSets && "Function <vkCmdBindDescriptorSets> requires <VK_VERSION_1_0>" );
5330 #  endif
5331 
5332     d.vkCmdBindDescriptorSets( m_commandBuffer,
5333                                static_cast<VkPipelineBindPoint>( pipelineBindPoint ),
5334                                static_cast<VkPipelineLayout>( layout ),
5335                                firstSet,
5336                                descriptorSets.size(),
5337                                reinterpret_cast<const VkDescriptorSet *>( descriptorSets.data() ),
5338                                dynamicOffsets.size(),
5339                                dynamicOffsets.data() );
5340   }
5341 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
5342 
5343   // wrapper function for command vkCmdBindIndexBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindIndexBuffer.html
5344   template <typename Dispatch>
bindIndexBuffer(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::IndexType indexType,Dispatch const & d) const5345   VULKAN_HPP_INLINE void CommandBuffer::bindIndexBuffer( VULKAN_HPP_NAMESPACE::Buffer     buffer,
5346                                                          VULKAN_HPP_NAMESPACE::DeviceSize offset,
5347                                                          VULKAN_HPP_NAMESPACE::IndexType  indexType,
5348                                                          Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
5349   {
5350     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5351     d.vkCmdBindIndexBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ),
5352                             static_cast<VkBuffer>( buffer ),
5353                             static_cast<VkDeviceSize>( offset ),
5354                             static_cast<VkIndexType>( indexType ) );
5355   }
5356 
5357   // wrapper function for command vkCmdBindVertexBuffers, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindVertexBuffers.html
5358   template <typename Dispatch>
bindVertexBuffers(uint32_t firstBinding,uint32_t bindingCount,const VULKAN_HPP_NAMESPACE::Buffer * pBuffers,const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets,Dispatch const & d) const5359   VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers( uint32_t                                 firstBinding,
5360                                                            uint32_t                                 bindingCount,
5361                                                            const VULKAN_HPP_NAMESPACE::Buffer *     pBuffers,
5362                                                            const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets,
5363                                                            Dispatch const &                         d ) const VULKAN_HPP_NOEXCEPT
5364   {
5365     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5366     d.vkCmdBindVertexBuffers( static_cast<VkCommandBuffer>( m_commandBuffer ),
5367                               firstBinding,
5368                               bindingCount,
5369                               reinterpret_cast<const VkBuffer *>( pBuffers ),
5370                               reinterpret_cast<const VkDeviceSize *>( pOffsets ) );
5371   }
5372 
5373 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
5374   // wrapper function for command vkCmdBindVertexBuffers, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindVertexBuffers.html
5375   template <typename Dispatch>
bindVertexBuffers(uint32_t firstBinding,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets,Dispatch const & d) const5376   VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers( uint32_t                                                                         firstBinding,
5377                                                            VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const &     buffers,
5378                                                            VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets,
5379                                                            Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
5380   {
5381     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5382 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
5383     VULKAN_HPP_ASSERT( d.vkCmdBindVertexBuffers && "Function <vkCmdBindVertexBuffers> requires <VK_VERSION_1_0>" );
5384 #  endif
5385 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
5386     VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
5387 #  else
5388     if ( buffers.size() != offsets.size() )
5389     {
5390       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers: buffers.size() != offsets.size()" );
5391     }
5392 #  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
5393 
5394     d.vkCmdBindVertexBuffers( m_commandBuffer,
5395                               firstBinding,
5396                               buffers.size(),
5397                               reinterpret_cast<const VkBuffer *>( buffers.data() ),
5398                               reinterpret_cast<const VkDeviceSize *>( offsets.data() ) );
5399   }
5400 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
5401 
5402   // wrapper function for command vkCmdDraw, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDraw.html
5403   template <typename Dispatch>
draw(uint32_t vertexCount,uint32_t instanceCount,uint32_t firstVertex,uint32_t firstInstance,Dispatch const & d) const5404   VULKAN_HPP_INLINE void CommandBuffer::draw(
5405     uint32_t vertexCount, uint32_t instanceCount, uint32_t firstVertex, uint32_t firstInstance, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
5406   {
5407     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5408     d.vkCmdDraw( static_cast<VkCommandBuffer>( m_commandBuffer ), vertexCount, instanceCount, firstVertex, firstInstance );
5409   }
5410 
5411   // wrapper function for command vkCmdDrawIndexed, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawIndexed.html
5412   template <typename Dispatch>
drawIndexed(uint32_t indexCount,uint32_t instanceCount,uint32_t firstIndex,int32_t vertexOffset,uint32_t firstInstance,Dispatch const & d) const5413   VULKAN_HPP_INLINE void CommandBuffer::drawIndexed( uint32_t         indexCount,
5414                                                      uint32_t         instanceCount,
5415                                                      uint32_t         firstIndex,
5416                                                      int32_t          vertexOffset,
5417                                                      uint32_t         firstInstance,
5418                                                      Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
5419   {
5420     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5421     d.vkCmdDrawIndexed( static_cast<VkCommandBuffer>( m_commandBuffer ), indexCount, instanceCount, firstIndex, vertexOffset, firstInstance );
5422   }
5423 
5424   // wrapper function for command vkCmdDrawIndirect, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawIndirect.html
5425   template <typename Dispatch>
drawIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const5426   VULKAN_HPP_INLINE void CommandBuffer::drawIndirect( VULKAN_HPP_NAMESPACE::Buffer     buffer,
5427                                                       VULKAN_HPP_NAMESPACE::DeviceSize offset,
5428                                                       uint32_t                         drawCount,
5429                                                       uint32_t                         stride,
5430                                                       Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
5431   {
5432     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5433     d.vkCmdDrawIndirect(
5434       static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
5435   }
5436 
5437   // wrapper function for command vkCmdDrawIndexedIndirect, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawIndexedIndirect.html
5438   template <typename Dispatch>
drawIndexedIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const5439   VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirect( VULKAN_HPP_NAMESPACE::Buffer     buffer,
5440                                                              VULKAN_HPP_NAMESPACE::DeviceSize offset,
5441                                                              uint32_t                         drawCount,
5442                                                              uint32_t                         stride,
5443                                                              Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
5444   {
5445     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5446     d.vkCmdDrawIndexedIndirect(
5447       static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
5448   }
5449 
5450   // wrapper function for command vkCmdDispatch, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDispatch.html
5451   template <typename Dispatch>
5452   VULKAN_HPP_INLINE void
dispatch(uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ,Dispatch const & d) const5453     CommandBuffer::dispatch( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
5454   {
5455     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5456     d.vkCmdDispatch( static_cast<VkCommandBuffer>( m_commandBuffer ), groupCountX, groupCountY, groupCountZ );
5457   }
5458 
5459   // wrapper function for command vkCmdDispatchIndirect, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDispatchIndirect.html
5460   template <typename Dispatch>
dispatchIndirect(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,Dispatch const & d) const5461   VULKAN_HPP_INLINE void CommandBuffer::dispatchIndirect( VULKAN_HPP_NAMESPACE::Buffer     buffer,
5462                                                           VULKAN_HPP_NAMESPACE::DeviceSize offset,
5463                                                           Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
5464   {
5465     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5466     d.vkCmdDispatchIndirect( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ) );
5467   }
5468 
5469   // wrapper function for command vkCmdCopyBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyBuffer.html
5470   template <typename Dispatch>
copyBuffer(VULKAN_HPP_NAMESPACE::Buffer srcBuffer,VULKAN_HPP_NAMESPACE::Buffer dstBuffer,uint32_t regionCount,const VULKAN_HPP_NAMESPACE::BufferCopy * pRegions,Dispatch const & d) const5471   VULKAN_HPP_INLINE void CommandBuffer::copyBuffer( VULKAN_HPP_NAMESPACE::Buffer             srcBuffer,
5472                                                     VULKAN_HPP_NAMESPACE::Buffer             dstBuffer,
5473                                                     uint32_t                                 regionCount,
5474                                                     const VULKAN_HPP_NAMESPACE::BufferCopy * pRegions,
5475                                                     Dispatch const &                         d ) const VULKAN_HPP_NOEXCEPT
5476   {
5477     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5478     d.vkCmdCopyBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ),
5479                        static_cast<VkBuffer>( srcBuffer ),
5480                        static_cast<VkBuffer>( dstBuffer ),
5481                        regionCount,
5482                        reinterpret_cast<const VkBufferCopy *>( pRegions ) );
5483   }
5484 
5485 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
5486   // wrapper function for command vkCmdCopyBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyBuffer.html
5487   template <typename Dispatch>
copyBuffer(VULKAN_HPP_NAMESPACE::Buffer srcBuffer,VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferCopy> const & regions,Dispatch const & d) const5488   VULKAN_HPP_INLINE void CommandBuffer::copyBuffer( VULKAN_HPP_NAMESPACE::Buffer                                                     srcBuffer,
5489                                                     VULKAN_HPP_NAMESPACE::Buffer                                                     dstBuffer,
5490                                                     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferCopy> const & regions,
5491                                                     Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
5492   {
5493     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5494 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
5495     VULKAN_HPP_ASSERT( d.vkCmdCopyBuffer && "Function <vkCmdCopyBuffer> requires <VK_VERSION_1_0>" );
5496 #  endif
5497 
5498     d.vkCmdCopyBuffer( m_commandBuffer,
5499                        static_cast<VkBuffer>( srcBuffer ),
5500                        static_cast<VkBuffer>( dstBuffer ),
5501                        regions.size(),
5502                        reinterpret_cast<const VkBufferCopy *>( regions.data() ) );
5503   }
5504 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
5505 
5506   // wrapper function for command vkCmdCopyImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyImage.html
5507   template <typename Dispatch>
copyImage(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,uint32_t regionCount,const VULKAN_HPP_NAMESPACE::ImageCopy * pRegions,Dispatch const & d) const5508   VULKAN_HPP_INLINE void CommandBuffer::copyImage( VULKAN_HPP_NAMESPACE::Image             srcImage,
5509                                                    VULKAN_HPP_NAMESPACE::ImageLayout       srcImageLayout,
5510                                                    VULKAN_HPP_NAMESPACE::Image             dstImage,
5511                                                    VULKAN_HPP_NAMESPACE::ImageLayout       dstImageLayout,
5512                                                    uint32_t                                regionCount,
5513                                                    const VULKAN_HPP_NAMESPACE::ImageCopy * pRegions,
5514                                                    Dispatch const &                        d ) const VULKAN_HPP_NOEXCEPT
5515   {
5516     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5517     d.vkCmdCopyImage( static_cast<VkCommandBuffer>( m_commandBuffer ),
5518                       static_cast<VkImage>( srcImage ),
5519                       static_cast<VkImageLayout>( srcImageLayout ),
5520                       static_cast<VkImage>( dstImage ),
5521                       static_cast<VkImageLayout>( dstImageLayout ),
5522                       regionCount,
5523                       reinterpret_cast<const VkImageCopy *>( pRegions ) );
5524   }
5525 
5526 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
5527   // wrapper function for command vkCmdCopyImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyImage.html
5528   template <typename Dispatch>
copyImage(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageCopy> const & regions,Dispatch const & d) const5529   VULKAN_HPP_INLINE void CommandBuffer::copyImage( VULKAN_HPP_NAMESPACE::Image                                                     srcImage,
5530                                                    VULKAN_HPP_NAMESPACE::ImageLayout                                               srcImageLayout,
5531                                                    VULKAN_HPP_NAMESPACE::Image                                                     dstImage,
5532                                                    VULKAN_HPP_NAMESPACE::ImageLayout                                               dstImageLayout,
5533                                                    VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageCopy> const & regions,
5534                                                    Dispatch const &                                                                d ) const VULKAN_HPP_NOEXCEPT
5535   {
5536     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5537 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
5538     VULKAN_HPP_ASSERT( d.vkCmdCopyImage && "Function <vkCmdCopyImage> requires <VK_VERSION_1_0>" );
5539 #  endif
5540 
5541     d.vkCmdCopyImage( m_commandBuffer,
5542                       static_cast<VkImage>( srcImage ),
5543                       static_cast<VkImageLayout>( srcImageLayout ),
5544                       static_cast<VkImage>( dstImage ),
5545                       static_cast<VkImageLayout>( dstImageLayout ),
5546                       regions.size(),
5547                       reinterpret_cast<const VkImageCopy *>( regions.data() ) );
5548   }
5549 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
5550 
5551   // wrapper function for command vkCmdBlitImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBlitImage.html
5552   template <typename Dispatch>
blitImage(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,uint32_t regionCount,const VULKAN_HPP_NAMESPACE::ImageBlit * pRegions,VULKAN_HPP_NAMESPACE::Filter filter,Dispatch const & d) const5553   VULKAN_HPP_INLINE void CommandBuffer::blitImage( VULKAN_HPP_NAMESPACE::Image             srcImage,
5554                                                    VULKAN_HPP_NAMESPACE::ImageLayout       srcImageLayout,
5555                                                    VULKAN_HPP_NAMESPACE::Image             dstImage,
5556                                                    VULKAN_HPP_NAMESPACE::ImageLayout       dstImageLayout,
5557                                                    uint32_t                                regionCount,
5558                                                    const VULKAN_HPP_NAMESPACE::ImageBlit * pRegions,
5559                                                    VULKAN_HPP_NAMESPACE::Filter            filter,
5560                                                    Dispatch const &                        d ) const VULKAN_HPP_NOEXCEPT
5561   {
5562     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5563     d.vkCmdBlitImage( static_cast<VkCommandBuffer>( m_commandBuffer ),
5564                       static_cast<VkImage>( srcImage ),
5565                       static_cast<VkImageLayout>( srcImageLayout ),
5566                       static_cast<VkImage>( dstImage ),
5567                       static_cast<VkImageLayout>( dstImageLayout ),
5568                       regionCount,
5569                       reinterpret_cast<const VkImageBlit *>( pRegions ),
5570                       static_cast<VkFilter>( filter ) );
5571   }
5572 
5573 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
5574   // wrapper function for command vkCmdBlitImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBlitImage.html
5575   template <typename Dispatch>
blitImage(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageBlit> const & regions,VULKAN_HPP_NAMESPACE::Filter filter,Dispatch const & d) const5576   VULKAN_HPP_INLINE void CommandBuffer::blitImage( VULKAN_HPP_NAMESPACE::Image                                                     srcImage,
5577                                                    VULKAN_HPP_NAMESPACE::ImageLayout                                               srcImageLayout,
5578                                                    VULKAN_HPP_NAMESPACE::Image                                                     dstImage,
5579                                                    VULKAN_HPP_NAMESPACE::ImageLayout                                               dstImageLayout,
5580                                                    VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageBlit> const & regions,
5581                                                    VULKAN_HPP_NAMESPACE::Filter                                                    filter,
5582                                                    Dispatch const &                                                                d ) const VULKAN_HPP_NOEXCEPT
5583   {
5584     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5585 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
5586     VULKAN_HPP_ASSERT( d.vkCmdBlitImage && "Function <vkCmdBlitImage> requires <VK_VERSION_1_0>" );
5587 #  endif
5588 
5589     d.vkCmdBlitImage( m_commandBuffer,
5590                       static_cast<VkImage>( srcImage ),
5591                       static_cast<VkImageLayout>( srcImageLayout ),
5592                       static_cast<VkImage>( dstImage ),
5593                       static_cast<VkImageLayout>( dstImageLayout ),
5594                       regions.size(),
5595                       reinterpret_cast<const VkImageBlit *>( regions.data() ),
5596                       static_cast<VkFilter>( filter ) );
5597   }
5598 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
5599 
5600   // wrapper function for command vkCmdCopyBufferToImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyBufferToImage.html
5601   template <typename Dispatch>
copyBufferToImage(VULKAN_HPP_NAMESPACE::Buffer srcBuffer,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,uint32_t regionCount,const VULKAN_HPP_NAMESPACE::BufferImageCopy * pRegions,Dispatch const & d) const5602   VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer                  srcBuffer,
5603                                                            VULKAN_HPP_NAMESPACE::Image                   dstImage,
5604                                                            VULKAN_HPP_NAMESPACE::ImageLayout             dstImageLayout,
5605                                                            uint32_t                                      regionCount,
5606                                                            const VULKAN_HPP_NAMESPACE::BufferImageCopy * pRegions,
5607                                                            Dispatch const &                              d ) const VULKAN_HPP_NOEXCEPT
5608   {
5609     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5610     d.vkCmdCopyBufferToImage( static_cast<VkCommandBuffer>( m_commandBuffer ),
5611                               static_cast<VkBuffer>( srcBuffer ),
5612                               static_cast<VkImage>( dstImage ),
5613                               static_cast<VkImageLayout>( dstImageLayout ),
5614                               regionCount,
5615                               reinterpret_cast<const VkBufferImageCopy *>( pRegions ) );
5616   }
5617 
5618 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
5619   // wrapper function for command vkCmdCopyBufferToImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyBufferToImage.html
5620   template <typename Dispatch>
copyBufferToImage(VULKAN_HPP_NAMESPACE::Buffer srcBuffer,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions,Dispatch const & d) const5621   VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage( VULKAN_HPP_NAMESPACE::Buffer                                                          srcBuffer,
5622                                                            VULKAN_HPP_NAMESPACE::Image                                                           dstImage,
5623                                                            VULKAN_HPP_NAMESPACE::ImageLayout                                                     dstImageLayout,
5624                                                            VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions,
5625                                                            Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
5626   {
5627     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5628 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
5629     VULKAN_HPP_ASSERT( d.vkCmdCopyBufferToImage && "Function <vkCmdCopyBufferToImage> requires <VK_VERSION_1_0>" );
5630 #  endif
5631 
5632     d.vkCmdCopyBufferToImage( m_commandBuffer,
5633                               static_cast<VkBuffer>( srcBuffer ),
5634                               static_cast<VkImage>( dstImage ),
5635                               static_cast<VkImageLayout>( dstImageLayout ),
5636                               regions.size(),
5637                               reinterpret_cast<const VkBufferImageCopy *>( regions.data() ) );
5638   }
5639 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
5640 
5641   // wrapper function for command vkCmdCopyImageToBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyImageToBuffer.html
5642   template <typename Dispatch>
copyImageToBuffer(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Buffer dstBuffer,uint32_t regionCount,const VULKAN_HPP_NAMESPACE::BufferImageCopy * pRegions,Dispatch const & d) const5643   VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image                   srcImage,
5644                                                            VULKAN_HPP_NAMESPACE::ImageLayout             srcImageLayout,
5645                                                            VULKAN_HPP_NAMESPACE::Buffer                  dstBuffer,
5646                                                            uint32_t                                      regionCount,
5647                                                            const VULKAN_HPP_NAMESPACE::BufferImageCopy * pRegions,
5648                                                            Dispatch const &                              d ) const VULKAN_HPP_NOEXCEPT
5649   {
5650     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5651     d.vkCmdCopyImageToBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ),
5652                               static_cast<VkImage>( srcImage ),
5653                               static_cast<VkImageLayout>( srcImageLayout ),
5654                               static_cast<VkBuffer>( dstBuffer ),
5655                               regionCount,
5656                               reinterpret_cast<const VkBufferImageCopy *>( pRegions ) );
5657   }
5658 
5659 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
5660   // wrapper function for command vkCmdCopyImageToBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyImageToBuffer.html
5661   template <typename Dispatch>
copyImageToBuffer(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions,Dispatch const & d) const5662   VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer( VULKAN_HPP_NAMESPACE::Image                                                           srcImage,
5663                                                            VULKAN_HPP_NAMESPACE::ImageLayout                                                     srcImageLayout,
5664                                                            VULKAN_HPP_NAMESPACE::Buffer                                                          dstBuffer,
5665                                                            VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferImageCopy> const & regions,
5666                                                            Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
5667   {
5668     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5669 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
5670     VULKAN_HPP_ASSERT( d.vkCmdCopyImageToBuffer && "Function <vkCmdCopyImageToBuffer> requires <VK_VERSION_1_0>" );
5671 #  endif
5672 
5673     d.vkCmdCopyImageToBuffer( m_commandBuffer,
5674                               static_cast<VkImage>( srcImage ),
5675                               static_cast<VkImageLayout>( srcImageLayout ),
5676                               static_cast<VkBuffer>( dstBuffer ),
5677                               regions.size(),
5678                               reinterpret_cast<const VkBufferImageCopy *>( regions.data() ) );
5679   }
5680 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
5681 
5682   // wrapper function for command vkCmdUpdateBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdUpdateBuffer.html
5683   template <typename Dispatch>
updateBuffer(VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,VULKAN_HPP_NAMESPACE::DeviceSize dataSize,const void * pData,Dispatch const & d) const5684   VULKAN_HPP_INLINE void CommandBuffer::updateBuffer( VULKAN_HPP_NAMESPACE::Buffer     dstBuffer,
5685                                                       VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,
5686                                                       VULKAN_HPP_NAMESPACE::DeviceSize dataSize,
5687                                                       const void *                     pData,
5688                                                       Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
5689   {
5690     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5691     d.vkCmdUpdateBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ),
5692                          static_cast<VkBuffer>( dstBuffer ),
5693                          static_cast<VkDeviceSize>( dstOffset ),
5694                          static_cast<VkDeviceSize>( dataSize ),
5695                          pData );
5696   }
5697 
5698 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
5699   // wrapper function for command vkCmdUpdateBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdUpdateBuffer.html
5700   template <typename DataType, typename Dispatch>
updateBuffer(VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,VULKAN_HPP_NAMESPACE::ArrayProxy<const DataType> const & data,Dispatch const & d) const5701   VULKAN_HPP_INLINE void CommandBuffer::updateBuffer( VULKAN_HPP_NAMESPACE::Buffer                             dstBuffer,
5702                                                       VULKAN_HPP_NAMESPACE::DeviceSize                         dstOffset,
5703                                                       VULKAN_HPP_NAMESPACE::ArrayProxy<const DataType> const & data,
5704                                                       Dispatch const &                                         d ) const VULKAN_HPP_NOEXCEPT
5705   {
5706     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5707 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
5708     VULKAN_HPP_ASSERT( d.vkCmdUpdateBuffer && "Function <vkCmdUpdateBuffer> requires <VK_VERSION_1_0>" );
5709 #  endif
5710 
5711     d.vkCmdUpdateBuffer( m_commandBuffer,
5712                          static_cast<VkBuffer>( dstBuffer ),
5713                          static_cast<VkDeviceSize>( dstOffset ),
5714                          data.size() * sizeof( DataType ),
5715                          reinterpret_cast<const void *>( data.data() ) );
5716   }
5717 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
5718 
5719   // wrapper function for command vkCmdFillBuffer, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdFillBuffer.html
5720   template <typename Dispatch>
fillBuffer(VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,VULKAN_HPP_NAMESPACE::DeviceSize size,uint32_t data,Dispatch const & d) const5721   VULKAN_HPP_INLINE void CommandBuffer::fillBuffer( VULKAN_HPP_NAMESPACE::Buffer     dstBuffer,
5722                                                     VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,
5723                                                     VULKAN_HPP_NAMESPACE::DeviceSize size,
5724                                                     uint32_t                         data,
5725                                                     Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
5726   {
5727     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5728     d.vkCmdFillBuffer( static_cast<VkCommandBuffer>( m_commandBuffer ),
5729                        static_cast<VkBuffer>( dstBuffer ),
5730                        static_cast<VkDeviceSize>( dstOffset ),
5731                        static_cast<VkDeviceSize>( size ),
5732                        data );
5733   }
5734 
5735   // wrapper function for command vkCmdClearColorImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdClearColorImage.html
5736   template <typename Dispatch>
clearColorImage(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,const VULKAN_HPP_NAMESPACE::ClearColorValue * pColor,uint32_t rangeCount,const VULKAN_HPP_NAMESPACE::ImageSubresourceRange * pRanges,Dispatch const & d) const5737   VULKAN_HPP_INLINE void CommandBuffer::clearColorImage( VULKAN_HPP_NAMESPACE::Image                         image,
5738                                                          VULKAN_HPP_NAMESPACE::ImageLayout                   imageLayout,
5739                                                          const VULKAN_HPP_NAMESPACE::ClearColorValue *       pColor,
5740                                                          uint32_t                                            rangeCount,
5741                                                          const VULKAN_HPP_NAMESPACE::ImageSubresourceRange * pRanges,
5742                                                          Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
5743   {
5744     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5745     d.vkCmdClearColorImage( static_cast<VkCommandBuffer>( m_commandBuffer ),
5746                             static_cast<VkImage>( image ),
5747                             static_cast<VkImageLayout>( imageLayout ),
5748                             reinterpret_cast<const VkClearColorValue *>( pColor ),
5749                             rangeCount,
5750                             reinterpret_cast<const VkImageSubresourceRange *>( pRanges ) );
5751   }
5752 
5753 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
5754   // wrapper function for command vkCmdClearColorImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdClearColorImage.html
5755   template <typename Dispatch>
clearColorImage(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,const VULKAN_HPP_NAMESPACE::ClearColorValue & color,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges,Dispatch const & d) const5756   VULKAN_HPP_INLINE void CommandBuffer::clearColorImage( VULKAN_HPP_NAMESPACE::Image                   image,
5757                                                          VULKAN_HPP_NAMESPACE::ImageLayout             imageLayout,
5758                                                          const VULKAN_HPP_NAMESPACE::ClearColorValue & color,
5759                                                          VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges,
5760                                                          Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
5761   {
5762     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5763 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
5764     VULKAN_HPP_ASSERT( d.vkCmdClearColorImage && "Function <vkCmdClearColorImage> requires <VK_VERSION_1_0>" );
5765 #  endif
5766 
5767     d.vkCmdClearColorImage( m_commandBuffer,
5768                             static_cast<VkImage>( image ),
5769                             static_cast<VkImageLayout>( imageLayout ),
5770                             reinterpret_cast<const VkClearColorValue *>( &color ),
5771                             ranges.size(),
5772                             reinterpret_cast<const VkImageSubresourceRange *>( ranges.data() ) );
5773   }
5774 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
5775 
5776   // wrapper function for command vkCmdClearDepthStencilImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdClearDepthStencilImage.html
5777   template <typename Dispatch>
clearDepthStencilImage(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue * pDepthStencil,uint32_t rangeCount,const VULKAN_HPP_NAMESPACE::ImageSubresourceRange * pRanges,Dispatch const & d) const5778   VULKAN_HPP_INLINE void CommandBuffer::clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image                          image,
5779                                                                 VULKAN_HPP_NAMESPACE::ImageLayout                    imageLayout,
5780                                                                 const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue * pDepthStencil,
5781                                                                 uint32_t                                             rangeCount,
5782                                                                 const VULKAN_HPP_NAMESPACE::ImageSubresourceRange *  pRanges,
5783                                                                 Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
5784   {
5785     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5786     d.vkCmdClearDepthStencilImage( static_cast<VkCommandBuffer>( m_commandBuffer ),
5787                                    static_cast<VkImage>( image ),
5788                                    static_cast<VkImageLayout>( imageLayout ),
5789                                    reinterpret_cast<const VkClearDepthStencilValue *>( pDepthStencil ),
5790                                    rangeCount,
5791                                    reinterpret_cast<const VkImageSubresourceRange *>( pRanges ) );
5792   }
5793 
5794 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
5795   // wrapper function for command vkCmdClearDepthStencilImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdClearDepthStencilImage.html
5796   template <typename Dispatch>
5797   VULKAN_HPP_INLINE void
clearDepthStencilImage(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue & depthStencil,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges,Dispatch const & d) const5798     CommandBuffer::clearDepthStencilImage( VULKAN_HPP_NAMESPACE::Image                                                                 image,
5799                                            VULKAN_HPP_NAMESPACE::ImageLayout                                                           imageLayout,
5800                                            const VULKAN_HPP_NAMESPACE::ClearDepthStencilValue &                                        depthStencil,
5801                                            VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceRange> const & ranges,
5802                                            Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
5803   {
5804     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5805 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
5806     VULKAN_HPP_ASSERT( d.vkCmdClearDepthStencilImage && "Function <vkCmdClearDepthStencilImage> requires <VK_VERSION_1_0>" );
5807 #  endif
5808 
5809     d.vkCmdClearDepthStencilImage( m_commandBuffer,
5810                                    static_cast<VkImage>( image ),
5811                                    static_cast<VkImageLayout>( imageLayout ),
5812                                    reinterpret_cast<const VkClearDepthStencilValue *>( &depthStencil ),
5813                                    ranges.size(),
5814                                    reinterpret_cast<const VkImageSubresourceRange *>( ranges.data() ) );
5815   }
5816 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
5817 
5818   // wrapper function for command vkCmdClearAttachments, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdClearAttachments.html
5819   template <typename Dispatch>
clearAttachments(uint32_t attachmentCount,const VULKAN_HPP_NAMESPACE::ClearAttachment * pAttachments,uint32_t rectCount,const VULKAN_HPP_NAMESPACE::ClearRect * pRects,Dispatch const & d) const5820   VULKAN_HPP_INLINE void CommandBuffer::clearAttachments( uint32_t                                      attachmentCount,
5821                                                           const VULKAN_HPP_NAMESPACE::ClearAttachment * pAttachments,
5822                                                           uint32_t                                      rectCount,
5823                                                           const VULKAN_HPP_NAMESPACE::ClearRect *       pRects,
5824                                                           Dispatch const &                              d ) const VULKAN_HPP_NOEXCEPT
5825   {
5826     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5827     d.vkCmdClearAttachments( static_cast<VkCommandBuffer>( m_commandBuffer ),
5828                              attachmentCount,
5829                              reinterpret_cast<const VkClearAttachment *>( pAttachments ),
5830                              rectCount,
5831                              reinterpret_cast<const VkClearRect *>( pRects ) );
5832   }
5833 
5834 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
5835   // wrapper function for command vkCmdClearAttachments, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdClearAttachments.html
5836   template <typename Dispatch>
clearAttachments(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearAttachment> const & attachments,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearRect> const & rects,Dispatch const & d) const5837   VULKAN_HPP_INLINE void CommandBuffer::clearAttachments( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearAttachment> const & attachments,
5838                                                           VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ClearRect> const &       rects,
5839                                                           Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
5840   {
5841     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5842 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
5843     VULKAN_HPP_ASSERT( d.vkCmdClearAttachments && "Function <vkCmdClearAttachments> requires <VK_VERSION_1_0>" );
5844 #  endif
5845 
5846     d.vkCmdClearAttachments( m_commandBuffer,
5847                              attachments.size(),
5848                              reinterpret_cast<const VkClearAttachment *>( attachments.data() ),
5849                              rects.size(),
5850                              reinterpret_cast<const VkClearRect *>( rects.data() ) );
5851   }
5852 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
5853 
5854   // wrapper function for command vkCmdResolveImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdResolveImage.html
5855   template <typename Dispatch>
resolveImage(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,uint32_t regionCount,const VULKAN_HPP_NAMESPACE::ImageResolve * pRegions,Dispatch const & d) const5856   VULKAN_HPP_INLINE void CommandBuffer::resolveImage( VULKAN_HPP_NAMESPACE::Image                srcImage,
5857                                                       VULKAN_HPP_NAMESPACE::ImageLayout          srcImageLayout,
5858                                                       VULKAN_HPP_NAMESPACE::Image                dstImage,
5859                                                       VULKAN_HPP_NAMESPACE::ImageLayout          dstImageLayout,
5860                                                       uint32_t                                   regionCount,
5861                                                       const VULKAN_HPP_NAMESPACE::ImageResolve * pRegions,
5862                                                       Dispatch const &                           d ) const VULKAN_HPP_NOEXCEPT
5863   {
5864     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5865     d.vkCmdResolveImage( static_cast<VkCommandBuffer>( m_commandBuffer ),
5866                          static_cast<VkImage>( srcImage ),
5867                          static_cast<VkImageLayout>( srcImageLayout ),
5868                          static_cast<VkImage>( dstImage ),
5869                          static_cast<VkImageLayout>( dstImageLayout ),
5870                          regionCount,
5871                          reinterpret_cast<const VkImageResolve *>( pRegions ) );
5872   }
5873 
5874 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
5875   // wrapper function for command vkCmdResolveImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdResolveImage.html
5876   template <typename Dispatch>
resolveImage(VULKAN_HPP_NAMESPACE::Image srcImage,VULKAN_HPP_NAMESPACE::ImageLayout srcImageLayout,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageResolve> const & regions,Dispatch const & d) const5877   VULKAN_HPP_INLINE void CommandBuffer::resolveImage( VULKAN_HPP_NAMESPACE::Image                                                        srcImage,
5878                                                       VULKAN_HPP_NAMESPACE::ImageLayout                                                  srcImageLayout,
5879                                                       VULKAN_HPP_NAMESPACE::Image                                                        dstImage,
5880                                                       VULKAN_HPP_NAMESPACE::ImageLayout                                                  dstImageLayout,
5881                                                       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageResolve> const & regions,
5882                                                       Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
5883   {
5884     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5885 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
5886     VULKAN_HPP_ASSERT( d.vkCmdResolveImage && "Function <vkCmdResolveImage> requires <VK_VERSION_1_0>" );
5887 #  endif
5888 
5889     d.vkCmdResolveImage( m_commandBuffer,
5890                          static_cast<VkImage>( srcImage ),
5891                          static_cast<VkImageLayout>( srcImageLayout ),
5892                          static_cast<VkImage>( dstImage ),
5893                          static_cast<VkImageLayout>( dstImageLayout ),
5894                          regions.size(),
5895                          reinterpret_cast<const VkImageResolve *>( regions.data() ) );
5896   }
5897 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
5898 
5899   // wrapper function for command vkCmdSetEvent, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetEvent.html
5900   template <typename Dispatch>
setEvent(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask,Dispatch const & d) const5901   VULKAN_HPP_INLINE void CommandBuffer::setEvent( VULKAN_HPP_NAMESPACE::Event              event,
5902                                                   VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask,
5903                                                   Dispatch const &                         d ) const VULKAN_HPP_NOEXCEPT
5904   {
5905     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5906     d.vkCmdSetEvent( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
5907   }
5908 
5909   // wrapper function for command vkCmdResetEvent, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdResetEvent.html
5910   template <typename Dispatch>
resetEvent(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask,Dispatch const & d) const5911   VULKAN_HPP_INLINE void CommandBuffer::resetEvent( VULKAN_HPP_NAMESPACE::Event              event,
5912                                                     VULKAN_HPP_NAMESPACE::PipelineStageFlags stageMask,
5913                                                     Dispatch const &                         d ) const VULKAN_HPP_NOEXCEPT
5914   {
5915     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5916     d.vkCmdResetEvent( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags>( stageMask ) );
5917   }
5918 
5919   // wrapper function for command vkCmdWaitEvents, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWaitEvents.html
5920   template <typename Dispatch>
waitEvents(uint32_t eventCount,const VULKAN_HPP_NAMESPACE::Event * pEvents,VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask,VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask,uint32_t memoryBarrierCount,const VULKAN_HPP_NAMESPACE::MemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier * pImageMemoryBarriers,Dispatch const & d) const5921   VULKAN_HPP_INLINE void CommandBuffer::waitEvents( uint32_t                                          eventCount,
5922                                                     const VULKAN_HPP_NAMESPACE::Event *               pEvents,
5923                                                     VULKAN_HPP_NAMESPACE::PipelineStageFlags          srcStageMask,
5924                                                     VULKAN_HPP_NAMESPACE::PipelineStageFlags          dstStageMask,
5925                                                     uint32_t                                          memoryBarrierCount,
5926                                                     const VULKAN_HPP_NAMESPACE::MemoryBarrier *       pMemoryBarriers,
5927                                                     uint32_t                                          bufferMemoryBarrierCount,
5928                                                     const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier * pBufferMemoryBarriers,
5929                                                     uint32_t                                          imageMemoryBarrierCount,
5930                                                     const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier *  pImageMemoryBarriers,
5931                                                     Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
5932   {
5933     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5934     d.vkCmdWaitEvents( static_cast<VkCommandBuffer>( m_commandBuffer ),
5935                        eventCount,
5936                        reinterpret_cast<const VkEvent *>( pEvents ),
5937                        static_cast<VkPipelineStageFlags>( srcStageMask ),
5938                        static_cast<VkPipelineStageFlags>( dstStageMask ),
5939                        memoryBarrierCount,
5940                        reinterpret_cast<const VkMemoryBarrier *>( pMemoryBarriers ),
5941                        bufferMemoryBarrierCount,
5942                        reinterpret_cast<const VkBufferMemoryBarrier *>( pBufferMemoryBarriers ),
5943                        imageMemoryBarrierCount,
5944                        reinterpret_cast<const VkImageMemoryBarrier *>( pImageMemoryBarriers ) );
5945   }
5946 
5947 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
5948   // wrapper function for command vkCmdWaitEvents, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWaitEvents.html
5949   template <typename Dispatch>
5950   VULKAN_HPP_INLINE void
waitEvents(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events,VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask,VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const & memoryBarriers,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const & imageMemoryBarriers,Dispatch const & d) const5951     CommandBuffer::waitEvents( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const &               events,
5952                                VULKAN_HPP_NAMESPACE::PipelineStageFlags                                                  srcStageMask,
5953                                VULKAN_HPP_NAMESPACE::PipelineStageFlags                                                  dstStageMask,
5954                                VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const &       memoryBarriers,
5955                                VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers,
5956                                VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const &  imageMemoryBarriers,
5957                                Dispatch const &                                                                          d ) const VULKAN_HPP_NOEXCEPT
5958   {
5959     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5960 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
5961     VULKAN_HPP_ASSERT( d.vkCmdWaitEvents && "Function <vkCmdWaitEvents> requires <VK_VERSION_1_0>" );
5962 #  endif
5963 
5964     d.vkCmdWaitEvents( m_commandBuffer,
5965                        events.size(),
5966                        reinterpret_cast<const VkEvent *>( events.data() ),
5967                        static_cast<VkPipelineStageFlags>( srcStageMask ),
5968                        static_cast<VkPipelineStageFlags>( dstStageMask ),
5969                        memoryBarriers.size(),
5970                        reinterpret_cast<const VkMemoryBarrier *>( memoryBarriers.data() ),
5971                        bufferMemoryBarriers.size(),
5972                        reinterpret_cast<const VkBufferMemoryBarrier *>( bufferMemoryBarriers.data() ),
5973                        imageMemoryBarriers.size(),
5974                        reinterpret_cast<const VkImageMemoryBarrier *>( imageMemoryBarriers.data() ) );
5975   }
5976 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
5977 
5978   // wrapper function for command vkCmdPipelineBarrier, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPipelineBarrier.html
5979   template <typename Dispatch>
pipelineBarrier(VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask,VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask,VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags,uint32_t memoryBarrierCount,const VULKAN_HPP_NAMESPACE::MemoryBarrier * pMemoryBarriers,uint32_t bufferMemoryBarrierCount,const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier * pBufferMemoryBarriers,uint32_t imageMemoryBarrierCount,const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier * pImageMemoryBarriers,Dispatch const & d) const5980   VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags          srcStageMask,
5981                                                          VULKAN_HPP_NAMESPACE::PipelineStageFlags          dstStageMask,
5982                                                          VULKAN_HPP_NAMESPACE::DependencyFlags             dependencyFlags,
5983                                                          uint32_t                                          memoryBarrierCount,
5984                                                          const VULKAN_HPP_NAMESPACE::MemoryBarrier *       pMemoryBarriers,
5985                                                          uint32_t                                          bufferMemoryBarrierCount,
5986                                                          const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier * pBufferMemoryBarriers,
5987                                                          uint32_t                                          imageMemoryBarrierCount,
5988                                                          const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier *  pImageMemoryBarriers,
5989                                                          Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
5990   {
5991     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
5992     d.vkCmdPipelineBarrier( static_cast<VkCommandBuffer>( m_commandBuffer ),
5993                             static_cast<VkPipelineStageFlags>( srcStageMask ),
5994                             static_cast<VkPipelineStageFlags>( dstStageMask ),
5995                             static_cast<VkDependencyFlags>( dependencyFlags ),
5996                             memoryBarrierCount,
5997                             reinterpret_cast<const VkMemoryBarrier *>( pMemoryBarriers ),
5998                             bufferMemoryBarrierCount,
5999                             reinterpret_cast<const VkBufferMemoryBarrier *>( pBufferMemoryBarriers ),
6000                             imageMemoryBarrierCount,
6001                             reinterpret_cast<const VkImageMemoryBarrier *>( pImageMemoryBarriers ) );
6002   }
6003 
6004 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
6005   // wrapper function for command vkCmdPipelineBarrier, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPipelineBarrier.html
6006   template <typename Dispatch>
6007   VULKAN_HPP_INLINE void
pipelineBarrier(VULKAN_HPP_NAMESPACE::PipelineStageFlags srcStageMask,VULKAN_HPP_NAMESPACE::PipelineStageFlags dstStageMask,VULKAN_HPP_NAMESPACE::DependencyFlags dependencyFlags,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const & memoryBarriers,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const & imageMemoryBarriers,Dispatch const & d) const6008     CommandBuffer::pipelineBarrier( VULKAN_HPP_NAMESPACE::PipelineStageFlags                                                  srcStageMask,
6009                                     VULKAN_HPP_NAMESPACE::PipelineStageFlags                                                  dstStageMask,
6010                                     VULKAN_HPP_NAMESPACE::DependencyFlags                                                     dependencyFlags,
6011                                     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MemoryBarrier> const &       memoryBarriers,
6012                                     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BufferMemoryBarrier> const & bufferMemoryBarriers,
6013                                     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageMemoryBarrier> const &  imageMemoryBarriers,
6014                                     Dispatch const &                                                                          d ) const VULKAN_HPP_NOEXCEPT
6015   {
6016     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6017 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6018     VULKAN_HPP_ASSERT( d.vkCmdPipelineBarrier && "Function <vkCmdPipelineBarrier> requires <VK_VERSION_1_0>" );
6019 #  endif
6020 
6021     d.vkCmdPipelineBarrier( m_commandBuffer,
6022                             static_cast<VkPipelineStageFlags>( srcStageMask ),
6023                             static_cast<VkPipelineStageFlags>( dstStageMask ),
6024                             static_cast<VkDependencyFlags>( dependencyFlags ),
6025                             memoryBarriers.size(),
6026                             reinterpret_cast<const VkMemoryBarrier *>( memoryBarriers.data() ),
6027                             bufferMemoryBarriers.size(),
6028                             reinterpret_cast<const VkBufferMemoryBarrier *>( bufferMemoryBarriers.data() ),
6029                             imageMemoryBarriers.size(),
6030                             reinterpret_cast<const VkImageMemoryBarrier *>( imageMemoryBarriers.data() ) );
6031   }
6032 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
6033 
6034   // wrapper function for command vkCmdBeginQuery, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginQuery.html
6035   template <typename Dispatch>
beginQuery(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,VULKAN_HPP_NAMESPACE::QueryControlFlags flags,Dispatch const & d) const6036   VULKAN_HPP_INLINE void CommandBuffer::beginQuery( VULKAN_HPP_NAMESPACE::QueryPool         queryPool,
6037                                                     uint32_t                                query,
6038                                                     VULKAN_HPP_NAMESPACE::QueryControlFlags flags,
6039                                                     Dispatch const &                        d ) const VULKAN_HPP_NOEXCEPT
6040   {
6041     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6042     d.vkCmdBeginQuery(
6043       static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ) );
6044   }
6045 
6046   // wrapper function for command vkCmdEndQuery, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndQuery.html
6047   template <typename Dispatch>
endQuery(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,Dispatch const & d) const6048   VULKAN_HPP_INLINE void CommandBuffer::endQuery( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
6049   {
6050     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6051     d.vkCmdEndQuery( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkQueryPool>( queryPool ), query );
6052   }
6053 
6054   // wrapper function for command vkCmdResetQueryPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdResetQueryPool.html
6055   template <typename Dispatch>
resetQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const6056   VULKAN_HPP_INLINE void CommandBuffer::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool,
6057                                                         uint32_t                        firstQuery,
6058                                                         uint32_t                        queryCount,
6059                                                         Dispatch const &                d ) const VULKAN_HPP_NOEXCEPT
6060   {
6061     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6062     d.vkCmdResetQueryPool( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
6063   }
6064 
6065   // wrapper function for command vkCmdWriteTimestamp, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWriteTimestamp.html
6066   template <typename Dispatch>
writeTimestamp(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,Dispatch const & d) const6067   VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage,
6068                                                         VULKAN_HPP_NAMESPACE::QueryPool             queryPool,
6069                                                         uint32_t                                    query,
6070                                                         Dispatch const &                            d ) const VULKAN_HPP_NOEXCEPT
6071   {
6072     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6073     d.vkCmdWriteTimestamp(
6074       static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPipelineStageFlagBits>( pipelineStage ), static_cast<VkQueryPool>( queryPool ), query );
6075   }
6076 
6077   // wrapper function for command vkCmdCopyQueryPoolResults, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyQueryPoolResults.html
6078   template <typename Dispatch>
copyQueryPoolResults(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,VULKAN_HPP_NAMESPACE::DeviceSize stride,VULKAN_HPP_NAMESPACE::QueryResultFlags flags,Dispatch const & d) const6079   VULKAN_HPP_INLINE void CommandBuffer::copyQueryPoolResults( VULKAN_HPP_NAMESPACE::QueryPool        queryPool,
6080                                                               uint32_t                               firstQuery,
6081                                                               uint32_t                               queryCount,
6082                                                               VULKAN_HPP_NAMESPACE::Buffer           dstBuffer,
6083                                                               VULKAN_HPP_NAMESPACE::DeviceSize       dstOffset,
6084                                                               VULKAN_HPP_NAMESPACE::DeviceSize       stride,
6085                                                               VULKAN_HPP_NAMESPACE::QueryResultFlags flags,
6086                                                               Dispatch const &                       d ) const VULKAN_HPP_NOEXCEPT
6087   {
6088     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6089     d.vkCmdCopyQueryPoolResults( static_cast<VkCommandBuffer>( m_commandBuffer ),
6090                                  static_cast<VkQueryPool>( queryPool ),
6091                                  firstQuery,
6092                                  queryCount,
6093                                  static_cast<VkBuffer>( dstBuffer ),
6094                                  static_cast<VkDeviceSize>( dstOffset ),
6095                                  static_cast<VkDeviceSize>( stride ),
6096                                  static_cast<VkQueryResultFlags>( flags ) );
6097   }
6098 
6099   // wrapper function for command vkCmdPushConstants, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushConstants.html
6100   template <typename Dispatch>
pushConstants(VULKAN_HPP_NAMESPACE::PipelineLayout layout,VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags,uint32_t offset,uint32_t size,const void * pValues,Dispatch const & d) const6101   VULKAN_HPP_INLINE void CommandBuffer::pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout   layout,
6102                                                        VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags,
6103                                                        uint32_t                               offset,
6104                                                        uint32_t                               size,
6105                                                        const void *                           pValues,
6106                                                        Dispatch const &                       d ) const VULKAN_HPP_NOEXCEPT
6107   {
6108     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6109     d.vkCmdPushConstants( static_cast<VkCommandBuffer>( m_commandBuffer ),
6110                           static_cast<VkPipelineLayout>( layout ),
6111                           static_cast<VkShaderStageFlags>( stageFlags ),
6112                           offset,
6113                           size,
6114                           pValues );
6115   }
6116 
6117 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
6118   // wrapper function for command vkCmdPushConstants, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushConstants.html
6119   template <typename ValuesType, typename Dispatch>
pushConstants(VULKAN_HPP_NAMESPACE::PipelineLayout layout,VULKAN_HPP_NAMESPACE::ShaderStageFlags stageFlags,uint32_t offset,VULKAN_HPP_NAMESPACE::ArrayProxy<const ValuesType> const & values,Dispatch const & d) const6120   VULKAN_HPP_INLINE void CommandBuffer::pushConstants( VULKAN_HPP_NAMESPACE::PipelineLayout                       layout,
6121                                                        VULKAN_HPP_NAMESPACE::ShaderStageFlags                     stageFlags,
6122                                                        uint32_t                                                   offset,
6123                                                        VULKAN_HPP_NAMESPACE::ArrayProxy<const ValuesType> const & values,
6124                                                        Dispatch const &                                           d ) const VULKAN_HPP_NOEXCEPT
6125   {
6126     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6127 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6128     VULKAN_HPP_ASSERT( d.vkCmdPushConstants && "Function <vkCmdPushConstants> requires <VK_VERSION_1_0>" );
6129 #  endif
6130 
6131     d.vkCmdPushConstants( m_commandBuffer,
6132                           static_cast<VkPipelineLayout>( layout ),
6133                           static_cast<VkShaderStageFlags>( stageFlags ),
6134                           offset,
6135                           values.size() * sizeof( ValuesType ),
6136                           reinterpret_cast<const void *>( values.data() ) );
6137   }
6138 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
6139 
6140   // wrapper function for command vkCmdBeginRenderPass, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginRenderPass.html
6141   template <typename Dispatch>
beginRenderPass(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin,VULKAN_HPP_NAMESPACE::SubpassContents contents,Dispatch const & d) const6142   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin,
6143                                                          VULKAN_HPP_NAMESPACE::SubpassContents             contents,
6144                                                          Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
6145   {
6146     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6147     d.vkCmdBeginRenderPass( static_cast<VkCommandBuffer>( m_commandBuffer ),
6148                             reinterpret_cast<const VkRenderPassBeginInfo *>( pRenderPassBegin ),
6149                             static_cast<VkSubpassContents>( contents ) );
6150   }
6151 
6152 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
6153   // wrapper function for command vkCmdBeginRenderPass, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginRenderPass.html
6154   template <typename Dispatch>
beginRenderPass(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin,VULKAN_HPP_NAMESPACE::SubpassContents contents,Dispatch const & d) const6155   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin,
6156                                                          VULKAN_HPP_NAMESPACE::SubpassContents             contents,
6157                                                          Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
6158   {
6159     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6160 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6161     VULKAN_HPP_ASSERT( d.vkCmdBeginRenderPass && "Function <vkCmdBeginRenderPass> requires <VK_VERSION_1_0>" );
6162 #  endif
6163 
6164     d.vkCmdBeginRenderPass( m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ), static_cast<VkSubpassContents>( contents ) );
6165   }
6166 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
6167 
6168   // wrapper function for command vkCmdNextSubpass, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdNextSubpass.html
6169   template <typename Dispatch>
nextSubpass(VULKAN_HPP_NAMESPACE::SubpassContents contents,Dispatch const & d) const6170   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass( VULKAN_HPP_NAMESPACE::SubpassContents contents, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
6171   {
6172     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6173     d.vkCmdNextSubpass( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkSubpassContents>( contents ) );
6174   }
6175 
6176   // wrapper function for command vkCmdEndRenderPass, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndRenderPass.html
6177   template <typename Dispatch>
endRenderPass(Dispatch const & d) const6178   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
6179   {
6180     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6181     d.vkCmdEndRenderPass( static_cast<VkCommandBuffer>( m_commandBuffer ) );
6182   }
6183 
6184   // wrapper function for command vkCmdExecuteCommands, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdExecuteCommands.html
6185   template <typename Dispatch>
executeCommands(uint32_t commandBufferCount,const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,Dispatch const & d) const6186   VULKAN_HPP_INLINE void CommandBuffer::executeCommands( uint32_t                                    commandBufferCount,
6187                                                          const VULKAN_HPP_NAMESPACE::CommandBuffer * pCommandBuffers,
6188                                                          Dispatch const &                            d ) const VULKAN_HPP_NOEXCEPT
6189   {
6190     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6191     d.vkCmdExecuteCommands( static_cast<VkCommandBuffer>( m_commandBuffer ), commandBufferCount, reinterpret_cast<const VkCommandBuffer *>( pCommandBuffers ) );
6192   }
6193 
6194 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
6195   // wrapper function for command vkCmdExecuteCommands, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdExecuteCommands.html
6196   template <typename Dispatch>
executeCommands(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers,Dispatch const & d) const6197   VULKAN_HPP_INLINE void CommandBuffer::executeCommands( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CommandBuffer> const & commandBuffers,
6198                                                          Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
6199   {
6200     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6201 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6202     VULKAN_HPP_ASSERT( d.vkCmdExecuteCommands && "Function <vkCmdExecuteCommands> requires <VK_VERSION_1_0>" );
6203 #  endif
6204 
6205     d.vkCmdExecuteCommands( m_commandBuffer, commandBuffers.size(), reinterpret_cast<const VkCommandBuffer *>( commandBuffers.data() ) );
6206   }
6207 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
6208 
6209   //=== VK_VERSION_1_1 ===
6210 
6211   // wrapper function for command vkEnumerateInstanceVersion, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateInstanceVersion.html
6212   template <typename Dispatch>
enumerateInstanceVersion(uint32_t * pApiVersion,Dispatch const & d)6213   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result enumerateInstanceVersion( uint32_t * pApiVersion, Dispatch const & d ) VULKAN_HPP_NOEXCEPT
6214   {
6215     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6216     return static_cast<Result>( d.vkEnumerateInstanceVersion( pApiVersion ) );
6217   }
6218 
6219 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
6220   // wrapper function for command vkEnumerateInstanceVersion, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumerateInstanceVersion.html
6221   template <typename Dispatch>
enumerateInstanceVersion(Dispatch const & d)6222   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<uint32_t>::type enumerateInstanceVersion( Dispatch const & d )
6223   {
6224     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6225 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6226     VULKAN_HPP_ASSERT( d.vkEnumerateInstanceVersion && "Function <vkEnumerateInstanceVersion> requires <VK_VERSION_1_1>" );
6227 #  endif
6228 
6229     uint32_t                     apiVersion;
6230     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumerateInstanceVersion( &apiVersion ) );
6231     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::enumerateInstanceVersion" );
6232 
6233     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( apiVersion ) );
6234   }
6235 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
6236 
6237   // wrapper function for command vkBindBufferMemory2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindBufferMemory2.html
6238   template <typename Dispatch>
bindBufferMemory2(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo * pBindInfos,Dispatch const & d) const6239   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindBufferMemory2( uint32_t                                           bindInfoCount,
6240                                                                            const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo * pBindInfos,
6241                                                                            Dispatch const &                                   d ) const VULKAN_HPP_NOEXCEPT
6242   {
6243     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6244     return static_cast<Result>(
6245       d.vkBindBufferMemory2( static_cast<VkDevice>( m_device ), bindInfoCount, reinterpret_cast<const VkBindBufferMemoryInfo *>( pBindInfos ) ) );
6246   }
6247 
6248 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
6249   // wrapper function for command vkBindBufferMemory2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindBufferMemory2.html
6250   template <typename Dispatch>
6251   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
bindBufferMemory2(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos,Dispatch const & d) const6252     Device::bindBufferMemory2( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos, Dispatch const & d ) const
6253   {
6254     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6255 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6256     VULKAN_HPP_ASSERT( d.vkBindBufferMemory2 && "Function <vkBindBufferMemory2> requires <VK_KHR_bind_memory2> or <VK_VERSION_1_1>" );
6257 #  endif
6258 
6259     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
6260       d.vkBindBufferMemory2( m_device, bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) ) );
6261     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2" );
6262 
6263     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
6264   }
6265 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
6266 
6267   // wrapper function for command vkBindImageMemory2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindImageMemory2.html
6268   template <typename Dispatch>
bindImageMemory2(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo * pBindInfos,Dispatch const & d) const6269   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindImageMemory2( uint32_t                                          bindInfoCount,
6270                                                                           const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo * pBindInfos,
6271                                                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
6272   {
6273     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6274     return static_cast<Result>(
6275       d.vkBindImageMemory2( static_cast<VkDevice>( m_device ), bindInfoCount, reinterpret_cast<const VkBindImageMemoryInfo *>( pBindInfos ) ) );
6276   }
6277 
6278 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
6279   // wrapper function for command vkBindImageMemory2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindImageMemory2.html
6280   template <typename Dispatch>
6281   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
bindImageMemory2(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos,Dispatch const & d) const6282     Device::bindImageMemory2( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos, Dispatch const & d ) const
6283   {
6284     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6285 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6286     VULKAN_HPP_ASSERT( d.vkBindImageMemory2 && "Function <vkBindImageMemory2> requires <VK_KHR_bind_memory2> or <VK_VERSION_1_1>" );
6287 #  endif
6288 
6289     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
6290       d.vkBindImageMemory2( m_device, bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) ) );
6291     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2" );
6292 
6293     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
6294   }
6295 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
6296 
6297   // wrapper function for command vkGetDeviceGroupPeerMemoryFeatures, see
6298   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceGroupPeerMemoryFeatures.html
6299   template <typename Dispatch>
getGroupPeerMemoryFeatures(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags * pPeerMemoryFeatures,Dispatch const & d) const6300   VULKAN_HPP_INLINE void Device::getGroupPeerMemoryFeatures( uint32_t                                       heapIndex,
6301                                                              uint32_t                                       localDeviceIndex,
6302                                                              uint32_t                                       remoteDeviceIndex,
6303                                                              VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags * pPeerMemoryFeatures,
6304                                                              Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
6305   {
6306     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6307     d.vkGetDeviceGroupPeerMemoryFeatures(
6308       static_cast<VkDevice>( m_device ), heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags *>( pPeerMemoryFeatures ) );
6309   }
6310 
6311 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
6312   // wrapper function for command vkGetDeviceGroupPeerMemoryFeatures, see
6313   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceGroupPeerMemoryFeatures.html
6314   template <typename Dispatch>
getGroupPeerMemoryFeatures(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,Dispatch const & d) const6315   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags Device::getGroupPeerMemoryFeatures(
6316     uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
6317   {
6318     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6319 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6320     VULKAN_HPP_ASSERT( d.vkGetDeviceGroupPeerMemoryFeatures &&
6321                        "Function <vkGetDeviceGroupPeerMemoryFeatures> requires <VK_KHR_device_group> or <VK_VERSION_1_1>" );
6322 #  endif
6323 
6324     VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures;
6325     d.vkGetDeviceGroupPeerMemoryFeatures(
6326       m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags *>( &peerMemoryFeatures ) );
6327 
6328     return peerMemoryFeatures;
6329   }
6330 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
6331 
6332   // wrapper function for command vkCmdSetDeviceMask, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDeviceMask.html
6333   template <typename Dispatch>
setDeviceMask(uint32_t deviceMask,Dispatch const & d) const6334   VULKAN_HPP_INLINE void CommandBuffer::setDeviceMask( uint32_t deviceMask, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
6335   {
6336     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6337     d.vkCmdSetDeviceMask( static_cast<VkCommandBuffer>( m_commandBuffer ), deviceMask );
6338   }
6339 
6340   // wrapper function for command vkCmdDispatchBase, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDispatchBase.html
6341   template <typename Dispatch>
dispatchBase(uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ,Dispatch const & d) const6342   VULKAN_HPP_INLINE void CommandBuffer::dispatchBase( uint32_t         baseGroupX,
6343                                                       uint32_t         baseGroupY,
6344                                                       uint32_t         baseGroupZ,
6345                                                       uint32_t         groupCountX,
6346                                                       uint32_t         groupCountY,
6347                                                       uint32_t         groupCountZ,
6348                                                       Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
6349   {
6350     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6351     d.vkCmdDispatchBase( static_cast<VkCommandBuffer>( m_commandBuffer ), baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
6352   }
6353 
6354   // wrapper function for command vkEnumeratePhysicalDeviceGroups, see
6355   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDeviceGroups.html
6356   template <typename Dispatch>
6357   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
enumeratePhysicalDeviceGroups(uint32_t * pPhysicalDeviceGroupCount,VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties,Dispatch const & d) const6358     Instance::enumeratePhysicalDeviceGroups( uint32_t *                                            pPhysicalDeviceGroupCount,
6359                                              VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties,
6360                                              Dispatch const &                                      d ) const VULKAN_HPP_NOEXCEPT
6361   {
6362     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6363     return static_cast<Result>( d.vkEnumeratePhysicalDeviceGroups( static_cast<VkInstance>( m_instance ),
6364                                                                    pPhysicalDeviceGroupCount,
6365                                                                    reinterpret_cast<VkPhysicalDeviceGroupProperties *>( pPhysicalDeviceGroupProperties ) ) );
6366   }
6367 
6368 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
6369   // wrapper function for command vkEnumeratePhysicalDeviceGroups, see
6370   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDeviceGroups.html
6371   template <typename PhysicalDeviceGroupPropertiesAllocator,
6372             typename Dispatch,
6373             typename std::enable_if<
6374               std::is_same<typename PhysicalDeviceGroupPropertiesAllocator::value_type, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties>::value,
6375               int>::type>
6376   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
6377     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type
enumeratePhysicalDeviceGroups(Dispatch const & d) const6378     Instance::enumeratePhysicalDeviceGroups( Dispatch const & d ) const
6379   {
6380     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6381 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6382     VULKAN_HPP_ASSERT( d.vkEnumeratePhysicalDeviceGroups &&
6383                        "Function <vkEnumeratePhysicalDeviceGroups> requires <VK_KHR_device_group_creation> or <VK_VERSION_1_1>" );
6384 #  endif
6385 
6386     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator> physicalDeviceGroupProperties;
6387     uint32_t                                                                                                 physicalDeviceGroupCount;
6388     VULKAN_HPP_NAMESPACE::Result                                                                             result;
6389     do
6390     {
6391       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) );
6392       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceGroupCount )
6393       {
6394         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
6395         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDeviceGroups(
6396           m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) ) );
6397       }
6398     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
6399     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroups" );
6400     VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
6401     if ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() )
6402     {
6403       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
6404     }
6405     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( physicalDeviceGroupProperties ) );
6406   }
6407 
6408   // wrapper function for command vkEnumeratePhysicalDeviceGroups, see
6409   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDeviceGroups.html
6410   template <typename PhysicalDeviceGroupPropertiesAllocator,
6411             typename Dispatch,
6412             typename std::enable_if<
6413               std::is_same<typename PhysicalDeviceGroupPropertiesAllocator::value_type, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties>::value,
6414               int>::type>
6415   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
6416     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type
enumeratePhysicalDeviceGroups(PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator,Dispatch const & d) const6417     Instance::enumeratePhysicalDeviceGroups( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d ) const
6418   {
6419     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6420 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6421     VULKAN_HPP_ASSERT( d.vkEnumeratePhysicalDeviceGroups &&
6422                        "Function <vkEnumeratePhysicalDeviceGroups> requires <VK_KHR_device_group_creation> or <VK_VERSION_1_1>" );
6423 #  endif
6424 
6425     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator> physicalDeviceGroupProperties(
6426       physicalDeviceGroupPropertiesAllocator );
6427     uint32_t                     physicalDeviceGroupCount;
6428     VULKAN_HPP_NAMESPACE::Result result;
6429     do
6430     {
6431       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDeviceGroups( m_instance, &physicalDeviceGroupCount, nullptr ) );
6432       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceGroupCount )
6433       {
6434         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
6435         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDeviceGroups(
6436           m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) ) );
6437       }
6438     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
6439     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroups" );
6440     VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
6441     if ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() )
6442     {
6443       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
6444     }
6445     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( physicalDeviceGroupProperties ) );
6446   }
6447 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
6448 
6449   // wrapper function for command vkGetImageMemoryRequirements2, see
6450   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageMemoryRequirements2.html
6451   template <typename Dispatch>
getImageMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const6452   VULKAN_HPP_INLINE void Device::getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 * pInfo,
6453                                                               VULKAN_HPP_NAMESPACE::MemoryRequirements2 *                pMemoryRequirements,
6454                                                               Dispatch const &                                           d ) const VULKAN_HPP_NOEXCEPT
6455   {
6456     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6457     d.vkGetImageMemoryRequirements2( static_cast<VkDevice>( m_device ),
6458                                      reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( pInfo ),
6459                                      reinterpret_cast<VkMemoryRequirements2 *>( pMemoryRequirements ) );
6460   }
6461 
6462 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
6463   // wrapper function for command vkGetImageMemoryRequirements2, see
6464   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageMemoryRequirements2.html
6465   template <typename Dispatch>
6466   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
getImageMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const6467     Device::getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
6468   {
6469     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6470 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6471     VULKAN_HPP_ASSERT( d.vkGetImageMemoryRequirements2 &&
6472                        "Function <vkGetImageMemoryRequirements2> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" );
6473 #  endif
6474 
6475     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
6476     d.vkGetImageMemoryRequirements2(
6477       m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
6478 
6479     return memoryRequirements;
6480   }
6481 
6482   // wrapper function for command vkGetImageMemoryRequirements2, see
6483   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageMemoryRequirements2.html
6484   template <typename X, typename Y, typename... Z, typename Dispatch>
6485   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getImageMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const6486     Device::getImageMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
6487   {
6488     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6489 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6490     VULKAN_HPP_ASSERT( d.vkGetImageMemoryRequirements2 &&
6491                        "Function <vkGetImageMemoryRequirements2> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" );
6492 #  endif
6493 
6494     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
6495     VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
6496     d.vkGetImageMemoryRequirements2(
6497       m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
6498 
6499     return structureChain;
6500   }
6501 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
6502 
6503   // wrapper function for command vkGetBufferMemoryRequirements2, see
6504   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferMemoryRequirements2.html
6505   template <typename Dispatch>
getBufferMemoryRequirements2(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const6506   VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 * pInfo,
6507                                                                VULKAN_HPP_NAMESPACE::MemoryRequirements2 *                 pMemoryRequirements,
6508                                                                Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
6509   {
6510     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6511     d.vkGetBufferMemoryRequirements2( static_cast<VkDevice>( m_device ),
6512                                       reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( pInfo ),
6513                                       reinterpret_cast<VkMemoryRequirements2 *>( pMemoryRequirements ) );
6514   }
6515 
6516 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
6517   // wrapper function for command vkGetBufferMemoryRequirements2, see
6518   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferMemoryRequirements2.html
6519   template <typename Dispatch>
6520   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
getBufferMemoryRequirements2(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const6521     Device::getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
6522   {
6523     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6524 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6525     VULKAN_HPP_ASSERT( d.vkGetBufferMemoryRequirements2 &&
6526                        "Function <vkGetBufferMemoryRequirements2> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" );
6527 #  endif
6528 
6529     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
6530     d.vkGetBufferMemoryRequirements2(
6531       m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
6532 
6533     return memoryRequirements;
6534   }
6535 
6536   // wrapper function for command vkGetBufferMemoryRequirements2, see
6537   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferMemoryRequirements2.html
6538   template <typename X, typename Y, typename... Z, typename Dispatch>
6539   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getBufferMemoryRequirements2(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const6540     Device::getBufferMemoryRequirements2( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
6541   {
6542     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6543 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6544     VULKAN_HPP_ASSERT( d.vkGetBufferMemoryRequirements2 &&
6545                        "Function <vkGetBufferMemoryRequirements2> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" );
6546 #  endif
6547 
6548     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
6549     VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
6550     d.vkGetBufferMemoryRequirements2(
6551       m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
6552 
6553     return structureChain;
6554   }
6555 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
6556 
6557   // wrapper function for command vkGetImageSparseMemoryRequirements2, see
6558   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSparseMemoryRequirements2.html
6559   template <typename Dispatch>
getImageSparseMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 * pSparseMemoryRequirements,Dispatch const & d) const6560   VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 * pInfo,
6561                                                                     uint32_t *                                             pSparseMemoryRequirementCount,
6562                                                                     VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 * pSparseMemoryRequirements,
6563                                                                     Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
6564   {
6565     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6566     d.vkGetImageSparseMemoryRequirements2( static_cast<VkDevice>( m_device ),
6567                                            reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( pInfo ),
6568                                            pSparseMemoryRequirementCount,
6569                                            reinterpret_cast<VkSparseImageMemoryRequirements2 *>( pSparseMemoryRequirements ) );
6570   }
6571 
6572 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
6573   // wrapper function for command vkGetImageSparseMemoryRequirements2, see
6574   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSparseMemoryRequirements2.html
6575   template <typename SparseImageMemoryRequirements2Allocator,
6576             typename Dispatch,
6577             typename std::enable_if<
6578               std::is_same<typename SparseImageMemoryRequirements2Allocator::value_type, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>::value,
6579               int>::type>
6580   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator>
getImageSparseMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info,Dispatch const & d) const6581     Device::getImageSparseMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d ) const
6582   {
6583     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6584 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6585     VULKAN_HPP_ASSERT( d.vkGetImageSparseMemoryRequirements2 &&
6586                        "Function <vkGetImageSparseMemoryRequirements2> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" );
6587 #  endif
6588 
6589     std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements;
6590     uint32_t                                                                                                   sparseMemoryRequirementCount;
6591     d.vkGetImageSparseMemoryRequirements2(
6592       m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, nullptr );
6593     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
6594     d.vkGetImageSparseMemoryRequirements2( m_device,
6595                                            reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ),
6596                                            &sparseMemoryRequirementCount,
6597                                            reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
6598 
6599     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
6600     if ( sparseMemoryRequirementCount < sparseMemoryRequirements.size() )
6601     {
6602       sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
6603     }
6604     return sparseMemoryRequirements;
6605   }
6606 
6607   // wrapper function for command vkGetImageSparseMemoryRequirements2, see
6608   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSparseMemoryRequirements2.html
6609   template <typename SparseImageMemoryRequirements2Allocator,
6610             typename Dispatch,
6611             typename std::enable_if<
6612               std::is_same<typename SparseImageMemoryRequirements2Allocator::value_type, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>::value,
6613               int>::type>
6614   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator>
getImageSparseMemoryRequirements2(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info,SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator,Dispatch const & d) const6615                                          Device::getImageSparseMemoryRequirements2( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info,
6616                                                SparseImageMemoryRequirements2Allocator &                        sparseImageMemoryRequirements2Allocator,
6617                                                Dispatch const &                                                 d ) const
6618   {
6619     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6620 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6621     VULKAN_HPP_ASSERT( d.vkGetImageSparseMemoryRequirements2 &&
6622                        "Function <vkGetImageSparseMemoryRequirements2> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" );
6623 #  endif
6624 
6625     std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements(
6626       sparseImageMemoryRequirements2Allocator );
6627     uint32_t sparseMemoryRequirementCount;
6628     d.vkGetImageSparseMemoryRequirements2(
6629       m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, nullptr );
6630     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
6631     d.vkGetImageSparseMemoryRequirements2( m_device,
6632                                            reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ),
6633                                            &sparseMemoryRequirementCount,
6634                                            reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
6635 
6636     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
6637     if ( sparseMemoryRequirementCount < sparseMemoryRequirements.size() )
6638     {
6639       sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
6640     }
6641     return sparseMemoryRequirements;
6642   }
6643 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
6644 
6645   // wrapper function for command vkGetPhysicalDeviceFeatures2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFeatures2.html
6646   template <typename Dispatch>
getFeatures2(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 * pFeatures,Dispatch const & d) const6647   VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 * pFeatures, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
6648   {
6649     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6650     d.vkGetPhysicalDeviceFeatures2( static_cast<VkPhysicalDevice>( m_physicalDevice ), reinterpret_cast<VkPhysicalDeviceFeatures2 *>( pFeatures ) );
6651   }
6652 
6653 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
6654   // wrapper function for command vkGetPhysicalDeviceFeatures2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFeatures2.html
6655   template <typename Dispatch>
6656   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2
getFeatures2(Dispatch const & d) const6657                                          PhysicalDevice::getFeatures2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
6658   {
6659     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6660 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6661     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceFeatures2 &&
6662                        "Function <vkGetPhysicalDeviceFeatures2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
6663 #  endif
6664 
6665     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features;
6666     d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) );
6667 
6668     return features;
6669   }
6670 
6671   // wrapper function for command vkGetPhysicalDeviceFeatures2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFeatures2.html
6672   template <typename X, typename Y, typename... Z, typename Dispatch>
6673   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getFeatures2(Dispatch const & d) const6674                                          PhysicalDevice::getFeatures2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
6675   {
6676     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6677 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6678     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceFeatures2 &&
6679                        "Function <vkGetPhysicalDeviceFeatures2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
6680 #  endif
6681 
6682     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
6683     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 &  features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
6684     d.vkGetPhysicalDeviceFeatures2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) );
6685 
6686     return structureChain;
6687   }
6688 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
6689 
6690   // wrapper function for command vkGetPhysicalDeviceProperties2, see
6691   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceProperties2.html
6692   template <typename Dispatch>
getProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 * pProperties,Dispatch const & d) const6693   VULKAN_HPP_INLINE void PhysicalDevice::getProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 * pProperties,
6694                                                          Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
6695   {
6696     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6697     d.vkGetPhysicalDeviceProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ), reinterpret_cast<VkPhysicalDeviceProperties2 *>( pProperties ) );
6698   }
6699 
6700 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
6701   // wrapper function for command vkGetPhysicalDeviceProperties2, see
6702   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceProperties2.html
6703   template <typename Dispatch>
6704   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2
getProperties2(Dispatch const & d) const6705                                          PhysicalDevice::getProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
6706   {
6707     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6708 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6709     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceProperties2 &&
6710                        "Function <vkGetPhysicalDeviceProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
6711 #  endif
6712 
6713     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties;
6714     d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) );
6715 
6716     return properties;
6717   }
6718 
6719   // wrapper function for command vkGetPhysicalDeviceProperties2, see
6720   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceProperties2.html
6721   template <typename X, typename Y, typename... Z, typename Dispatch>
6722   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getProperties2(Dispatch const & d) const6723                                          PhysicalDevice::getProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
6724   {
6725     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6726 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6727     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceProperties2 &&
6728                        "Function <vkGetPhysicalDeviceProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
6729 #  endif
6730 
6731     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>  structureChain;
6732     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>();
6733     d.vkGetPhysicalDeviceProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) );
6734 
6735     return structureChain;
6736   }
6737 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
6738 
6739   // wrapper function for command vkGetPhysicalDeviceFormatProperties2, see
6740   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFormatProperties2.html
6741   template <typename Dispatch>
getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::FormatProperties2 * pFormatProperties,Dispatch const & d) const6742   VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format              format,
6743                                                                VULKAN_HPP_NAMESPACE::FormatProperties2 * pFormatProperties,
6744                                                                Dispatch const &                          d ) const VULKAN_HPP_NOEXCEPT
6745   {
6746     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6747     d.vkGetPhysicalDeviceFormatProperties2(
6748       static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( pFormatProperties ) );
6749   }
6750 
6751 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
6752   // wrapper function for command vkGetPhysicalDeviceFormatProperties2, see
6753   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFormatProperties2.html
6754   template <typename Dispatch>
6755   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2
getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const6756     PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
6757   {
6758     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6759 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6760     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceFormatProperties2 &&
6761                        "Function <vkGetPhysicalDeviceFormatProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
6762 #  endif
6763 
6764     VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties;
6765     d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) );
6766 
6767     return formatProperties;
6768   }
6769 
6770   // wrapper function for command vkGetPhysicalDeviceFormatProperties2, see
6771   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFormatProperties2.html
6772   template <typename X, typename Y, typename... Z, typename Dispatch>
6773   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getFormatProperties2(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const6774     PhysicalDevice::getFormatProperties2( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
6775   {
6776     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6777 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6778     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceFormatProperties2 &&
6779                        "Function <vkGetPhysicalDeviceFormatProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
6780 #  endif
6781 
6782     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
6783     VULKAN_HPP_NAMESPACE::FormatProperties2 &        formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
6784     d.vkGetPhysicalDeviceFormatProperties2( m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) );
6785 
6786     return structureChain;
6787   }
6788 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
6789 
6790   // wrapper function for command vkGetPhysicalDeviceImageFormatProperties2, see
6791   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceImageFormatProperties2.html
6792   template <typename Dispatch>
6793   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VULKAN_HPP_NAMESPACE::ImageFormatProperties2 * pImageFormatProperties,Dispatch const & d) const6794     PhysicalDevice::getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 * pImageFormatInfo,
6795                                                VULKAN_HPP_NAMESPACE::ImageFormatProperties2 *               pImageFormatProperties,
6796                                                Dispatch const &                                             d ) const VULKAN_HPP_NOEXCEPT
6797   {
6798     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6799     return static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ),
6800                                                                              reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( pImageFormatInfo ),
6801                                                                              reinterpret_cast<VkImageFormatProperties2 *>( pImageFormatProperties ) ) );
6802   }
6803 
6804 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
6805   // wrapper function for command vkGetPhysicalDeviceImageFormatProperties2, see
6806   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceImageFormatProperties2.html
6807   template <typename Dispatch>
6808   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>::type
getImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const6809     PhysicalDevice::getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d ) const
6810   {
6811     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6812 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6813     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceImageFormatProperties2 &&
6814                        "Function <vkGetPhysicalDeviceImageFormatProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
6815 #  endif
6816 
6817     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties;
6818     VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
6819       d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice,
6820                                                    reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ),
6821                                                    reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
6822     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" );
6823 
6824     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( imageFormatProperties ) );
6825   }
6826 
6827   // wrapper function for command vkGetPhysicalDeviceImageFormatProperties2, see
6828   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceImageFormatProperties2.html
6829   template <typename X, typename Y, typename... Z, typename Dispatch>
6830   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>>::type
getImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const6831     PhysicalDevice::getImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d ) const
6832   {
6833     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6834 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6835     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceImageFormatProperties2 &&
6836                        "Function <vkGetPhysicalDeviceImageFormatProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
6837 #  endif
6838 
6839     StructureChain<X, Y, Z...>                     structureChain;
6840     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>();
6841     VULKAN_HPP_NAMESPACE::Result                   result                = static_cast<VULKAN_HPP_NAMESPACE::Result>(
6842       d.vkGetPhysicalDeviceImageFormatProperties2( m_physicalDevice,
6843                                                    reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ),
6844                                                    reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
6845     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2" );
6846 
6847     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( structureChain ) );
6848   }
6849 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
6850 
6851   // wrapper function for command vkGetPhysicalDeviceQueueFamilyProperties2, see
6852   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyProperties2.html
6853   template <typename Dispatch>
getQueueFamilyProperties2(uint32_t * pQueueFamilyPropertyCount,VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 * pQueueFamilyProperties,Dispatch const & d) const6854   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties2( uint32_t *                                     pQueueFamilyPropertyCount,
6855                                                                     VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 * pQueueFamilyProperties,
6856                                                                     Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
6857   {
6858     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6859     d.vkGetPhysicalDeviceQueueFamilyProperties2(
6860       static_cast<VkPhysicalDevice>( m_physicalDevice ), pQueueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( pQueueFamilyProperties ) );
6861   }
6862 
6863 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
6864   // wrapper function for command vkGetPhysicalDeviceQueueFamilyProperties2, see
6865   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyProperties2.html
6866   template <
6867     typename QueueFamilyProperties2Allocator,
6868     typename Dispatch,
6869     typename std::enable_if<std::is_same<typename QueueFamilyProperties2Allocator::value_type, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>::value, int>::type>
6870   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2, QueueFamilyProperties2Allocator>
getQueueFamilyProperties2(Dispatch const & d) const6871                                          PhysicalDevice::getQueueFamilyProperties2( Dispatch const & d ) const
6872   {
6873     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6874 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6875     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceQueueFamilyProperties2 &&
6876                        "Function <vkGetPhysicalDeviceQueueFamilyProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
6877 #  endif
6878 
6879     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2, QueueFamilyProperties2Allocator> queueFamilyProperties;
6880     uint32_t                                                                                   queueFamilyPropertyCount;
6881     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
6882     queueFamilyProperties.resize( queueFamilyPropertyCount );
6883     d.vkGetPhysicalDeviceQueueFamilyProperties2(
6884       m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
6885 
6886     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
6887     if ( queueFamilyPropertyCount < queueFamilyProperties.size() )
6888     {
6889       queueFamilyProperties.resize( queueFamilyPropertyCount );
6890     }
6891     return queueFamilyProperties;
6892   }
6893 
6894   // wrapper function for command vkGetPhysicalDeviceQueueFamilyProperties2, see
6895   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyProperties2.html
6896   template <
6897     typename QueueFamilyProperties2Allocator,
6898     typename Dispatch,
6899     typename std::enable_if<std::is_same<typename QueueFamilyProperties2Allocator::value_type, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>::value, int>::type>
6900   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2, QueueFamilyProperties2Allocator>
getQueueFamilyProperties2(QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator,Dispatch const & d) const6901     PhysicalDevice::getQueueFamilyProperties2( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, Dispatch const & d ) const
6902   {
6903     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6904 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6905     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceQueueFamilyProperties2 &&
6906                        "Function <vkGetPhysicalDeviceQueueFamilyProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
6907 #  endif
6908 
6909     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2, QueueFamilyProperties2Allocator> queueFamilyProperties( queueFamilyProperties2Allocator );
6910     uint32_t                                                                                   queueFamilyPropertyCount;
6911     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
6912     queueFamilyProperties.resize( queueFamilyPropertyCount );
6913     d.vkGetPhysicalDeviceQueueFamilyProperties2(
6914       m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
6915 
6916     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
6917     if ( queueFamilyPropertyCount < queueFamilyProperties.size() )
6918     {
6919       queueFamilyProperties.resize( queueFamilyPropertyCount );
6920     }
6921     return queueFamilyProperties;
6922   }
6923 
6924   // wrapper function for command vkGetPhysicalDeviceQueueFamilyProperties2, see
6925   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyProperties2.html
6926   template <typename StructureChain,
6927             typename StructureChainAllocator,
6928             typename Dispatch,
6929             typename std::enable_if<std::is_same<typename StructureChainAllocator::value_type, StructureChain>::value, int>::type>
6930   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<StructureChain, StructureChainAllocator>
getQueueFamilyProperties2(Dispatch const & d) const6931                                          PhysicalDevice::getQueueFamilyProperties2( Dispatch const & d ) const
6932   {
6933     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6934 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6935     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceQueueFamilyProperties2 &&
6936                        "Function <vkGetPhysicalDeviceQueueFamilyProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
6937 #  endif
6938 
6939     std::vector<StructureChain, StructureChainAllocator>      structureChains;
6940     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties;
6941     uint32_t                                                  queueFamilyPropertyCount;
6942     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
6943     structureChains.resize( queueFamilyPropertyCount );
6944     queueFamilyProperties.resize( queueFamilyPropertyCount );
6945     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
6946     {
6947       queueFamilyProperties[i].pNext = structureChains[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
6948     }
6949     d.vkGetPhysicalDeviceQueueFamilyProperties2(
6950       m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
6951 
6952     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
6953     if ( queueFamilyPropertyCount < queueFamilyProperties.size() )
6954     {
6955       structureChains.resize( queueFamilyPropertyCount );
6956     }
6957     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
6958     {
6959       structureChains[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = queueFamilyProperties[i];
6960     }
6961     return structureChains;
6962   }
6963 
6964   // wrapper function for command vkGetPhysicalDeviceQueueFamilyProperties2, see
6965   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyProperties2.html
6966   template <typename StructureChain,
6967             typename StructureChainAllocator,
6968             typename Dispatch,
6969             typename std::enable_if<std::is_same<typename StructureChainAllocator::value_type, StructureChain>::value, int>::type>
6970   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<StructureChain, StructureChainAllocator>
getQueueFamilyProperties2(StructureChainAllocator & structureChainAllocator,Dispatch const & d) const6971     PhysicalDevice::getQueueFamilyProperties2( StructureChainAllocator & structureChainAllocator, Dispatch const & d ) const
6972   {
6973     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
6974 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
6975     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceQueueFamilyProperties2 &&
6976                        "Function <vkGetPhysicalDeviceQueueFamilyProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
6977 #  endif
6978 
6979     std::vector<StructureChain, StructureChainAllocator>      structureChains( structureChainAllocator );
6980     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties;
6981     uint32_t                                                  queueFamilyPropertyCount;
6982     d.vkGetPhysicalDeviceQueueFamilyProperties2( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
6983     structureChains.resize( queueFamilyPropertyCount );
6984     queueFamilyProperties.resize( queueFamilyPropertyCount );
6985     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
6986     {
6987       queueFamilyProperties[i].pNext = structureChains[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
6988     }
6989     d.vkGetPhysicalDeviceQueueFamilyProperties2(
6990       m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
6991 
6992     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
6993     if ( queueFamilyPropertyCount < queueFamilyProperties.size() )
6994     {
6995       structureChains.resize( queueFamilyPropertyCount );
6996     }
6997     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
6998     {
6999       structureChains[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = queueFamilyProperties[i];
7000     }
7001     return structureChains;
7002   }
7003 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
7004 
7005   // wrapper function for command vkGetPhysicalDeviceMemoryProperties2, see
7006   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceMemoryProperties2.html
7007   template <typename Dispatch>
getMemoryProperties2(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 * pMemoryProperties,Dispatch const & d) const7008   VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties2( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 * pMemoryProperties,
7009                                                                Dispatch const &                                        d ) const VULKAN_HPP_NOEXCEPT
7010   {
7011     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7012     d.vkGetPhysicalDeviceMemoryProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ),
7013                                             reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( pMemoryProperties ) );
7014   }
7015 
7016 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
7017   // wrapper function for command vkGetPhysicalDeviceMemoryProperties2, see
7018   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceMemoryProperties2.html
7019   template <typename Dispatch>
7020   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2
getMemoryProperties2(Dispatch const & d) const7021                                          PhysicalDevice::getMemoryProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
7022   {
7023     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7024 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7025     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceMemoryProperties2 &&
7026                        "Function <vkGetPhysicalDeviceMemoryProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
7027 #  endif
7028 
7029     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties;
7030     d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) );
7031 
7032     return memoryProperties;
7033   }
7034 
7035   // wrapper function for command vkGetPhysicalDeviceMemoryProperties2, see
7036   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceMemoryProperties2.html
7037   template <typename X, typename Y, typename... Z, typename Dispatch>
7038   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getMemoryProperties2(Dispatch const & d) const7039                                          PhysicalDevice::getMemoryProperties2( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
7040   {
7041     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7042 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7043     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceMemoryProperties2 &&
7044                        "Function <vkGetPhysicalDeviceMemoryProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
7045 #  endif
7046 
7047     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>        structureChain;
7048     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties =
7049       structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>();
7050     d.vkGetPhysicalDeviceMemoryProperties2( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) );
7051 
7052     return structureChain;
7053   }
7054 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
7055 
7056   // wrapper function for command vkGetPhysicalDeviceSparseImageFormatProperties2, see
7057   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSparseImageFormatProperties2.html
7058   template <typename Dispatch>
getSparseImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 * pProperties,Dispatch const & d) const7059   VULKAN_HPP_INLINE void PhysicalDevice::getSparseImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,
7060                                                                           uint32_t *                                                         pPropertyCount,
7061                                                                           VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 *               pProperties,
7062                                                                           Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
7063   {
7064     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7065     d.vkGetPhysicalDeviceSparseImageFormatProperties2( static_cast<VkPhysicalDevice>( m_physicalDevice ),
7066                                                        reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( pFormatInfo ),
7067                                                        pPropertyCount,
7068                                                        reinterpret_cast<VkSparseImageFormatProperties2 *>( pProperties ) );
7069   }
7070 
7071 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
7072   // wrapper function for command vkGetPhysicalDeviceSparseImageFormatProperties2, see
7073   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSparseImageFormatProperties2.html
7074   template <
7075     typename SparseImageFormatProperties2Allocator,
7076     typename Dispatch,
7077     typename std::enable_if<std::is_same<typename SparseImageFormatProperties2Allocator::value_type, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2>::value,
7078                             int>::type>
7079   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2, SparseImageFormatProperties2Allocator>
getSparseImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo,Dispatch const & d) const7080     PhysicalDevice::getSparseImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo, Dispatch const & d ) const
7081   {
7082     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7083 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7084     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceSparseImageFormatProperties2 &&
7085                        "Function <vkGetPhysicalDeviceSparseImageFormatProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
7086 #  endif
7087 
7088     std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties;
7089     uint32_t                                                                                               propertyCount;
7090     d.vkGetPhysicalDeviceSparseImageFormatProperties2(
7091       m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, nullptr );
7092     properties.resize( propertyCount );
7093     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice,
7094                                                        reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ),
7095                                                        &propertyCount,
7096                                                        reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) );
7097 
7098     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
7099     if ( propertyCount < properties.size() )
7100     {
7101       properties.resize( propertyCount );
7102     }
7103     return properties;
7104   }
7105 
7106   // wrapper function for command vkGetPhysicalDeviceSparseImageFormatProperties2, see
7107   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSparseImageFormatProperties2.html
7108   template <
7109     typename SparseImageFormatProperties2Allocator,
7110     typename Dispatch,
7111     typename std::enable_if<std::is_same<typename SparseImageFormatProperties2Allocator::value_type, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2>::value,
7112                             int>::type>
7113   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2, SparseImageFormatProperties2Allocator>
getSparseImageFormatProperties2(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo,SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator,Dispatch const & d) const7114     PhysicalDevice::getSparseImageFormatProperties2( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo,
7115                                                      SparseImageFormatProperties2Allocator &                            sparseImageFormatProperties2Allocator,
7116                                                      Dispatch const &                                                   d ) const
7117   {
7118     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7119 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7120     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceSparseImageFormatProperties2 &&
7121                        "Function <vkGetPhysicalDeviceSparseImageFormatProperties2> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
7122 #  endif
7123 
7124     std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties( sparseImageFormatProperties2Allocator );
7125     uint32_t                                                                                               propertyCount;
7126     d.vkGetPhysicalDeviceSparseImageFormatProperties2(
7127       m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, nullptr );
7128     properties.resize( propertyCount );
7129     d.vkGetPhysicalDeviceSparseImageFormatProperties2( m_physicalDevice,
7130                                                        reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ),
7131                                                        &propertyCount,
7132                                                        reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) );
7133 
7134     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
7135     if ( propertyCount < properties.size() )
7136     {
7137       properties.resize( propertyCount );
7138     }
7139     return properties;
7140   }
7141 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
7142 
7143   // wrapper function for command vkTrimCommandPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkTrimCommandPool.html
7144   template <typename Dispatch>
trimCommandPool(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags,Dispatch const & d) const7145   VULKAN_HPP_INLINE void Device::trimCommandPool( VULKAN_HPP_NAMESPACE::CommandPool          commandPool,
7146                                                   VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags,
7147                                                   Dispatch const &                           d ) const VULKAN_HPP_NOEXCEPT
7148   {
7149     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7150     d.vkTrimCommandPool( static_cast<VkDevice>( m_device ), static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
7151   }
7152 
7153   // wrapper function for command vkGetDeviceQueue2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceQueue2.html
7154   template <typename Dispatch>
getQueue2(const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 * pQueueInfo,VULKAN_HPP_NAMESPACE::Queue * pQueue,Dispatch const & d) const7155   VULKAN_HPP_INLINE void Device::getQueue2( const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 * pQueueInfo,
7156                                             VULKAN_HPP_NAMESPACE::Queue *                  pQueue,
7157                                             Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
7158   {
7159     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7160     d.vkGetDeviceQueue2( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDeviceQueueInfo2 *>( pQueueInfo ), reinterpret_cast<VkQueue *>( pQueue ) );
7161   }
7162 
7163 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
7164   // wrapper function for command vkGetDeviceQueue2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceQueue2.html
7165   template <typename Dispatch>
getQueue2(const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 & queueInfo,Dispatch const & d) const7166   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Queue Device::getQueue2( const VULKAN_HPP_NAMESPACE::DeviceQueueInfo2 & queueInfo,
7167                                                                                         Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
7168   {
7169     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7170 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7171     VULKAN_HPP_ASSERT( d.vkGetDeviceQueue2 && "Function <vkGetDeviceQueue2> requires <VK_VERSION_1_1>" );
7172 #  endif
7173 
7174     VULKAN_HPP_NAMESPACE::Queue queue;
7175     d.vkGetDeviceQueue2( m_device, reinterpret_cast<const VkDeviceQueueInfo2 *>( &queueInfo ), reinterpret_cast<VkQueue *>( &queue ) );
7176 
7177     return queue;
7178   }
7179 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
7180 
7181   // wrapper function for command vkCreateSamplerYcbcrConversion, see
7182   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSamplerYcbcrConversion.html
7183   template <typename Dispatch>
7184   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
createSamplerYcbcrConversion(const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion * pYcbcrConversion,Dispatch const & d) const7185     Device::createSamplerYcbcrConversion( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo * pCreateInfo,
7186                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks *              pAllocator,
7187                                           VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion *                 pYcbcrConversion,
7188                                           Dispatch const &                                               d ) const VULKAN_HPP_NOEXCEPT
7189   {
7190     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7191     return static_cast<Result>( d.vkCreateSamplerYcbcrConversion( static_cast<VkDevice>( m_device ),
7192                                                                   reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( pCreateInfo ),
7193                                                                   reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
7194                                                                   reinterpret_cast<VkSamplerYcbcrConversion *>( pYcbcrConversion ) ) );
7195   }
7196 
7197 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
7198   // wrapper function for command vkCreateSamplerYcbcrConversion, see
7199   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSamplerYcbcrConversion.html
7200   template <typename Dispatch>
7201   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>::type
createSamplerYcbcrConversion(const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const7202                        Device::createSamplerYcbcrConversion( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo & createInfo,
7203                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>      allocator,
7204                                           Dispatch const &                                               d ) const
7205   {
7206     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7207 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7208     VULKAN_HPP_ASSERT( d.vkCreateSamplerYcbcrConversion &&
7209                        "Function <vkCreateSamplerYcbcrConversion> requires <VK_KHR_sampler_ycbcr_conversion> or <VK_VERSION_1_1>" );
7210 #  endif
7211 
7212     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
7213     VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateSamplerYcbcrConversion(
7214       m_device,
7215       reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( &createInfo ),
7216       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
7217       reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) ) );
7218     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversion" );
7219 
7220     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( ycbcrConversion ) );
7221   }
7222 
7223 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
7224   // wrapper function for command vkCreateSamplerYcbcrConversion, see
7225   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSamplerYcbcrConversion.html
7226   template <typename Dispatch>
7227   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion, Dispatch>>::type
createSamplerYcbcrConversionUnique(const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const7228                        Device::createSamplerYcbcrConversionUnique( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo & createInfo,
7229                                                 Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>      allocator,
7230                                                 Dispatch const &                                               d ) const
7231   {
7232     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7233 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7234     VULKAN_HPP_ASSERT( d.vkCreateSamplerYcbcrConversion &&
7235                        "Function <vkCreateSamplerYcbcrConversion> requires <VK_KHR_sampler_ycbcr_conversion> or <VK_VERSION_1_1>" );
7236 #    endif
7237 
7238     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
7239     VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateSamplerYcbcrConversion(
7240       m_device,
7241       reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( &createInfo ),
7242       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
7243       reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) ) );
7244     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionUnique" );
7245 
7246     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
7247       result,
7248       UniqueHandle<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion, Dispatch>( ycbcrConversion, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
7249   }
7250 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
7251 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
7252 
7253   // wrapper function for command vkDestroySamplerYcbcrConversion, see
7254   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySamplerYcbcrConversion.html
7255   template <typename Dispatch>
destroySamplerYcbcrConversion(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const7256   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion      ycbcrConversion,
7257                                                                 const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
7258                                                                 Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
7259   {
7260     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7261     d.vkDestroySamplerYcbcrConversion( static_cast<VkDevice>( m_device ),
7262                                        static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ),
7263                                        reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
7264   }
7265 
7266 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
7267   // wrapper function for command vkDestroySamplerYcbcrConversion, see
7268   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySamplerYcbcrConversion.html
7269   template <typename Dispatch>
destroySamplerYcbcrConversion(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const7270   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversion( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion              ycbcrConversion,
7271                                                                 Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
7272                                                                 Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
7273   {
7274     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7275 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7276     VULKAN_HPP_ASSERT( d.vkDestroySamplerYcbcrConversion &&
7277                        "Function <vkDestroySamplerYcbcrConversion> requires <VK_KHR_sampler_ycbcr_conversion> or <VK_VERSION_1_1>" );
7278 #  endif
7279 
7280     d.vkDestroySamplerYcbcrConversion(
7281       m_device,
7282       static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ),
7283       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
7284   }
7285 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
7286 
7287   // wrapper function for command vkDestroySamplerYcbcrConversion, see
7288   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySamplerYcbcrConversion.html
7289   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const7290   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion      ycbcrConversion,
7291                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
7292                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
7293   {
7294     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7295     d.vkDestroySamplerYcbcrConversion( static_cast<VkDevice>( m_device ),
7296                                        static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ),
7297                                        reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
7298   }
7299 
7300 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
7301   // wrapper function for command vkDestroySamplerYcbcrConversion, see
7302   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySamplerYcbcrConversion.html
7303   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const7304   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion              ycbcrConversion,
7305                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
7306                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
7307   {
7308     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7309 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7310     VULKAN_HPP_ASSERT( d.vkDestroySamplerYcbcrConversion &&
7311                        "Function <vkDestroySamplerYcbcrConversion> requires <VK_KHR_sampler_ycbcr_conversion> or <VK_VERSION_1_1>" );
7312 #  endif
7313 
7314     d.vkDestroySamplerYcbcrConversion(
7315       m_device,
7316       static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ),
7317       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
7318   }
7319 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
7320 
7321   // wrapper function for command vkCreateDescriptorUpdateTemplate, see
7322   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDescriptorUpdateTemplate.html
7323   template <typename Dispatch>
7324   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
createDescriptorUpdateTemplate(const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate * pDescriptorUpdateTemplate,Dispatch const & d) const7325     Device::createDescriptorUpdateTemplate( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo * pCreateInfo,
7326                                             const VULKAN_HPP_NAMESPACE::AllocationCallbacks *                pAllocator,
7327                                             VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate *                 pDescriptorUpdateTemplate,
7328                                             Dispatch const &                                                 d ) const VULKAN_HPP_NOEXCEPT
7329   {
7330     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7331     return static_cast<Result>( d.vkCreateDescriptorUpdateTemplate( static_cast<VkDevice>( m_device ),
7332                                                                     reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( pCreateInfo ),
7333                                                                     reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
7334                                                                     reinterpret_cast<VkDescriptorUpdateTemplate *>( pDescriptorUpdateTemplate ) ) );
7335   }
7336 
7337 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
7338   // wrapper function for command vkCreateDescriptorUpdateTemplate, see
7339   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDescriptorUpdateTemplate.html
7340   template <typename Dispatch>
7341   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>::type
createDescriptorUpdateTemplate(const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const7342                        Device::createDescriptorUpdateTemplate( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo & createInfo,
7343                                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>        allocator,
7344                                             Dispatch const &                                                 d ) const
7345   {
7346     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7347 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7348     VULKAN_HPP_ASSERT( d.vkCreateDescriptorUpdateTemplate &&
7349                        "Function <vkCreateDescriptorUpdateTemplate> requires <VK_KHR_descriptor_update_template> or <VK_VERSION_1_1>" );
7350 #  endif
7351 
7352     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
7353     VULKAN_HPP_NAMESPACE::Result                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDescriptorUpdateTemplate(
7354       m_device,
7355       reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( &createInfo ),
7356       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
7357       reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) ) );
7358     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplate" );
7359 
7360     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( descriptorUpdateTemplate ) );
7361   }
7362 
7363 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
7364   // wrapper function for command vkCreateDescriptorUpdateTemplate, see
7365   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDescriptorUpdateTemplate.html
7366   template <typename Dispatch>
7367   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate, Dispatch>>::type
createDescriptorUpdateTemplateUnique(const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const7368                        Device::createDescriptorUpdateTemplateUnique( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo & createInfo,
7369                                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>        allocator,
7370                                                   Dispatch const &                                                 d ) const
7371   {
7372     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7373 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7374     VULKAN_HPP_ASSERT( d.vkCreateDescriptorUpdateTemplate &&
7375                        "Function <vkCreateDescriptorUpdateTemplate> requires <VK_KHR_descriptor_update_template> or <VK_VERSION_1_1>" );
7376 #    endif
7377 
7378     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
7379     VULKAN_HPP_NAMESPACE::Result                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDescriptorUpdateTemplate(
7380       m_device,
7381       reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( &createInfo ),
7382       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
7383       reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) ) );
7384     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateUnique" );
7385 
7386     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result,
7387                                                                 UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate, Dispatch>(
7388                                                                   descriptorUpdateTemplate, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
7389   }
7390 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
7391 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
7392 
7393   // wrapper function for command vkDestroyDescriptorUpdateTemplate, see
7394   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDescriptorUpdateTemplate.html
7395   template <typename Dispatch>
destroyDescriptorUpdateTemplate(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const7396   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate    descriptorUpdateTemplate,
7397                                                                   const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
7398                                                                   Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
7399   {
7400     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7401     d.vkDestroyDescriptorUpdateTemplate( static_cast<VkDevice>( m_device ),
7402                                          static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
7403                                          reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
7404   }
7405 
7406 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
7407   // wrapper function for command vkDestroyDescriptorUpdateTemplate, see
7408   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDescriptorUpdateTemplate.html
7409   template <typename Dispatch>
destroyDescriptorUpdateTemplate(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const7410   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate            descriptorUpdateTemplate,
7411                                                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
7412                                                                   Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
7413   {
7414     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7415 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7416     VULKAN_HPP_ASSERT( d.vkDestroyDescriptorUpdateTemplate &&
7417                        "Function <vkDestroyDescriptorUpdateTemplate> requires <VK_KHR_descriptor_update_template> or <VK_VERSION_1_1>" );
7418 #  endif
7419 
7420     d.vkDestroyDescriptorUpdateTemplate(
7421       m_device,
7422       static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
7423       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
7424   }
7425 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
7426 
7427   // wrapper function for command vkDestroyDescriptorUpdateTemplate, see
7428   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDescriptorUpdateTemplate.html
7429   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const7430   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate    descriptorUpdateTemplate,
7431                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
7432                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
7433   {
7434     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7435     d.vkDestroyDescriptorUpdateTemplate( static_cast<VkDevice>( m_device ),
7436                                          static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
7437                                          reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
7438   }
7439 
7440 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
7441   // wrapper function for command vkDestroyDescriptorUpdateTemplate, see
7442   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDescriptorUpdateTemplate.html
7443   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const7444   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate            descriptorUpdateTemplate,
7445                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
7446                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
7447   {
7448     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7449 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7450     VULKAN_HPP_ASSERT( d.vkDestroyDescriptorUpdateTemplate &&
7451                        "Function <vkDestroyDescriptorUpdateTemplate> requires <VK_KHR_descriptor_update_template> or <VK_VERSION_1_1>" );
7452 #  endif
7453 
7454     d.vkDestroyDescriptorUpdateTemplate(
7455       m_device,
7456       static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
7457       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
7458   }
7459 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
7460 
7461   // wrapper function for command vkUpdateDescriptorSetWithTemplate, see
7462   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkUpdateDescriptorSetWithTemplate.html
7463   template <typename Dispatch>
updateDescriptorSetWithTemplate(VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData,Dispatch const & d) const7464   VULKAN_HPP_INLINE void Device::updateDescriptorSetWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorSet            descriptorSet,
7465                                                                   VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,
7466                                                                   const void *                                   pData,
7467                                                                   Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
7468   {
7469     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7470     d.vkUpdateDescriptorSetWithTemplate( static_cast<VkDevice>( m_device ),
7471                                          static_cast<VkDescriptorSet>( descriptorSet ),
7472                                          static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
7473                                          pData );
7474   }
7475 
7476 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
7477   // wrapper function for command vkUpdateDescriptorSetWithTemplate, see
7478   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkUpdateDescriptorSetWithTemplate.html
7479   template <typename DataType, typename Dispatch>
updateDescriptorSetWithTemplate(VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,DataType const & data,Dispatch const & d) const7480   VULKAN_HPP_INLINE void Device::updateDescriptorSetWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorSet            descriptorSet,
7481                                                                   VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,
7482                                                                   DataType const &                               data,
7483                                                                   Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
7484   {
7485     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7486 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7487     VULKAN_HPP_ASSERT( d.vkUpdateDescriptorSetWithTemplate &&
7488                        "Function <vkUpdateDescriptorSetWithTemplate> requires <VK_KHR_descriptor_update_template> or <VK_VERSION_1_1>" );
7489 #  endif
7490 
7491     d.vkUpdateDescriptorSetWithTemplate( m_device,
7492                                          static_cast<VkDescriptorSet>( descriptorSet ),
7493                                          static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
7494                                          reinterpret_cast<const void *>( &data ) );
7495   }
7496 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
7497 
7498   // wrapper function for command vkGetPhysicalDeviceExternalBufferProperties, see
7499   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalBufferProperties.html
7500   template <typename Dispatch>
getExternalBufferProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VULKAN_HPP_NAMESPACE::ExternalBufferProperties * pExternalBufferProperties,Dispatch const & d) const7501   VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo * pExternalBufferInfo,
7502                                                                       VULKAN_HPP_NAMESPACE::ExternalBufferProperties *               pExternalBufferProperties,
7503                                                                       Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
7504   {
7505     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7506     d.vkGetPhysicalDeviceExternalBufferProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ),
7507                                                    reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( pExternalBufferInfo ),
7508                                                    reinterpret_cast<VkExternalBufferProperties *>( pExternalBufferProperties ) );
7509   }
7510 
7511 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
7512   // wrapper function for command vkGetPhysicalDeviceExternalBufferProperties, see
7513   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalBufferProperties.html
7514   template <typename Dispatch>
7515   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties
getExternalBufferProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo & externalBufferInfo,Dispatch const & d) const7516     PhysicalDevice::getExternalBufferProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo & externalBufferInfo,
7517                                                  Dispatch const &                                               d ) const VULKAN_HPP_NOEXCEPT
7518   {
7519     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7520 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7521     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceExternalBufferProperties &&
7522                        "Function <vkGetPhysicalDeviceExternalBufferProperties> requires <VK_KHR_external_memory_capabilities> or <VK_VERSION_1_1>" );
7523 #  endif
7524 
7525     VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties;
7526     d.vkGetPhysicalDeviceExternalBufferProperties( m_physicalDevice,
7527                                                    reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( &externalBufferInfo ),
7528                                                    reinterpret_cast<VkExternalBufferProperties *>( &externalBufferProperties ) );
7529 
7530     return externalBufferProperties;
7531   }
7532 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
7533 
7534   // wrapper function for command vkGetPhysicalDeviceExternalFenceProperties, see
7535   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalFenceProperties.html
7536   template <typename Dispatch>
getExternalFenceProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VULKAN_HPP_NAMESPACE::ExternalFenceProperties * pExternalFenceProperties,Dispatch const & d) const7537   VULKAN_HPP_INLINE void PhysicalDevice::getExternalFenceProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo * pExternalFenceInfo,
7538                                                                      VULKAN_HPP_NAMESPACE::ExternalFenceProperties *               pExternalFenceProperties,
7539                                                                      Dispatch const &                                              d ) const VULKAN_HPP_NOEXCEPT
7540   {
7541     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7542     d.vkGetPhysicalDeviceExternalFenceProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ),
7543                                                   reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( pExternalFenceInfo ),
7544                                                   reinterpret_cast<VkExternalFenceProperties *>( pExternalFenceProperties ) );
7545   }
7546 
7547 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
7548   // wrapper function for command vkGetPhysicalDeviceExternalFenceProperties, see
7549   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalFenceProperties.html
7550   template <typename Dispatch>
7551   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties
getExternalFenceProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo & externalFenceInfo,Dispatch const & d) const7552     PhysicalDevice::getExternalFenceProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo & externalFenceInfo,
7553                                                 Dispatch const &                                              d ) const VULKAN_HPP_NOEXCEPT
7554   {
7555     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7556 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7557     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceExternalFenceProperties &&
7558                        "Function <vkGetPhysicalDeviceExternalFenceProperties> requires <VK_KHR_external_fence_capabilities> or <VK_VERSION_1_1>" );
7559 #  endif
7560 
7561     VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties;
7562     d.vkGetPhysicalDeviceExternalFenceProperties( m_physicalDevice,
7563                                                   reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( &externalFenceInfo ),
7564                                                   reinterpret_cast<VkExternalFenceProperties *>( &externalFenceProperties ) );
7565 
7566     return externalFenceProperties;
7567   }
7568 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
7569 
7570   // wrapper function for command vkGetPhysicalDeviceExternalSemaphoreProperties, see
7571   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalSemaphoreProperties.html
7572   template <typename Dispatch>
7573   VULKAN_HPP_INLINE void
getExternalSemaphoreProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties * pExternalSemaphoreProperties,Dispatch const & d) const7574     PhysicalDevice::getExternalSemaphoreProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,
7575                                                     VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties *               pExternalSemaphoreProperties,
7576                                                     Dispatch const &                                                  d ) const VULKAN_HPP_NOEXCEPT
7577   {
7578     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7579     d.vkGetPhysicalDeviceExternalSemaphoreProperties( static_cast<VkPhysicalDevice>( m_physicalDevice ),
7580                                                       reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( pExternalSemaphoreInfo ),
7581                                                       reinterpret_cast<VkExternalSemaphoreProperties *>( pExternalSemaphoreProperties ) );
7582   }
7583 
7584 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
7585   // wrapper function for command vkGetPhysicalDeviceExternalSemaphoreProperties, see
7586   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalSemaphoreProperties.html
7587   template <typename Dispatch>
7588   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties
getExternalSemaphoreProperties(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo,Dispatch const & d) const7589     PhysicalDevice::getExternalSemaphoreProperties( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo,
7590                                                     Dispatch const &                                                  d ) const VULKAN_HPP_NOEXCEPT
7591   {
7592     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7593 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7594     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceExternalSemaphoreProperties &&
7595                        "Function <vkGetPhysicalDeviceExternalSemaphoreProperties> requires <VK_KHR_external_semaphore_capabilities> or <VK_VERSION_1_1>" );
7596 #  endif
7597 
7598     VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties;
7599     d.vkGetPhysicalDeviceExternalSemaphoreProperties( m_physicalDevice,
7600                                                       reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( &externalSemaphoreInfo ),
7601                                                       reinterpret_cast<VkExternalSemaphoreProperties *>( &externalSemaphoreProperties ) );
7602 
7603     return externalSemaphoreProperties;
7604   }
7605 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
7606 
7607   // wrapper function for command vkGetDescriptorSetLayoutSupport, see
7608   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorSetLayoutSupport.html
7609   template <typename Dispatch>
getDescriptorSetLayoutSupport(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo,VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport * pSupport,Dispatch const & d) const7610   VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo,
7611                                                                 VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport *          pSupport,
7612                                                                 Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
7613   {
7614     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7615     d.vkGetDescriptorSetLayoutSupport( static_cast<VkDevice>( m_device ),
7616                                        reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( pCreateInfo ),
7617                                        reinterpret_cast<VkDescriptorSetLayoutSupport *>( pSupport ) );
7618   }
7619 
7620 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
7621   // wrapper function for command vkGetDescriptorSetLayoutSupport, see
7622   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorSetLayoutSupport.html
7623   template <typename Dispatch>
7624   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport
getDescriptorSetLayoutSupport(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const7625                                          Device::getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo,
7626                                            Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
7627   {
7628     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7629 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7630     VULKAN_HPP_ASSERT( d.vkGetDescriptorSetLayoutSupport && "Function <vkGetDescriptorSetLayoutSupport> requires <VK_KHR_maintenance3> or <VK_VERSION_1_1>" );
7631 #  endif
7632 
7633     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support;
7634     d.vkGetDescriptorSetLayoutSupport(
7635       m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport *>( &support ) );
7636 
7637     return support;
7638   }
7639 
7640   // wrapper function for command vkGetDescriptorSetLayoutSupport, see
7641   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorSetLayoutSupport.html
7642   template <typename X, typename Y, typename... Z, typename Dispatch>
7643   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getDescriptorSetLayoutSupport(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const7644                                          Device::getDescriptorSetLayoutSupport( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo,
7645                                            Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
7646   {
7647     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7648 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7649     VULKAN_HPP_ASSERT( d.vkGetDescriptorSetLayoutSupport && "Function <vkGetDescriptorSetLayoutSupport> requires <VK_KHR_maintenance3> or <VK_VERSION_1_1>" );
7650 #  endif
7651 
7652     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>   structureChain;
7653     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support = structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>();
7654     d.vkGetDescriptorSetLayoutSupport(
7655       m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport *>( &support ) );
7656 
7657     return structureChain;
7658   }
7659 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
7660 
7661   //=== VK_VERSION_1_2 ===
7662 
7663   // wrapper function for command vkCmdDrawIndirectCount, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawIndirectCount.html
7664   template <typename Dispatch>
drawIndirectCount(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::Buffer countBuffer,VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const7665   VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCount( VULKAN_HPP_NAMESPACE::Buffer     buffer,
7666                                                            VULKAN_HPP_NAMESPACE::DeviceSize offset,
7667                                                            VULKAN_HPP_NAMESPACE::Buffer     countBuffer,
7668                                                            VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,
7669                                                            uint32_t                         maxDrawCount,
7670                                                            uint32_t                         stride,
7671                                                            Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
7672   {
7673     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7674     d.vkCmdDrawIndirectCount( static_cast<VkCommandBuffer>( m_commandBuffer ),
7675                               static_cast<VkBuffer>( buffer ),
7676                               static_cast<VkDeviceSize>( offset ),
7677                               static_cast<VkBuffer>( countBuffer ),
7678                               static_cast<VkDeviceSize>( countBufferOffset ),
7679                               maxDrawCount,
7680                               stride );
7681   }
7682 
7683   // wrapper function for command vkCmdDrawIndexedIndirectCount, see
7684   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawIndexedIndirectCount.html
7685   template <typename Dispatch>
drawIndexedIndirectCount(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::Buffer countBuffer,VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const7686   VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCount( VULKAN_HPP_NAMESPACE::Buffer     buffer,
7687                                                                   VULKAN_HPP_NAMESPACE::DeviceSize offset,
7688                                                                   VULKAN_HPP_NAMESPACE::Buffer     countBuffer,
7689                                                                   VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,
7690                                                                   uint32_t                         maxDrawCount,
7691                                                                   uint32_t                         stride,
7692                                                                   Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
7693   {
7694     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7695     d.vkCmdDrawIndexedIndirectCount( static_cast<VkCommandBuffer>( m_commandBuffer ),
7696                                      static_cast<VkBuffer>( buffer ),
7697                                      static_cast<VkDeviceSize>( offset ),
7698                                      static_cast<VkBuffer>( countBuffer ),
7699                                      static_cast<VkDeviceSize>( countBufferOffset ),
7700                                      maxDrawCount,
7701                                      stride );
7702   }
7703 
7704   // wrapper function for command vkCreateRenderPass2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRenderPass2.html
7705   template <typename Dispatch>
createRenderPass2(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass,Dispatch const & d) const7706   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 * pCreateInfo,
7707                                                                            const VULKAN_HPP_NAMESPACE::AllocationCallbacks *   pAllocator,
7708                                                                            VULKAN_HPP_NAMESPACE::RenderPass *                  pRenderPass,
7709                                                                            Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
7710   {
7711     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7712     return static_cast<Result>( d.vkCreateRenderPass2( static_cast<VkDevice>( m_device ),
7713                                                        reinterpret_cast<const VkRenderPassCreateInfo2 *>( pCreateInfo ),
7714                                                        reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
7715                                                        reinterpret_cast<VkRenderPass *>( pRenderPass ) ) );
7716   }
7717 
7718 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
7719   // wrapper function for command vkCreateRenderPass2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRenderPass2.html
7720   template <typename Dispatch>
7721   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::RenderPass>::type
createRenderPass2(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const7722                        Device::createRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 &       createInfo,
7723                                Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
7724                                Dispatch const &                                          d ) const
7725   {
7726     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7727 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7728     VULKAN_HPP_ASSERT( d.vkCreateRenderPass2 && "Function <vkCreateRenderPass2> requires <VK_KHR_create_renderpass2> or <VK_VERSION_1_2>" );
7729 #  endif
7730 
7731     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
7732     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
7733       d.vkCreateRenderPass2( m_device,
7734                              reinterpret_cast<const VkRenderPassCreateInfo2 *>( &createInfo ),
7735                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
7736                              reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
7737     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2" );
7738 
7739     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( renderPass ) );
7740   }
7741 
7742 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
7743   // wrapper function for command vkCreateRenderPass2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRenderPass2.html
7744   template <typename Dispatch>
7745   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>>::type
createRenderPass2Unique(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const7746                        Device::createRenderPass2Unique( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 &       createInfo,
7747                                      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
7748                                      Dispatch const &                                          d ) const
7749   {
7750     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7751 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7752     VULKAN_HPP_ASSERT( d.vkCreateRenderPass2 && "Function <vkCreateRenderPass2> requires <VK_KHR_create_renderpass2> or <VK_VERSION_1_2>" );
7753 #    endif
7754 
7755     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
7756     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
7757       d.vkCreateRenderPass2( m_device,
7758                              reinterpret_cast<const VkRenderPassCreateInfo2 *>( &createInfo ),
7759                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
7760                              reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
7761     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2Unique" );
7762 
7763     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
7764       result, UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>( renderPass, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
7765   }
7766 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
7767 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
7768 
7769   // wrapper function for command vkCmdBeginRenderPass2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginRenderPass2.html
7770   template <typename Dispatch>
beginRenderPass2(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin,const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,Dispatch const & d) const7771   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin,
7772                                                           const VULKAN_HPP_NAMESPACE::SubpassBeginInfo *    pSubpassBeginInfo,
7773                                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
7774   {
7775     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7776     d.vkCmdBeginRenderPass2( static_cast<VkCommandBuffer>( m_commandBuffer ),
7777                              reinterpret_cast<const VkRenderPassBeginInfo *>( pRenderPassBegin ),
7778                              reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ) );
7779   }
7780 
7781 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
7782   // wrapper function for command vkCmdBeginRenderPass2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginRenderPass2.html
7783   template <typename Dispatch>
beginRenderPass2(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin,const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo,Dispatch const & d) const7784   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin,
7785                                                           const VULKAN_HPP_NAMESPACE::SubpassBeginInfo &    subpassBeginInfo,
7786                                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
7787   {
7788     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7789 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7790     VULKAN_HPP_ASSERT( d.vkCmdBeginRenderPass2 && "Function <vkCmdBeginRenderPass2> requires <VK_KHR_create_renderpass2> or <VK_VERSION_1_2>" );
7791 #  endif
7792 
7793     d.vkCmdBeginRenderPass2(
7794       m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ), reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ) );
7795   }
7796 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
7797 
7798   // wrapper function for command vkCmdNextSubpass2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdNextSubpass2.html
7799   template <typename Dispatch>
nextSubpass2(const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const7800   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,
7801                                                       const VULKAN_HPP_NAMESPACE::SubpassEndInfo *   pSubpassEndInfo,
7802                                                       Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
7803   {
7804     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7805     d.vkCmdNextSubpass2( static_cast<VkCommandBuffer>( m_commandBuffer ),
7806                          reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ),
7807                          reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
7808   }
7809 
7810 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
7811   // wrapper function for command vkCmdNextSubpass2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdNextSubpass2.html
7812   template <typename Dispatch>
nextSubpass2(const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo,const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo,Dispatch const & d) const7813   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo,
7814                                                       const VULKAN_HPP_NAMESPACE::SubpassEndInfo &   subpassEndInfo,
7815                                                       Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
7816   {
7817     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7818 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7819     VULKAN_HPP_ASSERT( d.vkCmdNextSubpass2 && "Function <vkCmdNextSubpass2> requires <VK_KHR_create_renderpass2> or <VK_VERSION_1_2>" );
7820 #  endif
7821 
7822     d.vkCmdNextSubpass2(
7823       m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
7824   }
7825 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
7826 
7827   // wrapper function for command vkCmdEndRenderPass2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndRenderPass2.html
7828   template <typename Dispatch>
endRenderPass2(const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const7829   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,
7830                                                         Dispatch const &                             d ) const VULKAN_HPP_NOEXCEPT
7831   {
7832     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7833     d.vkCmdEndRenderPass2( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
7834   }
7835 
7836 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
7837   // wrapper function for command vkCmdEndRenderPass2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndRenderPass2.html
7838   template <typename Dispatch>
endRenderPass2(const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo,Dispatch const & d) const7839   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2( const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo,
7840                                                         Dispatch const &                             d ) const VULKAN_HPP_NOEXCEPT
7841   {
7842     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7843 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7844     VULKAN_HPP_ASSERT( d.vkCmdEndRenderPass2 && "Function <vkCmdEndRenderPass2> requires <VK_KHR_create_renderpass2> or <VK_VERSION_1_2>" );
7845 #  endif
7846 
7847     d.vkCmdEndRenderPass2( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
7848   }
7849 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
7850 
7851   // wrapper function for command vkResetQueryPool, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetQueryPool.html
7852   template <typename Dispatch>
7853   VULKAN_HPP_INLINE void
resetQueryPool(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const7854     Device::resetQueryPool( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t firstQuery, uint32_t queryCount, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
7855   {
7856     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7857     d.vkResetQueryPool( static_cast<VkDevice>( m_device ), static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
7858   }
7859 
7860   // wrapper function for command vkGetSemaphoreCounterValue, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreCounterValue.html
7861   template <typename Dispatch>
getSemaphoreCounterValue(VULKAN_HPP_NAMESPACE::Semaphore semaphore,uint64_t * pValue,Dispatch const & d) const7862   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore,
7863                                                                                   uint64_t *                      pValue,
7864                                                                                   Dispatch const &                d ) const VULKAN_HPP_NOEXCEPT
7865   {
7866     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7867     return static_cast<Result>( d.vkGetSemaphoreCounterValue( static_cast<VkDevice>( m_device ), static_cast<VkSemaphore>( semaphore ), pValue ) );
7868   }
7869 
7870 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
7871   // wrapper function for command vkGetSemaphoreCounterValue, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreCounterValue.html
7872   template <typename Dispatch>
getSemaphoreCounterValue(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Dispatch const & d) const7873   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<uint64_t>::type Device::getSemaphoreCounterValue( VULKAN_HPP_NAMESPACE::Semaphore semaphore,
7874                                                                                                                     Dispatch const &                d ) const
7875   {
7876     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7877 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7878     VULKAN_HPP_ASSERT( d.vkGetSemaphoreCounterValue && "Function <vkGetSemaphoreCounterValue> requires <VK_KHR_timeline_semaphore> or <VK_VERSION_1_2>" );
7879 #  endif
7880 
7881     uint64_t                     value;
7882     VULKAN_HPP_NAMESPACE::Result result =
7883       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetSemaphoreCounterValue( m_device, static_cast<VkSemaphore>( semaphore ), &value ) );
7884     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreCounterValue" );
7885 
7886     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( value ) );
7887   }
7888 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
7889 
7890   // wrapper function for command vkWaitSemaphores, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkWaitSemaphores.html
7891   template <typename Dispatch>
waitSemaphores(const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo * pWaitInfo,uint64_t timeout,Dispatch const & d) const7892   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitSemaphores( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo * pWaitInfo,
7893                                                                         uint64_t                                        timeout,
7894                                                                         Dispatch const &                                d ) const VULKAN_HPP_NOEXCEPT
7895   {
7896     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7897     return static_cast<Result>( d.vkWaitSemaphores( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreWaitInfo *>( pWaitInfo ), timeout ) );
7898   }
7899 
7900 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
7901   // wrapper function for command vkWaitSemaphores, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkWaitSemaphores.html
7902   template <typename Dispatch>
7903   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result
waitSemaphores(const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo & waitInfo,uint64_t timeout,Dispatch const & d) const7904     Device::waitSemaphores( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d ) const
7905   {
7906     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7907 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7908     VULKAN_HPP_ASSERT( d.vkWaitSemaphores && "Function <vkWaitSemaphores> requires <VK_KHR_timeline_semaphore> or <VK_VERSION_1_2>" );
7909 #  endif
7910 
7911     VULKAN_HPP_NAMESPACE::Result result =
7912       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkWaitSemaphores( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout ) );
7913     VULKAN_HPP_NAMESPACE::detail::resultCheck(
7914       result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphores", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
7915 
7916     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
7917   }
7918 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
7919 
7920   // wrapper function for command vkSignalSemaphore, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSignalSemaphore.html
7921   template <typename Dispatch>
signalSemaphore(const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo * pSignalInfo,Dispatch const & d) const7922   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo * pSignalInfo,
7923                                                                          Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
7924   {
7925     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7926     return static_cast<Result>( d.vkSignalSemaphore( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreSignalInfo *>( pSignalInfo ) ) );
7927   }
7928 
7929 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
7930   // wrapper function for command vkSignalSemaphore, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSignalSemaphore.html
7931   template <typename Dispatch>
7932   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
signalSemaphore(const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo & signalInfo,Dispatch const & d) const7933                                           Device::signalSemaphore( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo & signalInfo, Dispatch const & d ) const
7934   {
7935     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7936 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7937     VULKAN_HPP_ASSERT( d.vkSignalSemaphore && "Function <vkSignalSemaphore> requires <VK_KHR_timeline_semaphore> or <VK_VERSION_1_2>" );
7938 #  endif
7939 
7940     VULKAN_HPP_NAMESPACE::Result result =
7941       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkSignalSemaphore( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) ) );
7942     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphore" );
7943 
7944     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
7945   }
7946 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
7947 
7948   // wrapper function for command vkGetBufferDeviceAddress, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferDeviceAddress.html
7949   template <typename Dispatch>
getBufferAddress(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const7950   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,
7951                                                             Dispatch const &                                      d ) const VULKAN_HPP_NOEXCEPT
7952   {
7953     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7954     return static_cast<DeviceAddress>(
7955       d.vkGetBufferDeviceAddress( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) ) );
7956   }
7957 
7958 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
7959   // wrapper function for command vkGetBufferDeviceAddress, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferDeviceAddress.html
7960   template <typename Dispatch>
getBufferAddress(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info,Dispatch const & d) const7961   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress Device::getBufferAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info,
7962                                                                                   Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
7963   {
7964     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7965 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7966     VULKAN_HPP_ASSERT( d.vkGetBufferDeviceAddress &&
7967                        "Function <vkGetBufferDeviceAddress> requires <VK_EXT_buffer_device_address> or <VK_KHR_buffer_device_address> or <VK_VERSION_1_2>" );
7968 #  endif
7969 
7970     VkDeviceAddress result = d.vkGetBufferDeviceAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
7971 
7972     return static_cast<VULKAN_HPP_NAMESPACE::DeviceAddress>( result );
7973   }
7974 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
7975 
7976   // wrapper function for command vkGetBufferOpaqueCaptureAddress, see
7977   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferOpaqueCaptureAddress.html
7978   template <typename Dispatch>
getBufferOpaqueCaptureAddress(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const7979   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,
7980                                                                     Dispatch const &                                      d ) const VULKAN_HPP_NOEXCEPT
7981   {
7982     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7983     return d.vkGetBufferOpaqueCaptureAddress( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) );
7984   }
7985 
7986 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
7987   // wrapper function for command vkGetBufferOpaqueCaptureAddress, see
7988   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferOpaqueCaptureAddress.html
7989   template <typename Dispatch>
getBufferOpaqueCaptureAddress(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info,Dispatch const & d) const7990   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info,
7991                                                                     Dispatch const &                                      d ) const VULKAN_HPP_NOEXCEPT
7992   {
7993     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
7994 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
7995     VULKAN_HPP_ASSERT( d.vkGetBufferOpaqueCaptureAddress &&
7996                        "Function <vkGetBufferOpaqueCaptureAddress> requires <VK_KHR_buffer_device_address> or <VK_VERSION_1_2>" );
7997 #  endif
7998 
7999     uint64_t result = d.vkGetBufferOpaqueCaptureAddress( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
8000 
8001     return result;
8002   }
8003 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
8004 
8005   // wrapper function for command vkGetDeviceMemoryOpaqueCaptureAddress, see
8006   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceMemoryOpaqueCaptureAddress.html
8007   template <typename Dispatch>
getMemoryOpaqueCaptureAddress(const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo * pInfo,Dispatch const & d) const8008   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo * pInfo,
8009                                                                     Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
8010   {
8011     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8012     return d.vkGetDeviceMemoryOpaqueCaptureAddress( static_cast<VkDevice>( m_device ),
8013                                                     reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( pInfo ) );
8014   }
8015 
8016 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
8017   // wrapper function for command vkGetDeviceMemoryOpaqueCaptureAddress, see
8018   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceMemoryOpaqueCaptureAddress.html
8019   template <typename Dispatch>
getMemoryOpaqueCaptureAddress(const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo & info,Dispatch const & d) const8020   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddress( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo & info,
8021                                                                     Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
8022   {
8023     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8024 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8025     VULKAN_HPP_ASSERT( d.vkGetDeviceMemoryOpaqueCaptureAddress &&
8026                        "Function <vkGetDeviceMemoryOpaqueCaptureAddress> requires <VK_KHR_buffer_device_address> or <VK_VERSION_1_2>" );
8027 #  endif
8028 
8029     uint64_t result = d.vkGetDeviceMemoryOpaqueCaptureAddress( m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( &info ) );
8030 
8031     return result;
8032   }
8033 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
8034 
8035   //=== VK_VERSION_1_3 ===
8036 
8037   // wrapper function for command vkGetPhysicalDeviceToolProperties, see
8038   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceToolProperties.html
8039   template <typename Dispatch>
getToolProperties(uint32_t * pToolCount,VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties * pToolProperties,Dispatch const & d) const8040   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getToolProperties( uint32_t *                                           pToolCount,
8041                                                                                    VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties * pToolProperties,
8042                                                                                    Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
8043   {
8044     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8045     return static_cast<Result>( d.vkGetPhysicalDeviceToolProperties(
8046       static_cast<VkPhysicalDevice>( m_physicalDevice ), pToolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>( pToolProperties ) ) );
8047   }
8048 
8049 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
8050   // wrapper function for command vkGetPhysicalDeviceToolProperties, see
8051   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceToolProperties.html
8052   template <
8053     typename PhysicalDeviceToolPropertiesAllocator,
8054     typename Dispatch,
8055     typename std::enable_if<std::is_same<typename PhysicalDeviceToolPropertiesAllocator::value_type, VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties>::value,
8056                             int>::type>
8057   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
8058     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties, PhysicalDeviceToolPropertiesAllocator>>::type
getToolProperties(Dispatch const & d) const8059     PhysicalDevice::getToolProperties( Dispatch const & d ) const
8060   {
8061     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8062 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8063     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceToolProperties &&
8064                        "Function <vkGetPhysicalDeviceToolProperties> requires <VK_EXT_tooling_info> or <VK_VERSION_1_3>" );
8065 #  endif
8066 
8067     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties, PhysicalDeviceToolPropertiesAllocator> toolProperties;
8068     uint32_t                                                                                               toolCount;
8069     VULKAN_HPP_NAMESPACE::Result                                                                           result;
8070     do
8071     {
8072       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceToolProperties( m_physicalDevice, &toolCount, nullptr ) );
8073       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && toolCount )
8074       {
8075         toolProperties.resize( toolCount );
8076         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
8077           d.vkGetPhysicalDeviceToolProperties( m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>( toolProperties.data() ) ) );
8078       }
8079     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
8080     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolProperties" );
8081     VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
8082     if ( toolCount < toolProperties.size() )
8083     {
8084       toolProperties.resize( toolCount );
8085     }
8086     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( toolProperties ) );
8087   }
8088 
8089   // wrapper function for command vkGetPhysicalDeviceToolProperties, see
8090   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceToolProperties.html
8091   template <
8092     typename PhysicalDeviceToolPropertiesAllocator,
8093     typename Dispatch,
8094     typename std::enable_if<std::is_same<typename PhysicalDeviceToolPropertiesAllocator::value_type, VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties>::value,
8095                             int>::type>
8096   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
8097     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties, PhysicalDeviceToolPropertiesAllocator>>::type
getToolProperties(PhysicalDeviceToolPropertiesAllocator & physicalDeviceToolPropertiesAllocator,Dispatch const & d) const8098     PhysicalDevice::getToolProperties( PhysicalDeviceToolPropertiesAllocator & physicalDeviceToolPropertiesAllocator, Dispatch const & d ) const
8099   {
8100     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8101 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8102     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceToolProperties &&
8103                        "Function <vkGetPhysicalDeviceToolProperties> requires <VK_EXT_tooling_info> or <VK_VERSION_1_3>" );
8104 #  endif
8105 
8106     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties, PhysicalDeviceToolPropertiesAllocator> toolProperties(
8107       physicalDeviceToolPropertiesAllocator );
8108     uint32_t                     toolCount;
8109     VULKAN_HPP_NAMESPACE::Result result;
8110     do
8111     {
8112       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceToolProperties( m_physicalDevice, &toolCount, nullptr ) );
8113       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && toolCount )
8114       {
8115         toolProperties.resize( toolCount );
8116         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
8117           d.vkGetPhysicalDeviceToolProperties( m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>( toolProperties.data() ) ) );
8118       }
8119     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
8120     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolProperties" );
8121     VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
8122     if ( toolCount < toolProperties.size() )
8123     {
8124       toolProperties.resize( toolCount );
8125     }
8126     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( toolProperties ) );
8127   }
8128 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
8129 
8130   // wrapper function for command vkCreatePrivateDataSlot, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePrivateDataSlot.html
8131   template <typename Dispatch>
createPrivateDataSlot(const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::PrivateDataSlot * pPrivateDataSlot,Dispatch const & d) const8132   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createPrivateDataSlot( const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo * pCreateInfo,
8133                                                                                const VULKAN_HPP_NAMESPACE::AllocationCallbacks *       pAllocator,
8134                                                                                VULKAN_HPP_NAMESPACE::PrivateDataSlot *                 pPrivateDataSlot,
8135                                                                                Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
8136   {
8137     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8138     return static_cast<Result>( d.vkCreatePrivateDataSlot( static_cast<VkDevice>( m_device ),
8139                                                            reinterpret_cast<const VkPrivateDataSlotCreateInfo *>( pCreateInfo ),
8140                                                            reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
8141                                                            reinterpret_cast<VkPrivateDataSlot *>( pPrivateDataSlot ) ) );
8142   }
8143 
8144 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
8145   // wrapper function for command vkCreatePrivateDataSlot, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePrivateDataSlot.html
8146   template <typename Dispatch>
8147   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::PrivateDataSlot>::type
createPrivateDataSlot(const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const8148                        Device::createPrivateDataSlot( const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo &   createInfo,
8149                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
8150                                    Dispatch const &                                          d ) const
8151   {
8152     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8153 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8154     VULKAN_HPP_ASSERT( d.vkCreatePrivateDataSlot && "Function <vkCreatePrivateDataSlot> requires <VK_EXT_private_data> or <VK_VERSION_1_3>" );
8155 #  endif
8156 
8157     VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot;
8158     VULKAN_HPP_NAMESPACE::Result          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
8159       d.vkCreatePrivateDataSlot( m_device,
8160                                  reinterpret_cast<const VkPrivateDataSlotCreateInfo *>( &createInfo ),
8161                                  reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
8162                                  reinterpret_cast<VkPrivateDataSlot *>( &privateDataSlot ) ) );
8163     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlot" );
8164 
8165     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( privateDataSlot ) );
8166   }
8167 
8168 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
8169   // wrapper function for command vkCreatePrivateDataSlot, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePrivateDataSlot.html
8170   template <typename Dispatch>
8171   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::PrivateDataSlot, Dispatch>>::type
createPrivateDataSlotUnique(const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const8172                        Device::createPrivateDataSlotUnique( const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo &   createInfo,
8173                                          Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
8174                                          Dispatch const &                                          d ) const
8175   {
8176     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8177 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8178     VULKAN_HPP_ASSERT( d.vkCreatePrivateDataSlot && "Function <vkCreatePrivateDataSlot> requires <VK_EXT_private_data> or <VK_VERSION_1_3>" );
8179 #    endif
8180 
8181     VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot;
8182     VULKAN_HPP_NAMESPACE::Result          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
8183       d.vkCreatePrivateDataSlot( m_device,
8184                                  reinterpret_cast<const VkPrivateDataSlotCreateInfo *>( &createInfo ),
8185                                  reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
8186                                  reinterpret_cast<VkPrivateDataSlot *>( &privateDataSlot ) ) );
8187     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlotUnique" );
8188 
8189     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
8190       result,
8191       UniqueHandle<VULKAN_HPP_NAMESPACE::PrivateDataSlot, Dispatch>( privateDataSlot, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
8192   }
8193 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
8194 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
8195 
8196   // wrapper function for command vkDestroyPrivateDataSlot, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPrivateDataSlot.html
8197   template <typename Dispatch>
destroyPrivateDataSlot(VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const8198   VULKAN_HPP_INLINE void Device::destroyPrivateDataSlot( VULKAN_HPP_NAMESPACE::PrivateDataSlot             privateDataSlot,
8199                                                          const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
8200                                                          Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
8201   {
8202     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8203     d.vkDestroyPrivateDataSlot(
8204       static_cast<VkDevice>( m_device ), static_cast<VkPrivateDataSlot>( privateDataSlot ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
8205   }
8206 
8207 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
8208   // wrapper function for command vkDestroyPrivateDataSlot, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPrivateDataSlot.html
8209   template <typename Dispatch>
destroyPrivateDataSlot(VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const8210   VULKAN_HPP_INLINE void Device::destroyPrivateDataSlot( VULKAN_HPP_NAMESPACE::PrivateDataSlot                     privateDataSlot,
8211                                                          Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
8212                                                          Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
8213   {
8214     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8215 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8216     VULKAN_HPP_ASSERT( d.vkDestroyPrivateDataSlot && "Function <vkDestroyPrivateDataSlot> requires <VK_EXT_private_data> or <VK_VERSION_1_3>" );
8217 #  endif
8218 
8219     d.vkDestroyPrivateDataSlot(
8220       m_device,
8221       static_cast<VkPrivateDataSlot>( privateDataSlot ),
8222       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
8223   }
8224 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
8225 
8226   // wrapper function for command vkDestroyPrivateDataSlot, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPrivateDataSlot.html
8227   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const8228   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlot             privateDataSlot,
8229                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
8230                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
8231   {
8232     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8233     d.vkDestroyPrivateDataSlot(
8234       static_cast<VkDevice>( m_device ), static_cast<VkPrivateDataSlot>( privateDataSlot ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
8235   }
8236 
8237 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
8238   // wrapper function for command vkDestroyPrivateDataSlot, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPrivateDataSlot.html
8239   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const8240   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PrivateDataSlot                     privateDataSlot,
8241                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
8242                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
8243   {
8244     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8245 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8246     VULKAN_HPP_ASSERT( d.vkDestroyPrivateDataSlot && "Function <vkDestroyPrivateDataSlot> requires <VK_EXT_private_data> or <VK_VERSION_1_3>" );
8247 #  endif
8248 
8249     d.vkDestroyPrivateDataSlot(
8250       m_device,
8251       static_cast<VkPrivateDataSlot>( privateDataSlot ),
8252       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
8253   }
8254 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
8255 
8256 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
8257   // wrapper function for command vkSetPrivateData, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetPrivateData.html
8258   template <typename Dispatch>
setPrivateData(VULKAN_HPP_NAMESPACE::ObjectType objectType_,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,uint64_t data,Dispatch const & d) const8259   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
8260                                                                         uint64_t                              objectHandle,
8261                                                                         VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
8262                                                                         uint64_t                              data,
8263                                                                         Dispatch const &                      d ) const VULKAN_HPP_NOEXCEPT
8264   {
8265     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8266     return static_cast<Result>( d.vkSetPrivateData(
8267       static_cast<VkDevice>( m_device ), static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), data ) );
8268   }
8269 #else
8270   // wrapper function for command vkSetPrivateData, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetPrivateData.html
8271   template <typename Dispatch>
setPrivateData(VULKAN_HPP_NAMESPACE::ObjectType objectType_,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,uint64_t data,Dispatch const & d) const8272   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
8273                                                                                  uint64_t                              objectHandle,
8274                                                                                  VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
8275                                                                                  uint64_t                              data,
8276                                                                                  Dispatch const &                      d ) const
8277   {
8278     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8279 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8280     VULKAN_HPP_ASSERT( d.vkSetPrivateData && "Function <vkSetPrivateData> requires <VK_EXT_private_data> or <VK_VERSION_1_3>" );
8281 #  endif
8282 
8283     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
8284       d.vkSetPrivateData( m_device, static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), data ) );
8285     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateData" );
8286 
8287     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
8288   }
8289 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
8290 
8291   // wrapper function for command vkGetPrivateData, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPrivateData.html
8292   template <typename Dispatch>
getPrivateData(VULKAN_HPP_NAMESPACE::ObjectType objectType_,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,uint64_t * pData,Dispatch const & d) const8293   VULKAN_HPP_INLINE void Device::getPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
8294                                                  uint64_t                              objectHandle,
8295                                                  VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
8296                                                  uint64_t *                            pData,
8297                                                  Dispatch const &                      d ) const VULKAN_HPP_NOEXCEPT
8298   {
8299     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8300     d.vkGetPrivateData(
8301       static_cast<VkDevice>( m_device ), static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), pData );
8302   }
8303 
8304 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
8305   // wrapper function for command vkGetPrivateData, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPrivateData.html
8306   template <typename Dispatch>
getPrivateData(VULKAN_HPP_NAMESPACE::ObjectType objectType_,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,Dispatch const & d) const8307   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Device::getPrivateData( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
8308                                                                           uint64_t                              objectHandle,
8309                                                                           VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
8310                                                                           Dispatch const &                      d ) const VULKAN_HPP_NOEXCEPT
8311   {
8312     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8313 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8314     VULKAN_HPP_ASSERT( d.vkGetPrivateData && "Function <vkGetPrivateData> requires <VK_EXT_private_data> or <VK_VERSION_1_3>" );
8315 #  endif
8316 
8317     uint64_t data;
8318     d.vkGetPrivateData( m_device, static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), &data );
8319 
8320     return data;
8321   }
8322 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
8323 
8324   // wrapper function for command vkCmdSetEvent2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetEvent2.html
8325   template <typename Dispatch>
setEvent2(VULKAN_HPP_NAMESPACE::Event event,const VULKAN_HPP_NAMESPACE::DependencyInfo * pDependencyInfo,Dispatch const & d) const8326   VULKAN_HPP_INLINE void CommandBuffer::setEvent2( VULKAN_HPP_NAMESPACE::Event                  event,
8327                                                    const VULKAN_HPP_NAMESPACE::DependencyInfo * pDependencyInfo,
8328                                                    Dispatch const &                             d ) const VULKAN_HPP_NOEXCEPT
8329   {
8330     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8331     d.vkCmdSetEvent2(
8332       static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkEvent>( event ), reinterpret_cast<const VkDependencyInfo *>( pDependencyInfo ) );
8333   }
8334 
8335 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
8336   // wrapper function for command vkCmdSetEvent2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetEvent2.html
8337   template <typename Dispatch>
setEvent2(VULKAN_HPP_NAMESPACE::Event event,const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo,Dispatch const & d) const8338   VULKAN_HPP_INLINE void CommandBuffer::setEvent2( VULKAN_HPP_NAMESPACE::Event                  event,
8339                                                    const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo,
8340                                                    Dispatch const &                             d ) const VULKAN_HPP_NOEXCEPT
8341   {
8342     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8343 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8344     VULKAN_HPP_ASSERT( d.vkCmdSetEvent2 && "Function <vkCmdSetEvent2> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" );
8345 #  endif
8346 
8347     d.vkCmdSetEvent2( m_commandBuffer, static_cast<VkEvent>( event ), reinterpret_cast<const VkDependencyInfo *>( &dependencyInfo ) );
8348   }
8349 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
8350 
8351   // wrapper function for command vkCmdResetEvent2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdResetEvent2.html
8352   template <typename Dispatch>
resetEvent2(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask,Dispatch const & d) const8353   VULKAN_HPP_INLINE void CommandBuffer::resetEvent2( VULKAN_HPP_NAMESPACE::Event               event,
8354                                                      VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask,
8355                                                      Dispatch const &                          d ) const VULKAN_HPP_NOEXCEPT
8356   {
8357     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8358     d.vkCmdResetEvent2( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags2>( stageMask ) );
8359   }
8360 
8361   // wrapper function for command vkCmdWaitEvents2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWaitEvents2.html
8362   template <typename Dispatch>
waitEvents2(uint32_t eventCount,const VULKAN_HPP_NAMESPACE::Event * pEvents,const VULKAN_HPP_NAMESPACE::DependencyInfo * pDependencyInfos,Dispatch const & d) const8363   VULKAN_HPP_INLINE void CommandBuffer::waitEvents2( uint32_t                                     eventCount,
8364                                                      const VULKAN_HPP_NAMESPACE::Event *          pEvents,
8365                                                      const VULKAN_HPP_NAMESPACE::DependencyInfo * pDependencyInfos,
8366                                                      Dispatch const &                             d ) const VULKAN_HPP_NOEXCEPT
8367   {
8368     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8369     d.vkCmdWaitEvents2( static_cast<VkCommandBuffer>( m_commandBuffer ),
8370                         eventCount,
8371                         reinterpret_cast<const VkEvent *>( pEvents ),
8372                         reinterpret_cast<const VkDependencyInfo *>( pDependencyInfos ) );
8373   }
8374 
8375 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
8376   // wrapper function for command vkCmdWaitEvents2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWaitEvents2.html
8377   template <typename Dispatch>
waitEvents2(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfo> const & dependencyInfos,Dispatch const & d) const8378   VULKAN_HPP_INLINE void CommandBuffer::waitEvents2( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const &          events,
8379                                                      VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfo> const & dependencyInfos,
8380                                                      Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
8381   {
8382     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8383 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8384     VULKAN_HPP_ASSERT( d.vkCmdWaitEvents2 && "Function <vkCmdWaitEvents2> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" );
8385 #  endif
8386 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
8387     VULKAN_HPP_ASSERT( events.size() == dependencyInfos.size() );
8388 #  else
8389     if ( events.size() != dependencyInfos.size() )
8390     {
8391       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::waitEvents2: events.size() != dependencyInfos.size()" );
8392     }
8393 #  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
8394 
8395     d.vkCmdWaitEvents2( m_commandBuffer,
8396                         events.size(),
8397                         reinterpret_cast<const VkEvent *>( events.data() ),
8398                         reinterpret_cast<const VkDependencyInfo *>( dependencyInfos.data() ) );
8399   }
8400 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
8401 
8402   // wrapper function for command vkCmdPipelineBarrier2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPipelineBarrier2.html
8403   template <typename Dispatch>
pipelineBarrier2(const VULKAN_HPP_NAMESPACE::DependencyInfo * pDependencyInfo,Dispatch const & d) const8404   VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier2( const VULKAN_HPP_NAMESPACE::DependencyInfo * pDependencyInfo,
8405                                                           Dispatch const &                             d ) const VULKAN_HPP_NOEXCEPT
8406   {
8407     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8408     d.vkCmdPipelineBarrier2( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkDependencyInfo *>( pDependencyInfo ) );
8409   }
8410 
8411 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
8412   // wrapper function for command vkCmdPipelineBarrier2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPipelineBarrier2.html
8413   template <typename Dispatch>
pipelineBarrier2(const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo,Dispatch const & d) const8414   VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier2( const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo,
8415                                                           Dispatch const &                             d ) const VULKAN_HPP_NOEXCEPT
8416   {
8417     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8418 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8419     VULKAN_HPP_ASSERT( d.vkCmdPipelineBarrier2 && "Function <vkCmdPipelineBarrier2> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" );
8420 #  endif
8421 
8422     d.vkCmdPipelineBarrier2( m_commandBuffer, reinterpret_cast<const VkDependencyInfo *>( &dependencyInfo ) );
8423   }
8424 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
8425 
8426   // wrapper function for command vkCmdWriteTimestamp2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWriteTimestamp2.html
8427   template <typename Dispatch>
writeTimestamp2(VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,Dispatch const & d) const8428   VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp2( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage,
8429                                                          VULKAN_HPP_NAMESPACE::QueryPool           queryPool,
8430                                                          uint32_t                                  query,
8431                                                          Dispatch const &                          d ) const VULKAN_HPP_NOEXCEPT
8432   {
8433     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8434     d.vkCmdWriteTimestamp2(
8435       static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPipelineStageFlags2>( stage ), static_cast<VkQueryPool>( queryPool ), query );
8436   }
8437 
8438   // wrapper function for command vkQueueSubmit2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSubmit2.html
8439   template <typename Dispatch>
submit2(uint32_t submitCount,const VULKAN_HPP_NAMESPACE::SubmitInfo2 * pSubmits,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const8440   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::submit2( uint32_t                                  submitCount,
8441                                                                 const VULKAN_HPP_NAMESPACE::SubmitInfo2 * pSubmits,
8442                                                                 VULKAN_HPP_NAMESPACE::Fence               fence,
8443                                                                 Dispatch const &                          d ) const VULKAN_HPP_NOEXCEPT
8444   {
8445     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8446     return static_cast<Result>(
8447       d.vkQueueSubmit2( static_cast<VkQueue>( m_queue ), submitCount, reinterpret_cast<const VkSubmitInfo2 *>( pSubmits ), static_cast<VkFence>( fence ) ) );
8448   }
8449 
8450 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
8451   // wrapper function for command vkQueueSubmit2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSubmit2.html
8452   template <typename Dispatch>
submit2(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2> const & submits,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const8453   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Queue::submit2(
8454     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2> const & submits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const
8455   {
8456     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8457 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8458     VULKAN_HPP_ASSERT( d.vkQueueSubmit2 && "Function <vkQueueSubmit2> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" );
8459 #  endif
8460 
8461     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
8462       d.vkQueueSubmit2( m_queue, submits.size(), reinterpret_cast<const VkSubmitInfo2 *>( submits.data() ), static_cast<VkFence>( fence ) ) );
8463     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit2" );
8464 
8465     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
8466   }
8467 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
8468 
8469   // wrapper function for command vkCmdCopyBuffer2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyBuffer2.html
8470   template <typename Dispatch>
copyBuffer2(const VULKAN_HPP_NAMESPACE::CopyBufferInfo2 * pCopyBufferInfo,Dispatch const & d) const8471   VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2 * pCopyBufferInfo,
8472                                                      Dispatch const &                              d ) const VULKAN_HPP_NOEXCEPT
8473   {
8474     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8475     d.vkCmdCopyBuffer2( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCopyBufferInfo2 *>( pCopyBufferInfo ) );
8476   }
8477 
8478 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
8479   // wrapper function for command vkCmdCopyBuffer2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyBuffer2.html
8480   template <typename Dispatch>
copyBuffer2(const VULKAN_HPP_NAMESPACE::CopyBufferInfo2 & copyBufferInfo,Dispatch const & d) const8481   VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2 & copyBufferInfo,
8482                                                      Dispatch const &                              d ) const VULKAN_HPP_NOEXCEPT
8483   {
8484     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8485 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8486     VULKAN_HPP_ASSERT( d.vkCmdCopyBuffer2 && "Function <vkCmdCopyBuffer2> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
8487 #  endif
8488 
8489     d.vkCmdCopyBuffer2( m_commandBuffer, reinterpret_cast<const VkCopyBufferInfo2 *>( &copyBufferInfo ) );
8490   }
8491 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
8492 
8493   // wrapper function for command vkCmdCopyImage2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyImage2.html
8494   template <typename Dispatch>
copyImage2(const VULKAN_HPP_NAMESPACE::CopyImageInfo2 * pCopyImageInfo,Dispatch const & d) const8495   VULKAN_HPP_INLINE void CommandBuffer::copyImage2( const VULKAN_HPP_NAMESPACE::CopyImageInfo2 * pCopyImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
8496   {
8497     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8498     d.vkCmdCopyImage2( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCopyImageInfo2 *>( pCopyImageInfo ) );
8499   }
8500 
8501 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
8502   // wrapper function for command vkCmdCopyImage2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyImage2.html
8503   template <typename Dispatch>
copyImage2(const VULKAN_HPP_NAMESPACE::CopyImageInfo2 & copyImageInfo,Dispatch const & d) const8504   VULKAN_HPP_INLINE void CommandBuffer::copyImage2( const VULKAN_HPP_NAMESPACE::CopyImageInfo2 & copyImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
8505   {
8506     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8507 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8508     VULKAN_HPP_ASSERT( d.vkCmdCopyImage2 && "Function <vkCmdCopyImage2> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
8509 #  endif
8510 
8511     d.vkCmdCopyImage2( m_commandBuffer, reinterpret_cast<const VkCopyImageInfo2 *>( &copyImageInfo ) );
8512   }
8513 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
8514 
8515   // wrapper function for command vkCmdCopyBufferToImage2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyBufferToImage2.html
8516   template <typename Dispatch>
copyBufferToImage2(const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 * pCopyBufferToImageInfo,Dispatch const & d) const8517   VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage2( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 * pCopyBufferToImageInfo,
8518                                                             Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
8519   {
8520     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8521     d.vkCmdCopyBufferToImage2( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCopyBufferToImageInfo2 *>( pCopyBufferToImageInfo ) );
8522   }
8523 
8524 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
8525   // wrapper function for command vkCmdCopyBufferToImage2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyBufferToImage2.html
8526   template <typename Dispatch>
copyBufferToImage2(const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 & copyBufferToImageInfo,Dispatch const & d) const8527   VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage2( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 & copyBufferToImageInfo,
8528                                                             Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
8529   {
8530     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8531 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8532     VULKAN_HPP_ASSERT( d.vkCmdCopyBufferToImage2 && "Function <vkCmdCopyBufferToImage2> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
8533 #  endif
8534 
8535     d.vkCmdCopyBufferToImage2( m_commandBuffer, reinterpret_cast<const VkCopyBufferToImageInfo2 *>( &copyBufferToImageInfo ) );
8536   }
8537 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
8538 
8539   // wrapper function for command vkCmdCopyImageToBuffer2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyImageToBuffer2.html
8540   template <typename Dispatch>
copyImageToBuffer2(const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 * pCopyImageToBufferInfo,Dispatch const & d) const8541   VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer2( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 * pCopyImageToBufferInfo,
8542                                                             Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
8543   {
8544     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8545     d.vkCmdCopyImageToBuffer2( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCopyImageToBufferInfo2 *>( pCopyImageToBufferInfo ) );
8546   }
8547 
8548 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
8549   // wrapper function for command vkCmdCopyImageToBuffer2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyImageToBuffer2.html
8550   template <typename Dispatch>
copyImageToBuffer2(const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 & copyImageToBufferInfo,Dispatch const & d) const8551   VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer2( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 & copyImageToBufferInfo,
8552                                                             Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
8553   {
8554     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8555 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8556     VULKAN_HPP_ASSERT( d.vkCmdCopyImageToBuffer2 && "Function <vkCmdCopyImageToBuffer2> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
8557 #  endif
8558 
8559     d.vkCmdCopyImageToBuffer2( m_commandBuffer, reinterpret_cast<const VkCopyImageToBufferInfo2 *>( &copyImageToBufferInfo ) );
8560   }
8561 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
8562 
8563   // wrapper function for command vkCmdBlitImage2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBlitImage2.html
8564   template <typename Dispatch>
blitImage2(const VULKAN_HPP_NAMESPACE::BlitImageInfo2 * pBlitImageInfo,Dispatch const & d) const8565   VULKAN_HPP_INLINE void CommandBuffer::blitImage2( const VULKAN_HPP_NAMESPACE::BlitImageInfo2 * pBlitImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
8566   {
8567     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8568     d.vkCmdBlitImage2( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkBlitImageInfo2 *>( pBlitImageInfo ) );
8569   }
8570 
8571 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
8572   // wrapper function for command vkCmdBlitImage2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBlitImage2.html
8573   template <typename Dispatch>
blitImage2(const VULKAN_HPP_NAMESPACE::BlitImageInfo2 & blitImageInfo,Dispatch const & d) const8574   VULKAN_HPP_INLINE void CommandBuffer::blitImage2( const VULKAN_HPP_NAMESPACE::BlitImageInfo2 & blitImageInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
8575   {
8576     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8577 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8578     VULKAN_HPP_ASSERT( d.vkCmdBlitImage2 && "Function <vkCmdBlitImage2> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
8579 #  endif
8580 
8581     d.vkCmdBlitImage2( m_commandBuffer, reinterpret_cast<const VkBlitImageInfo2 *>( &blitImageInfo ) );
8582   }
8583 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
8584 
8585   // wrapper function for command vkCmdResolveImage2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdResolveImage2.html
8586   template <typename Dispatch>
resolveImage2(const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 * pResolveImageInfo,Dispatch const & d) const8587   VULKAN_HPP_INLINE void CommandBuffer::resolveImage2( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 * pResolveImageInfo,
8588                                                        Dispatch const &                                d ) const VULKAN_HPP_NOEXCEPT
8589   {
8590     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8591     d.vkCmdResolveImage2( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkResolveImageInfo2 *>( pResolveImageInfo ) );
8592   }
8593 
8594 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
8595   // wrapper function for command vkCmdResolveImage2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdResolveImage2.html
8596   template <typename Dispatch>
resolveImage2(const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 & resolveImageInfo,Dispatch const & d) const8597   VULKAN_HPP_INLINE void CommandBuffer::resolveImage2( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 & resolveImageInfo,
8598                                                        Dispatch const &                                d ) const VULKAN_HPP_NOEXCEPT
8599   {
8600     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8601 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8602     VULKAN_HPP_ASSERT( d.vkCmdResolveImage2 && "Function <vkCmdResolveImage2> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
8603 #  endif
8604 
8605     d.vkCmdResolveImage2( m_commandBuffer, reinterpret_cast<const VkResolveImageInfo2 *>( &resolveImageInfo ) );
8606   }
8607 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
8608 
8609   // wrapper function for command vkCmdBeginRendering, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginRendering.html
8610   template <typename Dispatch>
beginRendering(const VULKAN_HPP_NAMESPACE::RenderingInfo * pRenderingInfo,Dispatch const & d) const8611   VULKAN_HPP_INLINE void CommandBuffer::beginRendering( const VULKAN_HPP_NAMESPACE::RenderingInfo * pRenderingInfo,
8612                                                         Dispatch const &                            d ) const VULKAN_HPP_NOEXCEPT
8613   {
8614     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8615     d.vkCmdBeginRendering( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkRenderingInfo *>( pRenderingInfo ) );
8616   }
8617 
8618 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
8619   // wrapper function for command vkCmdBeginRendering, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginRendering.html
8620   template <typename Dispatch>
beginRendering(const VULKAN_HPP_NAMESPACE::RenderingInfo & renderingInfo,Dispatch const & d) const8621   VULKAN_HPP_INLINE void CommandBuffer::beginRendering( const VULKAN_HPP_NAMESPACE::RenderingInfo & renderingInfo,
8622                                                         Dispatch const &                            d ) const VULKAN_HPP_NOEXCEPT
8623   {
8624     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8625 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8626     VULKAN_HPP_ASSERT( d.vkCmdBeginRendering && "Function <vkCmdBeginRendering> requires <VK_KHR_dynamic_rendering> or <VK_VERSION_1_3>" );
8627 #  endif
8628 
8629     d.vkCmdBeginRendering( m_commandBuffer, reinterpret_cast<const VkRenderingInfo *>( &renderingInfo ) );
8630   }
8631 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
8632 
8633   // wrapper function for command vkCmdEndRendering, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndRendering.html
8634   template <typename Dispatch>
endRendering(Dispatch const & d) const8635   VULKAN_HPP_INLINE void CommandBuffer::endRendering( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
8636   {
8637     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8638     d.vkCmdEndRendering( static_cast<VkCommandBuffer>( m_commandBuffer ) );
8639   }
8640 
8641   // wrapper function for command vkCmdSetCullMode, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetCullMode.html
8642   template <typename Dispatch>
setCullMode(VULKAN_HPP_NAMESPACE::CullModeFlags cullMode,Dispatch const & d) const8643   VULKAN_HPP_INLINE void CommandBuffer::setCullMode( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
8644   {
8645     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8646     d.vkCmdSetCullMode( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkCullModeFlags>( cullMode ) );
8647   }
8648 
8649   // wrapper function for command vkCmdSetFrontFace, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetFrontFace.html
8650   template <typename Dispatch>
setFrontFace(VULKAN_HPP_NAMESPACE::FrontFace frontFace,Dispatch const & d) const8651   VULKAN_HPP_INLINE void CommandBuffer::setFrontFace( VULKAN_HPP_NAMESPACE::FrontFace frontFace, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
8652   {
8653     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8654     d.vkCmdSetFrontFace( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkFrontFace>( frontFace ) );
8655   }
8656 
8657   // wrapper function for command vkCmdSetPrimitiveTopology, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPrimitiveTopology.html
8658   template <typename Dispatch>
setPrimitiveTopology(VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology,Dispatch const & d) const8659   VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveTopology( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology,
8660                                                               Dispatch const &                        d ) const VULKAN_HPP_NOEXCEPT
8661   {
8662     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8663     d.vkCmdSetPrimitiveTopology( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPrimitiveTopology>( primitiveTopology ) );
8664   }
8665 
8666   // wrapper function for command vkCmdSetViewportWithCount, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetViewportWithCount.html
8667   template <typename Dispatch>
setViewportWithCount(uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::Viewport * pViewports,Dispatch const & d) const8668   VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCount( uint32_t                               viewportCount,
8669                                                               const VULKAN_HPP_NAMESPACE::Viewport * pViewports,
8670                                                               Dispatch const &                       d ) const VULKAN_HPP_NOEXCEPT
8671   {
8672     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8673     d.vkCmdSetViewportWithCount( static_cast<VkCommandBuffer>( m_commandBuffer ), viewportCount, reinterpret_cast<const VkViewport *>( pViewports ) );
8674   }
8675 
8676 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
8677   // wrapper function for command vkCmdSetViewportWithCount, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetViewportWithCount.html
8678   template <typename Dispatch>
setViewportWithCount(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports,Dispatch const & d) const8679   VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCount( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports,
8680                                                               Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
8681   {
8682     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8683 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8684     VULKAN_HPP_ASSERT( d.vkCmdSetViewportWithCount &&
8685                        "Function <vkCmdSetViewportWithCount> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
8686 #  endif
8687 
8688     d.vkCmdSetViewportWithCount( m_commandBuffer, viewports.size(), reinterpret_cast<const VkViewport *>( viewports.data() ) );
8689   }
8690 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
8691 
8692   // wrapper function for command vkCmdSetScissorWithCount, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetScissorWithCount.html
8693   template <typename Dispatch>
8694   VULKAN_HPP_INLINE void
setScissorWithCount(uint32_t scissorCount,const VULKAN_HPP_NAMESPACE::Rect2D * pScissors,Dispatch const & d) const8695     CommandBuffer::setScissorWithCount( uint32_t scissorCount, const VULKAN_HPP_NAMESPACE::Rect2D * pScissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
8696   {
8697     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8698     d.vkCmdSetScissorWithCount( static_cast<VkCommandBuffer>( m_commandBuffer ), scissorCount, reinterpret_cast<const VkRect2D *>( pScissors ) );
8699   }
8700 
8701 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
8702   // wrapper function for command vkCmdSetScissorWithCount, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetScissorWithCount.html
8703   template <typename Dispatch>
setScissorWithCount(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors,Dispatch const & d) const8704   VULKAN_HPP_INLINE void CommandBuffer::setScissorWithCount( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors,
8705                                                              Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
8706   {
8707     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8708 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8709     VULKAN_HPP_ASSERT( d.vkCmdSetScissorWithCount &&
8710                        "Function <vkCmdSetScissorWithCount> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
8711 #  endif
8712 
8713     d.vkCmdSetScissorWithCount( m_commandBuffer, scissors.size(), reinterpret_cast<const VkRect2D *>( scissors.data() ) );
8714   }
8715 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
8716 
8717   // wrapper function for command vkCmdBindVertexBuffers2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindVertexBuffers2.html
8718   template <typename Dispatch>
bindVertexBuffers2(uint32_t firstBinding,uint32_t bindingCount,const VULKAN_HPP_NAMESPACE::Buffer * pBuffers,const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets,const VULKAN_HPP_NAMESPACE::DeviceSize * pSizes,const VULKAN_HPP_NAMESPACE::DeviceSize * pStrides,Dispatch const & d) const8719   VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers2( uint32_t                                 firstBinding,
8720                                                             uint32_t                                 bindingCount,
8721                                                             const VULKAN_HPP_NAMESPACE::Buffer *     pBuffers,
8722                                                             const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets,
8723                                                             const VULKAN_HPP_NAMESPACE::DeviceSize * pSizes,
8724                                                             const VULKAN_HPP_NAMESPACE::DeviceSize * pStrides,
8725                                                             Dispatch const &                         d ) const VULKAN_HPP_NOEXCEPT
8726   {
8727     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8728     d.vkCmdBindVertexBuffers2( static_cast<VkCommandBuffer>( m_commandBuffer ),
8729                                firstBinding,
8730                                bindingCount,
8731                                reinterpret_cast<const VkBuffer *>( pBuffers ),
8732                                reinterpret_cast<const VkDeviceSize *>( pOffsets ),
8733                                reinterpret_cast<const VkDeviceSize *>( pSizes ),
8734                                reinterpret_cast<const VkDeviceSize *>( pStrides ) );
8735   }
8736 
8737 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
8738   // wrapper function for command vkCmdBindVertexBuffers2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindVertexBuffers2.html
8739   template <typename Dispatch>
bindVertexBuffers2(uint32_t firstBinding,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & strides,Dispatch const & d) const8740   VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers2( uint32_t                                                                         firstBinding,
8741                                                             VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const &     buffers,
8742                                                             VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets,
8743                                                             VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes,
8744                                                             VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & strides,
8745                                                             Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
8746   {
8747     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8748 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8749     VULKAN_HPP_ASSERT( d.vkCmdBindVertexBuffers2 &&
8750                        "Function <vkCmdBindVertexBuffers2> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
8751 #  endif
8752 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
8753     VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
8754     VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() );
8755     VULKAN_HPP_ASSERT( strides.empty() || buffers.size() == strides.size() );
8756 #  else
8757     if ( buffers.size() != offsets.size() )
8758     {
8759       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2: buffers.size() != offsets.size()" );
8760     }
8761     if ( !sizes.empty() && buffers.size() != sizes.size() )
8762     {
8763       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2: buffers.size() != sizes.size()" );
8764     }
8765     if ( !strides.empty() && buffers.size() != strides.size() )
8766     {
8767       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2: buffers.size() != strides.size()" );
8768     }
8769 #  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
8770 
8771     d.vkCmdBindVertexBuffers2( m_commandBuffer,
8772                                firstBinding,
8773                                buffers.size(),
8774                                reinterpret_cast<const VkBuffer *>( buffers.data() ),
8775                                reinterpret_cast<const VkDeviceSize *>( offsets.data() ),
8776                                reinterpret_cast<const VkDeviceSize *>( sizes.data() ),
8777                                reinterpret_cast<const VkDeviceSize *>( strides.data() ) );
8778   }
8779 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
8780 
8781   // wrapper function for command vkCmdSetDepthTestEnable, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthTestEnable.html
8782   template <typename Dispatch>
setDepthTestEnable(VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable,Dispatch const & d) const8783   VULKAN_HPP_INLINE void CommandBuffer::setDepthTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
8784   {
8785     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8786     d.vkCmdSetDepthTestEnable( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthTestEnable ) );
8787   }
8788 
8789   // wrapper function for command vkCmdSetDepthWriteEnable, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthWriteEnable.html
8790   template <typename Dispatch>
setDepthWriteEnable(VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable,Dispatch const & d) const8791   VULKAN_HPP_INLINE void CommandBuffer::setDepthWriteEnable( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
8792   {
8793     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8794     d.vkCmdSetDepthWriteEnable( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthWriteEnable ) );
8795   }
8796 
8797   // wrapper function for command vkCmdSetDepthCompareOp, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthCompareOp.html
8798   template <typename Dispatch>
setDepthCompareOp(VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp,Dispatch const & d) const8799   VULKAN_HPP_INLINE void CommandBuffer::setDepthCompareOp( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
8800   {
8801     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8802     d.vkCmdSetDepthCompareOp( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkCompareOp>( depthCompareOp ) );
8803   }
8804 
8805   // wrapper function for command vkCmdSetDepthBoundsTestEnable, see
8806   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthBoundsTestEnable.html
8807   template <typename Dispatch>
setDepthBoundsTestEnable(VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable,Dispatch const & d) const8808   VULKAN_HPP_INLINE void CommandBuffer::setDepthBoundsTestEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable,
8809                                                                   Dispatch const &             d ) const VULKAN_HPP_NOEXCEPT
8810   {
8811     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8812     d.vkCmdSetDepthBoundsTestEnable( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthBoundsTestEnable ) );
8813   }
8814 
8815   // wrapper function for command vkCmdSetStencilTestEnable, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetStencilTestEnable.html
8816   template <typename Dispatch>
setStencilTestEnable(VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable,Dispatch const & d) const8817   VULKAN_HPP_INLINE void CommandBuffer::setStencilTestEnable( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
8818   {
8819     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8820     d.vkCmdSetStencilTestEnable( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( stencilTestEnable ) );
8821   }
8822 
8823   // wrapper function for command vkCmdSetStencilOp, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetStencilOp.html
8824   template <typename Dispatch>
setStencilOp(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,VULKAN_HPP_NAMESPACE::StencilOp failOp,VULKAN_HPP_NAMESPACE::StencilOp passOp,VULKAN_HPP_NAMESPACE::StencilOp depthFailOp,VULKAN_HPP_NAMESPACE::CompareOp compareOp,Dispatch const & d) const8825   VULKAN_HPP_INLINE void CommandBuffer::setStencilOp( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,
8826                                                       VULKAN_HPP_NAMESPACE::StencilOp        failOp,
8827                                                       VULKAN_HPP_NAMESPACE::StencilOp        passOp,
8828                                                       VULKAN_HPP_NAMESPACE::StencilOp        depthFailOp,
8829                                                       VULKAN_HPP_NAMESPACE::CompareOp        compareOp,
8830                                                       Dispatch const &                       d ) const VULKAN_HPP_NOEXCEPT
8831   {
8832     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8833     d.vkCmdSetStencilOp( static_cast<VkCommandBuffer>( m_commandBuffer ),
8834                          static_cast<VkStencilFaceFlags>( faceMask ),
8835                          static_cast<VkStencilOp>( failOp ),
8836                          static_cast<VkStencilOp>( passOp ),
8837                          static_cast<VkStencilOp>( depthFailOp ),
8838                          static_cast<VkCompareOp>( compareOp ) );
8839   }
8840 
8841   // wrapper function for command vkCmdSetRasterizerDiscardEnable, see
8842   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetRasterizerDiscardEnable.html
8843   template <typename Dispatch>
setRasterizerDiscardEnable(VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable,Dispatch const & d) const8844   VULKAN_HPP_INLINE void CommandBuffer::setRasterizerDiscardEnable( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable,
8845                                                                     Dispatch const &             d ) const VULKAN_HPP_NOEXCEPT
8846   {
8847     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8848     d.vkCmdSetRasterizerDiscardEnable( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( rasterizerDiscardEnable ) );
8849   }
8850 
8851   // wrapper function for command vkCmdSetDepthBiasEnable, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthBiasEnable.html
8852   template <typename Dispatch>
setDepthBiasEnable(VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable,Dispatch const & d) const8853   VULKAN_HPP_INLINE void CommandBuffer::setDepthBiasEnable( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
8854   {
8855     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8856     d.vkCmdSetDepthBiasEnable( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthBiasEnable ) );
8857   }
8858 
8859   // wrapper function for command vkCmdSetPrimitiveRestartEnable, see
8860   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPrimitiveRestartEnable.html
8861   template <typename Dispatch>
setPrimitiveRestartEnable(VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable,Dispatch const & d) const8862   VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveRestartEnable( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable,
8863                                                                    Dispatch const &             d ) const VULKAN_HPP_NOEXCEPT
8864   {
8865     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8866     d.vkCmdSetPrimitiveRestartEnable( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( primitiveRestartEnable ) );
8867   }
8868 
8869   // wrapper function for command vkGetDeviceBufferMemoryRequirements, see
8870   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceBufferMemoryRequirements.html
8871   template <typename Dispatch>
getBufferMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const8872   VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements * pInfo,
8873                                                               VULKAN_HPP_NAMESPACE::MemoryRequirements2 *                  pMemoryRequirements,
8874                                                               Dispatch const &                                             d ) const VULKAN_HPP_NOEXCEPT
8875   {
8876     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8877     d.vkGetDeviceBufferMemoryRequirements( static_cast<VkDevice>( m_device ),
8878                                            reinterpret_cast<const VkDeviceBufferMemoryRequirements *>( pInfo ),
8879                                            reinterpret_cast<VkMemoryRequirements2 *>( pMemoryRequirements ) );
8880   }
8881 
8882 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
8883   // wrapper function for command vkGetDeviceBufferMemoryRequirements, see
8884   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceBufferMemoryRequirements.html
8885   template <typename Dispatch>
8886   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
getBufferMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info,Dispatch const & d) const8887     Device::getBufferMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
8888   {
8889     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8890 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8891     VULKAN_HPP_ASSERT( d.vkGetDeviceBufferMemoryRequirements &&
8892                        "Function <vkGetDeviceBufferMemoryRequirements> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" );
8893 #  endif
8894 
8895     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
8896     d.vkGetDeviceBufferMemoryRequirements(
8897       m_device, reinterpret_cast<const VkDeviceBufferMemoryRequirements *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
8898 
8899     return memoryRequirements;
8900   }
8901 
8902   // wrapper function for command vkGetDeviceBufferMemoryRequirements, see
8903   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceBufferMemoryRequirements.html
8904   template <typename X, typename Y, typename... Z, typename Dispatch>
8905   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getBufferMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info,Dispatch const & d) const8906     Device::getBufferMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
8907   {
8908     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8909 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8910     VULKAN_HPP_ASSERT( d.vkGetDeviceBufferMemoryRequirements &&
8911                        "Function <vkGetDeviceBufferMemoryRequirements> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" );
8912 #  endif
8913 
8914     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
8915     VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
8916     d.vkGetDeviceBufferMemoryRequirements(
8917       m_device, reinterpret_cast<const VkDeviceBufferMemoryRequirements *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
8918 
8919     return structureChain;
8920   }
8921 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
8922 
8923   // wrapper function for command vkGetDeviceImageMemoryRequirements, see
8924   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceImageMemoryRequirements.html
8925   template <typename Dispatch>
getImageMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const8926   VULKAN_HPP_INLINE void Device::getImageMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements * pInfo,
8927                                                              VULKAN_HPP_NAMESPACE::MemoryRequirements2 *                 pMemoryRequirements,
8928                                                              Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
8929   {
8930     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8931     d.vkGetDeviceImageMemoryRequirements( static_cast<VkDevice>( m_device ),
8932                                           reinterpret_cast<const VkDeviceImageMemoryRequirements *>( pInfo ),
8933                                           reinterpret_cast<VkMemoryRequirements2 *>( pMemoryRequirements ) );
8934   }
8935 
8936 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
8937   // wrapper function for command vkGetDeviceImageMemoryRequirements, see
8938   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceImageMemoryRequirements.html
8939   template <typename Dispatch>
8940   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
getImageMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,Dispatch const & d) const8941     Device::getImageMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
8942   {
8943     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8944 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8945     VULKAN_HPP_ASSERT( d.vkGetDeviceImageMemoryRequirements &&
8946                        "Function <vkGetDeviceImageMemoryRequirements> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" );
8947 #  endif
8948 
8949     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
8950     d.vkGetDeviceImageMemoryRequirements(
8951       m_device, reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
8952 
8953     return memoryRequirements;
8954   }
8955 
8956   // wrapper function for command vkGetDeviceImageMemoryRequirements, see
8957   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceImageMemoryRequirements.html
8958   template <typename X, typename Y, typename... Z, typename Dispatch>
8959   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getImageMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,Dispatch const & d) const8960     Device::getImageMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
8961   {
8962     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8963 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
8964     VULKAN_HPP_ASSERT( d.vkGetDeviceImageMemoryRequirements &&
8965                        "Function <vkGetDeviceImageMemoryRequirements> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" );
8966 #  endif
8967 
8968     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
8969     VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
8970     d.vkGetDeviceImageMemoryRequirements(
8971       m_device, reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
8972 
8973     return structureChain;
8974   }
8975 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
8976 
8977   // wrapper function for command vkGetDeviceImageSparseMemoryRequirements, see
8978   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceImageSparseMemoryRequirements.html
8979   template <typename Dispatch>
getImageSparseMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements * pInfo,uint32_t * pSparseMemoryRequirementCount,VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 * pSparseMemoryRequirements,Dispatch const & d) const8980   VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements * pInfo,
8981                                                                    uint32_t *                                                  pSparseMemoryRequirementCount,
8982                                                                    VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 *      pSparseMemoryRequirements,
8983                                                                    Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
8984   {
8985     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
8986     d.vkGetDeviceImageSparseMemoryRequirements( static_cast<VkDevice>( m_device ),
8987                                                 reinterpret_cast<const VkDeviceImageMemoryRequirements *>( pInfo ),
8988                                                 pSparseMemoryRequirementCount,
8989                                                 reinterpret_cast<VkSparseImageMemoryRequirements2 *>( pSparseMemoryRequirements ) );
8990   }
8991 
8992 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
8993   // wrapper function for command vkGetDeviceImageSparseMemoryRequirements, see
8994   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceImageSparseMemoryRequirements.html
8995   template <typename SparseImageMemoryRequirements2Allocator,
8996             typename Dispatch,
8997             typename std::enable_if<
8998               std::is_same<typename SparseImageMemoryRequirements2Allocator::value_type, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>::value,
8999               int>::type>
9000   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator>
getImageSparseMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,Dispatch const & d) const9001     Device::getImageSparseMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info, Dispatch const & d ) const
9002   {
9003     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9004 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9005     VULKAN_HPP_ASSERT( d.vkGetDeviceImageSparseMemoryRequirements &&
9006                        "Function <vkGetDeviceImageSparseMemoryRequirements> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" );
9007 #  endif
9008 
9009     std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements;
9010     uint32_t                                                                                                   sparseMemoryRequirementCount;
9011     d.vkGetDeviceImageSparseMemoryRequirements(
9012       m_device, reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ), &sparseMemoryRequirementCount, nullptr );
9013     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
9014     d.vkGetDeviceImageSparseMemoryRequirements( m_device,
9015                                                 reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ),
9016                                                 &sparseMemoryRequirementCount,
9017                                                 reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
9018 
9019     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
9020     if ( sparseMemoryRequirementCount < sparseMemoryRequirements.size() )
9021     {
9022       sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
9023     }
9024     return sparseMemoryRequirements;
9025   }
9026 
9027   // wrapper function for command vkGetDeviceImageSparseMemoryRequirements, see
9028   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceImageSparseMemoryRequirements.html
9029   template <typename SparseImageMemoryRequirements2Allocator,
9030             typename Dispatch,
9031             typename std::enable_if<
9032               std::is_same<typename SparseImageMemoryRequirements2Allocator::value_type, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>::value,
9033               int>::type>
9034   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator>
getImageSparseMemoryRequirements(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator,Dispatch const & d) const9035                                          Device::getImageSparseMemoryRequirements( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,
9036                                               SparseImageMemoryRequirements2Allocator &                   sparseImageMemoryRequirements2Allocator,
9037                                               Dispatch const &                                            d ) const
9038   {
9039     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9040 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9041     VULKAN_HPP_ASSERT( d.vkGetDeviceImageSparseMemoryRequirements &&
9042                        "Function <vkGetDeviceImageSparseMemoryRequirements> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" );
9043 #  endif
9044 
9045     std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements(
9046       sparseImageMemoryRequirements2Allocator );
9047     uint32_t sparseMemoryRequirementCount;
9048     d.vkGetDeviceImageSparseMemoryRequirements(
9049       m_device, reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ), &sparseMemoryRequirementCount, nullptr );
9050     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
9051     d.vkGetDeviceImageSparseMemoryRequirements( m_device,
9052                                                 reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ),
9053                                                 &sparseMemoryRequirementCount,
9054                                                 reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
9055 
9056     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
9057     if ( sparseMemoryRequirementCount < sparseMemoryRequirements.size() )
9058     {
9059       sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
9060     }
9061     return sparseMemoryRequirements;
9062   }
9063 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9064 
9065   //=== VK_VERSION_1_4 ===
9066 
9067   // wrapper function for command vkCmdSetLineStipple, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetLineStipple.html
9068   template <typename Dispatch>
setLineStipple(uint32_t lineStippleFactor,uint16_t lineStipplePattern,Dispatch const & d) const9069   VULKAN_HPP_INLINE void CommandBuffer::setLineStipple( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
9070   {
9071     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9072     d.vkCmdSetLineStipple( static_cast<VkCommandBuffer>( m_commandBuffer ), lineStippleFactor, lineStipplePattern );
9073   }
9074 
9075   // wrapper function for command vkMapMemory2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkMapMemory2.html
9076   template <typename Dispatch>
mapMemory2(const VULKAN_HPP_NAMESPACE::MemoryMapInfo * pMemoryMapInfo,void ** ppData,Dispatch const & d) const9077   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::mapMemory2( const VULKAN_HPP_NAMESPACE::MemoryMapInfo * pMemoryMapInfo,
9078                                                                     void **                                     ppData,
9079                                                                     Dispatch const &                            d ) const VULKAN_HPP_NOEXCEPT
9080   {
9081     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9082     return static_cast<Result>( d.vkMapMemory2( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryMapInfo *>( pMemoryMapInfo ), ppData ) );
9083   }
9084 
9085 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9086   // wrapper function for command vkMapMemory2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkMapMemory2.html
9087   template <typename Dispatch>
mapMemory2(const VULKAN_HPP_NAMESPACE::MemoryMapInfo & memoryMapInfo,Dispatch const & d) const9088   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<void *>::type Device::mapMemory2( const VULKAN_HPP_NAMESPACE::MemoryMapInfo & memoryMapInfo,
9089                                                                                                     Dispatch const &                            d ) const
9090   {
9091     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9092 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9093     VULKAN_HPP_ASSERT( d.vkMapMemory2 && "Function <vkMapMemory2> requires <VK_KHR_map_memory2> or <VK_VERSION_1_4>" );
9094 #  endif
9095 
9096     void *                       pData;
9097     VULKAN_HPP_NAMESPACE::Result result =
9098       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkMapMemory2( m_device, reinterpret_cast<const VkMemoryMapInfo *>( &memoryMapInfo ), &pData ) );
9099     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mapMemory2" );
9100 
9101     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( pData ) );
9102   }
9103 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9104 
9105   // wrapper function for command vkUnmapMemory2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkUnmapMemory2.html
9106   template <typename Dispatch>
unmapMemory2(const VULKAN_HPP_NAMESPACE::MemoryUnmapInfo * pMemoryUnmapInfo,Dispatch const & d) const9107   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::unmapMemory2( const VULKAN_HPP_NAMESPACE::MemoryUnmapInfo * pMemoryUnmapInfo,
9108                                                                       Dispatch const &                              d ) const VULKAN_HPP_NOEXCEPT
9109   {
9110     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9111     return static_cast<Result>( d.vkUnmapMemory2( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryUnmapInfo *>( pMemoryUnmapInfo ) ) );
9112   }
9113 
9114 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9115   // wrapper function for command vkUnmapMemory2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkUnmapMemory2.html
9116   template <typename Dispatch>
unmapMemory2(const VULKAN_HPP_NAMESPACE::MemoryUnmapInfo & memoryUnmapInfo,Dispatch const & d) const9117   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::unmapMemory2( const VULKAN_HPP_NAMESPACE::MemoryUnmapInfo & memoryUnmapInfo,
9118                                                                                Dispatch const &                              d ) const
9119   {
9120     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9121 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9122     VULKAN_HPP_ASSERT( d.vkUnmapMemory2 && "Function <vkUnmapMemory2> requires <VK_KHR_map_memory2> or <VK_VERSION_1_4>" );
9123 #  endif
9124 
9125     VULKAN_HPP_NAMESPACE::Result result =
9126       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkUnmapMemory2( m_device, reinterpret_cast<const VkMemoryUnmapInfo *>( &memoryUnmapInfo ) ) );
9127     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::unmapMemory2" );
9128 
9129     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
9130   }
9131 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9132 
9133   // wrapper function for command vkCmdBindIndexBuffer2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindIndexBuffer2.html
9134   template <typename Dispatch>
bindIndexBuffer2(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::DeviceSize size,VULKAN_HPP_NAMESPACE::IndexType indexType,Dispatch const & d) const9135   VULKAN_HPP_INLINE void CommandBuffer::bindIndexBuffer2( VULKAN_HPP_NAMESPACE::Buffer     buffer,
9136                                                           VULKAN_HPP_NAMESPACE::DeviceSize offset,
9137                                                           VULKAN_HPP_NAMESPACE::DeviceSize size,
9138                                                           VULKAN_HPP_NAMESPACE::IndexType  indexType,
9139                                                           Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
9140   {
9141     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9142     d.vkCmdBindIndexBuffer2( static_cast<VkCommandBuffer>( m_commandBuffer ),
9143                              static_cast<VkBuffer>( buffer ),
9144                              static_cast<VkDeviceSize>( offset ),
9145                              static_cast<VkDeviceSize>( size ),
9146                              static_cast<VkIndexType>( indexType ) );
9147   }
9148 
9149   // wrapper function for command vkGetRenderingAreaGranularity, see
9150   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRenderingAreaGranularity.html
9151   template <typename Dispatch>
getRenderingAreaGranularity(const VULKAN_HPP_NAMESPACE::RenderingAreaInfo * pRenderingAreaInfo,VULKAN_HPP_NAMESPACE::Extent2D * pGranularity,Dispatch const & d) const9152   VULKAN_HPP_INLINE void Device::getRenderingAreaGranularity( const VULKAN_HPP_NAMESPACE::RenderingAreaInfo * pRenderingAreaInfo,
9153                                                               VULKAN_HPP_NAMESPACE::Extent2D *                pGranularity,
9154                                                               Dispatch const &                                d ) const VULKAN_HPP_NOEXCEPT
9155   {
9156     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9157     d.vkGetRenderingAreaGranularity(
9158       static_cast<VkDevice>( m_device ), reinterpret_cast<const VkRenderingAreaInfo *>( pRenderingAreaInfo ), reinterpret_cast<VkExtent2D *>( pGranularity ) );
9159   }
9160 
9161 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9162   // wrapper function for command vkGetRenderingAreaGranularity, see
9163   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRenderingAreaGranularity.html
9164   template <typename Dispatch>
9165   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Extent2D
getRenderingAreaGranularity(const VULKAN_HPP_NAMESPACE::RenderingAreaInfo & renderingAreaInfo,Dispatch const & d) const9166     Device::getRenderingAreaGranularity( const VULKAN_HPP_NAMESPACE::RenderingAreaInfo & renderingAreaInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
9167   {
9168     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9169 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9170     VULKAN_HPP_ASSERT( d.vkGetRenderingAreaGranularity && "Function <vkGetRenderingAreaGranularity> requires <VK_KHR_maintenance5> or <VK_VERSION_1_4>" );
9171 #  endif
9172 
9173     VULKAN_HPP_NAMESPACE::Extent2D granularity;
9174     d.vkGetRenderingAreaGranularity(
9175       m_device, reinterpret_cast<const VkRenderingAreaInfo *>( &renderingAreaInfo ), reinterpret_cast<VkExtent2D *>( &granularity ) );
9176 
9177     return granularity;
9178   }
9179 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9180 
9181   // wrapper function for command vkGetDeviceImageSubresourceLayout, see
9182   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceImageSubresourceLayout.html
9183   template <typename Dispatch>
getImageSubresourceLayout(const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfo * pInfo,VULKAN_HPP_NAMESPACE::SubresourceLayout2 * pLayout,Dispatch const & d) const9184   VULKAN_HPP_INLINE void Device::getImageSubresourceLayout( const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfo * pInfo,
9185                                                             VULKAN_HPP_NAMESPACE::SubresourceLayout2 *               pLayout,
9186                                                             Dispatch const &                                         d ) const VULKAN_HPP_NOEXCEPT
9187   {
9188     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9189     d.vkGetDeviceImageSubresourceLayout(
9190       static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDeviceImageSubresourceInfo *>( pInfo ), reinterpret_cast<VkSubresourceLayout2 *>( pLayout ) );
9191   }
9192 
9193 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9194   // wrapper function for command vkGetDeviceImageSubresourceLayout, see
9195   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceImageSubresourceLayout.html
9196   template <typename Dispatch>
9197   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout2
getImageSubresourceLayout(const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfo & info,Dispatch const & d) const9198     Device::getImageSubresourceLayout( const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
9199   {
9200     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9201 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9202     VULKAN_HPP_ASSERT( d.vkGetDeviceImageSubresourceLayout &&
9203                        "Function <vkGetDeviceImageSubresourceLayout> requires <VK_KHR_maintenance5> or <VK_VERSION_1_4>" );
9204 #  endif
9205 
9206     VULKAN_HPP_NAMESPACE::SubresourceLayout2 layout;
9207     d.vkGetDeviceImageSubresourceLayout(
9208       m_device, reinterpret_cast<const VkDeviceImageSubresourceInfo *>( &info ), reinterpret_cast<VkSubresourceLayout2 *>( &layout ) );
9209 
9210     return layout;
9211   }
9212 
9213   // wrapper function for command vkGetDeviceImageSubresourceLayout, see
9214   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceImageSubresourceLayout.html
9215   template <typename X, typename Y, typename... Z, typename Dispatch>
9216   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getImageSubresourceLayout(const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfo & info,Dispatch const & d) const9217     Device::getImageSubresourceLayout( const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
9218   {
9219     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9220 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9221     VULKAN_HPP_ASSERT( d.vkGetDeviceImageSubresourceLayout &&
9222                        "Function <vkGetDeviceImageSubresourceLayout> requires <VK_KHR_maintenance5> or <VK_VERSION_1_4>" );
9223 #  endif
9224 
9225     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
9226     VULKAN_HPP_NAMESPACE::SubresourceLayout2 &       layout = structureChain.template get<VULKAN_HPP_NAMESPACE::SubresourceLayout2>();
9227     d.vkGetDeviceImageSubresourceLayout(
9228       m_device, reinterpret_cast<const VkDeviceImageSubresourceInfo *>( &info ), reinterpret_cast<VkSubresourceLayout2 *>( &layout ) );
9229 
9230     return structureChain;
9231   }
9232 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9233 
9234   // wrapper function for command vkGetImageSubresourceLayout2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSubresourceLayout2.html
9235   template <typename Dispatch>
getImageSubresourceLayout2(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::ImageSubresource2 * pSubresource,VULKAN_HPP_NAMESPACE::SubresourceLayout2 * pLayout,Dispatch const & d) const9236   VULKAN_HPP_INLINE void Device::getImageSubresourceLayout2( VULKAN_HPP_NAMESPACE::Image                     image,
9237                                                              const VULKAN_HPP_NAMESPACE::ImageSubresource2 * pSubresource,
9238                                                              VULKAN_HPP_NAMESPACE::SubresourceLayout2 *      pLayout,
9239                                                              Dispatch const &                                d ) const VULKAN_HPP_NOEXCEPT
9240   {
9241     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9242     d.vkGetImageSubresourceLayout2( static_cast<VkDevice>( m_device ),
9243                                     static_cast<VkImage>( image ),
9244                                     reinterpret_cast<const VkImageSubresource2 *>( pSubresource ),
9245                                     reinterpret_cast<VkSubresourceLayout2 *>( pLayout ) );
9246   }
9247 
9248 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9249   // wrapper function for command vkGetImageSubresourceLayout2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSubresourceLayout2.html
9250   template <typename Dispatch>
getImageSubresourceLayout2(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::ImageSubresource2 & subresource,Dispatch const & d) const9251   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout2 Device::getImageSubresourceLayout2(
9252     VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::ImageSubresource2 & subresource, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
9253   {
9254     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9255 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9256     VULKAN_HPP_ASSERT(
9257       d.vkGetImageSubresourceLayout2 &&
9258       "Function <vkGetImageSubresourceLayout2> requires <VK_EXT_host_image_copy> or <VK_EXT_image_compression_control> or <VK_KHR_maintenance5> or <VK_VERSION_1_4>" );
9259 #  endif
9260 
9261     VULKAN_HPP_NAMESPACE::SubresourceLayout2 layout;
9262     d.vkGetImageSubresourceLayout2( m_device,
9263                                     static_cast<VkImage>( image ),
9264                                     reinterpret_cast<const VkImageSubresource2 *>( &subresource ),
9265                                     reinterpret_cast<VkSubresourceLayout2 *>( &layout ) );
9266 
9267     return layout;
9268   }
9269 
9270   // wrapper function for command vkGetImageSubresourceLayout2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSubresourceLayout2.html
9271   template <typename X, typename Y, typename... Z, typename Dispatch>
getImageSubresourceLayout2(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::ImageSubresource2 & subresource,Dispatch const & d) const9272   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> Device::getImageSubresourceLayout2(
9273     VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::ImageSubresource2 & subresource, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
9274   {
9275     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9276 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9277     VULKAN_HPP_ASSERT(
9278       d.vkGetImageSubresourceLayout2 &&
9279       "Function <vkGetImageSubresourceLayout2> requires <VK_EXT_host_image_copy> or <VK_EXT_image_compression_control> or <VK_KHR_maintenance5> or <VK_VERSION_1_4>" );
9280 #  endif
9281 
9282     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
9283     VULKAN_HPP_NAMESPACE::SubresourceLayout2 &       layout = structureChain.template get<VULKAN_HPP_NAMESPACE::SubresourceLayout2>();
9284     d.vkGetImageSubresourceLayout2( m_device,
9285                                     static_cast<VkImage>( image ),
9286                                     reinterpret_cast<const VkImageSubresource2 *>( &subresource ),
9287                                     reinterpret_cast<VkSubresourceLayout2 *>( &layout ) );
9288 
9289     return structureChain;
9290   }
9291 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9292 
9293   // wrapper function for command vkCmdPushDescriptorSet, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushDescriptorSet.html
9294   template <typename Dispatch>
pushDescriptorSet(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t set,uint32_t descriptorWriteCount,const VULKAN_HPP_NAMESPACE::WriteDescriptorSet * pDescriptorWrites,Dispatch const & d) const9295   VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSet( VULKAN_HPP_NAMESPACE::PipelineBindPoint          pipelineBindPoint,
9296                                                            VULKAN_HPP_NAMESPACE::PipelineLayout             layout,
9297                                                            uint32_t                                         set,
9298                                                            uint32_t                                         descriptorWriteCount,
9299                                                            const VULKAN_HPP_NAMESPACE::WriteDescriptorSet * pDescriptorWrites,
9300                                                            Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
9301   {
9302     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9303     d.vkCmdPushDescriptorSet( static_cast<VkCommandBuffer>( m_commandBuffer ),
9304                               static_cast<VkPipelineBindPoint>( pipelineBindPoint ),
9305                               static_cast<VkPipelineLayout>( layout ),
9306                               set,
9307                               descriptorWriteCount,
9308                               reinterpret_cast<const VkWriteDescriptorSet *>( pDescriptorWrites ) );
9309   }
9310 
9311 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9312   // wrapper function for command vkCmdPushDescriptorSet, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushDescriptorSet.html
9313   template <typename Dispatch>
9314   VULKAN_HPP_INLINE void
pushDescriptorSet(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t set,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites,Dispatch const & d) const9315     CommandBuffer::pushDescriptorSet( VULKAN_HPP_NAMESPACE::PipelineBindPoint                                                  pipelineBindPoint,
9316                                       VULKAN_HPP_NAMESPACE::PipelineLayout                                                     layout,
9317                                       uint32_t                                                                                 set,
9318                                       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites,
9319                                       Dispatch const &                                                                         d ) const VULKAN_HPP_NOEXCEPT
9320   {
9321     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9322 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9323     VULKAN_HPP_ASSERT( d.vkCmdPushDescriptorSet && "Function <vkCmdPushDescriptorSet> requires <VK_KHR_push_descriptor> or <VK_VERSION_1_4>" );
9324 #  endif
9325 
9326     d.vkCmdPushDescriptorSet( m_commandBuffer,
9327                               static_cast<VkPipelineBindPoint>( pipelineBindPoint ),
9328                               static_cast<VkPipelineLayout>( layout ),
9329                               set,
9330                               descriptorWrites.size(),
9331                               reinterpret_cast<const VkWriteDescriptorSet *>( descriptorWrites.data() ) );
9332   }
9333 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9334 
9335   // wrapper function for command vkCmdPushDescriptorSetWithTemplate, see
9336   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushDescriptorSetWithTemplate.html
9337   template <typename Dispatch>
pushDescriptorSetWithTemplate(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t set,const void * pData,Dispatch const & d) const9338   VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,
9339                                                                        VULKAN_HPP_NAMESPACE::PipelineLayout           layout,
9340                                                                        uint32_t                                       set,
9341                                                                        const void *                                   pData,
9342                                                                        Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
9343   {
9344     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9345     d.vkCmdPushDescriptorSetWithTemplate( static_cast<VkCommandBuffer>( m_commandBuffer ),
9346                                           static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
9347                                           static_cast<VkPipelineLayout>( layout ),
9348                                           set,
9349                                           pData );
9350   }
9351 
9352 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9353   // wrapper function for command vkCmdPushDescriptorSetWithTemplate, see
9354   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushDescriptorSetWithTemplate.html
9355   template <typename DataType, typename Dispatch>
pushDescriptorSetWithTemplate(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t set,DataType const & data,Dispatch const & d) const9356   VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetWithTemplate( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,
9357                                                                        VULKAN_HPP_NAMESPACE::PipelineLayout           layout,
9358                                                                        uint32_t                                       set,
9359                                                                        DataType const &                               data,
9360                                                                        Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
9361   {
9362     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9363 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9364     VULKAN_HPP_ASSERT(
9365       d.vkCmdPushDescriptorSetWithTemplate &&
9366       "Function <vkCmdPushDescriptorSetWithTemplate> requires <VK_KHR_descriptor_update_template> or <VK_KHR_push_descriptor> or <VK_VERSION_1_4>" );
9367 #  endif
9368 
9369     d.vkCmdPushDescriptorSetWithTemplate( m_commandBuffer,
9370                                           static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
9371                                           static_cast<VkPipelineLayout>( layout ),
9372                                           set,
9373                                           reinterpret_cast<const void *>( &data ) );
9374   }
9375 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9376 
9377   // wrapper function for command vkCmdSetRenderingAttachmentLocations, see
9378   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetRenderingAttachmentLocations.html
9379   template <typename Dispatch>
setRenderingAttachmentLocations(const VULKAN_HPP_NAMESPACE::RenderingAttachmentLocationInfo * pLocationInfo,Dispatch const & d) const9380   VULKAN_HPP_INLINE void CommandBuffer::setRenderingAttachmentLocations( const VULKAN_HPP_NAMESPACE::RenderingAttachmentLocationInfo * pLocationInfo,
9381                                                                          Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
9382   {
9383     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9384     d.vkCmdSetRenderingAttachmentLocations( static_cast<VkCommandBuffer>( m_commandBuffer ),
9385                                             reinterpret_cast<const VkRenderingAttachmentLocationInfo *>( pLocationInfo ) );
9386   }
9387 
9388 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9389   // wrapper function for command vkCmdSetRenderingAttachmentLocations, see
9390   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetRenderingAttachmentLocations.html
9391   template <typename Dispatch>
setRenderingAttachmentLocations(const VULKAN_HPP_NAMESPACE::RenderingAttachmentLocationInfo & locationInfo,Dispatch const & d) const9392   VULKAN_HPP_INLINE void CommandBuffer::setRenderingAttachmentLocations( const VULKAN_HPP_NAMESPACE::RenderingAttachmentLocationInfo & locationInfo,
9393                                                                          Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
9394   {
9395     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9396 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9397     VULKAN_HPP_ASSERT( d.vkCmdSetRenderingAttachmentLocations &&
9398                        "Function <vkCmdSetRenderingAttachmentLocations> requires <VK_KHR_dynamic_rendering_local_read> or <VK_VERSION_1_4>" );
9399 #  endif
9400 
9401     d.vkCmdSetRenderingAttachmentLocations( m_commandBuffer, reinterpret_cast<const VkRenderingAttachmentLocationInfo *>( &locationInfo ) );
9402   }
9403 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9404 
9405   // wrapper function for command vkCmdSetRenderingInputAttachmentIndices, see
9406   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetRenderingInputAttachmentIndices.html
9407   template <typename Dispatch>
9408   VULKAN_HPP_INLINE void
setRenderingInputAttachmentIndices(const VULKAN_HPP_NAMESPACE::RenderingInputAttachmentIndexInfo * pInputAttachmentIndexInfo,Dispatch const & d) const9409     CommandBuffer::setRenderingInputAttachmentIndices( const VULKAN_HPP_NAMESPACE::RenderingInputAttachmentIndexInfo * pInputAttachmentIndexInfo,
9410                                                        Dispatch const &                                                d ) const VULKAN_HPP_NOEXCEPT
9411   {
9412     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9413     d.vkCmdSetRenderingInputAttachmentIndices( static_cast<VkCommandBuffer>( m_commandBuffer ),
9414                                                reinterpret_cast<const VkRenderingInputAttachmentIndexInfo *>( pInputAttachmentIndexInfo ) );
9415   }
9416 
9417 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9418   // wrapper function for command vkCmdSetRenderingInputAttachmentIndices, see
9419   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetRenderingInputAttachmentIndices.html
9420   template <typename Dispatch>
9421   VULKAN_HPP_INLINE void
setRenderingInputAttachmentIndices(const VULKAN_HPP_NAMESPACE::RenderingInputAttachmentIndexInfo & inputAttachmentIndexInfo,Dispatch const & d) const9422     CommandBuffer::setRenderingInputAttachmentIndices( const VULKAN_HPP_NAMESPACE::RenderingInputAttachmentIndexInfo & inputAttachmentIndexInfo,
9423                                                        Dispatch const &                                                d ) const VULKAN_HPP_NOEXCEPT
9424   {
9425     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9426 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9427     VULKAN_HPP_ASSERT( d.vkCmdSetRenderingInputAttachmentIndices &&
9428                        "Function <vkCmdSetRenderingInputAttachmentIndices> requires <VK_KHR_dynamic_rendering_local_read> or <VK_VERSION_1_4>" );
9429 #  endif
9430 
9431     d.vkCmdSetRenderingInputAttachmentIndices( m_commandBuffer, reinterpret_cast<const VkRenderingInputAttachmentIndexInfo *>( &inputAttachmentIndexInfo ) );
9432   }
9433 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9434 
9435   // wrapper function for command vkCmdBindDescriptorSets2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindDescriptorSets2.html
9436   template <typename Dispatch>
bindDescriptorSets2(const VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfo * pBindDescriptorSetsInfo,Dispatch const & d) const9437   VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorSets2( const VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfo * pBindDescriptorSetsInfo,
9438                                                              Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
9439   {
9440     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9441     d.vkCmdBindDescriptorSets2( static_cast<VkCommandBuffer>( m_commandBuffer ),
9442                                 reinterpret_cast<const VkBindDescriptorSetsInfo *>( pBindDescriptorSetsInfo ) );
9443   }
9444 
9445 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9446   // wrapper function for command vkCmdBindDescriptorSets2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindDescriptorSets2.html
9447   template <typename Dispatch>
bindDescriptorSets2(const VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfo & bindDescriptorSetsInfo,Dispatch const & d) const9448   VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorSets2( const VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfo & bindDescriptorSetsInfo,
9449                                                              Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
9450   {
9451     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9452 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9453     VULKAN_HPP_ASSERT( d.vkCmdBindDescriptorSets2 && "Function <vkCmdBindDescriptorSets2> requires <VK_KHR_maintenance6> or <VK_VERSION_1_4>" );
9454 #  endif
9455 
9456     d.vkCmdBindDescriptorSets2( m_commandBuffer, reinterpret_cast<const VkBindDescriptorSetsInfo *>( &bindDescriptorSetsInfo ) );
9457   }
9458 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9459 
9460   // wrapper function for command vkCmdPushConstants2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushConstants2.html
9461   template <typename Dispatch>
pushConstants2(const VULKAN_HPP_NAMESPACE::PushConstantsInfo * pPushConstantsInfo,Dispatch const & d) const9462   VULKAN_HPP_INLINE void CommandBuffer::pushConstants2( const VULKAN_HPP_NAMESPACE::PushConstantsInfo * pPushConstantsInfo,
9463                                                         Dispatch const &                                d ) const VULKAN_HPP_NOEXCEPT
9464   {
9465     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9466     d.vkCmdPushConstants2( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkPushConstantsInfo *>( pPushConstantsInfo ) );
9467   }
9468 
9469 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9470   // wrapper function for command vkCmdPushConstants2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushConstants2.html
9471   template <typename Dispatch>
pushConstants2(const VULKAN_HPP_NAMESPACE::PushConstantsInfo & pushConstantsInfo,Dispatch const & d) const9472   VULKAN_HPP_INLINE void CommandBuffer::pushConstants2( const VULKAN_HPP_NAMESPACE::PushConstantsInfo & pushConstantsInfo,
9473                                                         Dispatch const &                                d ) const VULKAN_HPP_NOEXCEPT
9474   {
9475     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9476 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9477     VULKAN_HPP_ASSERT( d.vkCmdPushConstants2 && "Function <vkCmdPushConstants2> requires <VK_KHR_maintenance6> or <VK_VERSION_1_4>" );
9478 #  endif
9479 
9480     d.vkCmdPushConstants2( m_commandBuffer, reinterpret_cast<const VkPushConstantsInfo *>( &pushConstantsInfo ) );
9481   }
9482 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9483 
9484   // wrapper function for command vkCmdPushDescriptorSet2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushDescriptorSet2.html
9485   template <typename Dispatch>
pushDescriptorSet2(const VULKAN_HPP_NAMESPACE::PushDescriptorSetInfo * pPushDescriptorSetInfo,Dispatch const & d) const9486   VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSet2( const VULKAN_HPP_NAMESPACE::PushDescriptorSetInfo * pPushDescriptorSetInfo,
9487                                                             Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
9488   {
9489     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9490     d.vkCmdPushDescriptorSet2( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkPushDescriptorSetInfo *>( pPushDescriptorSetInfo ) );
9491   }
9492 
9493 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9494   // wrapper function for command vkCmdPushDescriptorSet2, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushDescriptorSet2.html
9495   template <typename Dispatch>
pushDescriptorSet2(const VULKAN_HPP_NAMESPACE::PushDescriptorSetInfo & pushDescriptorSetInfo,Dispatch const & d) const9496   VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSet2( const VULKAN_HPP_NAMESPACE::PushDescriptorSetInfo & pushDescriptorSetInfo,
9497                                                             Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
9498   {
9499     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9500 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9501     VULKAN_HPP_ASSERT( d.vkCmdPushDescriptorSet2 && "Function <vkCmdPushDescriptorSet2> requires <VK_KHR_maintenance6> or <VK_VERSION_1_4>" );
9502 #  endif
9503 
9504     d.vkCmdPushDescriptorSet2( m_commandBuffer, reinterpret_cast<const VkPushDescriptorSetInfo *>( &pushDescriptorSetInfo ) );
9505   }
9506 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9507 
9508   // wrapper function for command vkCmdPushDescriptorSetWithTemplate2, see
9509   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushDescriptorSetWithTemplate2.html
9510   template <typename Dispatch>
9511   VULKAN_HPP_INLINE void
pushDescriptorSetWithTemplate2(const VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfo * pPushDescriptorSetWithTemplateInfo,Dispatch const & d) const9512     CommandBuffer::pushDescriptorSetWithTemplate2( const VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfo * pPushDescriptorSetWithTemplateInfo,
9513                                                    Dispatch const &                                                d ) const VULKAN_HPP_NOEXCEPT
9514   {
9515     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9516     d.vkCmdPushDescriptorSetWithTemplate2( static_cast<VkCommandBuffer>( m_commandBuffer ),
9517                                            reinterpret_cast<const VkPushDescriptorSetWithTemplateInfo *>( pPushDescriptorSetWithTemplateInfo ) );
9518   }
9519 
9520 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9521   // wrapper function for command vkCmdPushDescriptorSetWithTemplate2, see
9522   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushDescriptorSetWithTemplate2.html
9523   template <typename Dispatch>
9524   VULKAN_HPP_INLINE void
pushDescriptorSetWithTemplate2(const VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfo & pushDescriptorSetWithTemplateInfo,Dispatch const & d) const9525     CommandBuffer::pushDescriptorSetWithTemplate2( const VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfo & pushDescriptorSetWithTemplateInfo,
9526                                                    Dispatch const &                                                d ) const VULKAN_HPP_NOEXCEPT
9527   {
9528     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9529 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9530     VULKAN_HPP_ASSERT( d.vkCmdPushDescriptorSetWithTemplate2 &&
9531                        "Function <vkCmdPushDescriptorSetWithTemplate2> requires <VK_KHR_maintenance6> or <VK_VERSION_1_4>" );
9532 #  endif
9533 
9534     d.vkCmdPushDescriptorSetWithTemplate2( m_commandBuffer,
9535                                            reinterpret_cast<const VkPushDescriptorSetWithTemplateInfo *>( &pushDescriptorSetWithTemplateInfo ) );
9536   }
9537 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9538 
9539   // wrapper function for command vkCopyMemoryToImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyMemoryToImage.html
9540   template <typename Dispatch>
copyMemoryToImage(const VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfo * pCopyMemoryToImageInfo,Dispatch const & d) const9541   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyMemoryToImage( const VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfo * pCopyMemoryToImageInfo,
9542                                                                            Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
9543   {
9544     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9545     return static_cast<Result>(
9546       d.vkCopyMemoryToImage( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkCopyMemoryToImageInfo *>( pCopyMemoryToImageInfo ) ) );
9547   }
9548 
9549 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9550   // wrapper function for command vkCopyMemoryToImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyMemoryToImage.html
9551   template <typename Dispatch>
9552   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
copyMemoryToImage(const VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfo & copyMemoryToImageInfo,Dispatch const & d) const9553     Device::copyMemoryToImage( const VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfo & copyMemoryToImageInfo, Dispatch const & d ) const
9554   {
9555     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9556 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9557     VULKAN_HPP_ASSERT( d.vkCopyMemoryToImage && "Function <vkCopyMemoryToImage> requires <VK_EXT_host_image_copy> or <VK_VERSION_1_4>" );
9558 #  endif
9559 
9560     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
9561       d.vkCopyMemoryToImage( m_device, reinterpret_cast<const VkCopyMemoryToImageInfo *>( &copyMemoryToImageInfo ) ) );
9562     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToImage" );
9563 
9564     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
9565   }
9566 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9567 
9568   // wrapper function for command vkCopyImageToMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyImageToMemory.html
9569   template <typename Dispatch>
copyImageToMemory(const VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfo * pCopyImageToMemoryInfo,Dispatch const & d) const9570   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyImageToMemory( const VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfo * pCopyImageToMemoryInfo,
9571                                                                            Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
9572   {
9573     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9574     return static_cast<Result>(
9575       d.vkCopyImageToMemory( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkCopyImageToMemoryInfo *>( pCopyImageToMemoryInfo ) ) );
9576   }
9577 
9578 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9579   // wrapper function for command vkCopyImageToMemory, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyImageToMemory.html
9580   template <typename Dispatch>
9581   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
copyImageToMemory(const VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfo & copyImageToMemoryInfo,Dispatch const & d) const9582     Device::copyImageToMemory( const VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfo & copyImageToMemoryInfo, Dispatch const & d ) const
9583   {
9584     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9585 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9586     VULKAN_HPP_ASSERT( d.vkCopyImageToMemory && "Function <vkCopyImageToMemory> requires <VK_EXT_host_image_copy> or <VK_VERSION_1_4>" );
9587 #  endif
9588 
9589     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
9590       d.vkCopyImageToMemory( m_device, reinterpret_cast<const VkCopyImageToMemoryInfo *>( &copyImageToMemoryInfo ) ) );
9591     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyImageToMemory" );
9592 
9593     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
9594   }
9595 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9596 
9597   // wrapper function for command vkCopyImageToImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyImageToImage.html
9598   template <typename Dispatch>
copyImageToImage(const VULKAN_HPP_NAMESPACE::CopyImageToImageInfo * pCopyImageToImageInfo,Dispatch const & d) const9599   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyImageToImage( const VULKAN_HPP_NAMESPACE::CopyImageToImageInfo * pCopyImageToImageInfo,
9600                                                                           Dispatch const &                                   d ) const VULKAN_HPP_NOEXCEPT
9601   {
9602     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9603     return static_cast<Result>(
9604       d.vkCopyImageToImage( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkCopyImageToImageInfo *>( pCopyImageToImageInfo ) ) );
9605   }
9606 
9607 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9608   // wrapper function for command vkCopyImageToImage, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyImageToImage.html
9609   template <typename Dispatch>
9610   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
copyImageToImage(const VULKAN_HPP_NAMESPACE::CopyImageToImageInfo & copyImageToImageInfo,Dispatch const & d) const9611     Device::copyImageToImage( const VULKAN_HPP_NAMESPACE::CopyImageToImageInfo & copyImageToImageInfo, Dispatch const & d ) const
9612   {
9613     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9614 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9615     VULKAN_HPP_ASSERT( d.vkCopyImageToImage && "Function <vkCopyImageToImage> requires <VK_EXT_host_image_copy> or <VK_VERSION_1_4>" );
9616 #  endif
9617 
9618     VULKAN_HPP_NAMESPACE::Result result =
9619       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCopyImageToImage( m_device, reinterpret_cast<const VkCopyImageToImageInfo *>( &copyImageToImageInfo ) ) );
9620     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyImageToImage" );
9621 
9622     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
9623   }
9624 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9625 
9626   // wrapper function for command vkTransitionImageLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkTransitionImageLayout.html
9627   template <typename Dispatch>
transitionImageLayout(uint32_t transitionCount,const VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfo * pTransitions,Dispatch const & d) const9628   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::transitionImageLayout( uint32_t                                                    transitionCount,
9629                                                                                const VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfo * pTransitions,
9630                                                                                Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
9631   {
9632     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9633     return static_cast<Result>( d.vkTransitionImageLayout(
9634       static_cast<VkDevice>( m_device ), transitionCount, reinterpret_cast<const VkHostImageLayoutTransitionInfo *>( pTransitions ) ) );
9635   }
9636 
9637 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9638   // wrapper function for command vkTransitionImageLayout, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkTransitionImageLayout.html
9639   template <typename Dispatch>
9640   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
transitionImageLayout(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfo> const & transitions,Dispatch const & d) const9641     Device::transitionImageLayout( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfo> const & transitions,
9642                                    Dispatch const &                                                                                    d ) const
9643   {
9644     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9645 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9646     VULKAN_HPP_ASSERT( d.vkTransitionImageLayout && "Function <vkTransitionImageLayout> requires <VK_EXT_host_image_copy> or <VK_VERSION_1_4>" );
9647 #  endif
9648 
9649     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
9650       d.vkTransitionImageLayout( m_device, transitions.size(), reinterpret_cast<const VkHostImageLayoutTransitionInfo *>( transitions.data() ) ) );
9651     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::transitionImageLayout" );
9652 
9653     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
9654   }
9655 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9656 
9657   //=== VK_KHR_surface ===
9658 
9659   // wrapper function for command vkDestroySurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySurfaceKHR.html
9660   template <typename Dispatch>
destroySurfaceKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const9661   VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR                  surface,
9662                                                       const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
9663                                                       Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
9664   {
9665     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9666     d.vkDestroySurfaceKHR(
9667       static_cast<VkInstance>( m_instance ), static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
9668   }
9669 
9670 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9671   // wrapper function for command vkDestroySurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySurfaceKHR.html
9672   template <typename Dispatch>
destroySurfaceKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const9673   VULKAN_HPP_INLINE void Instance::destroySurfaceKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR                          surface,
9674                                                       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
9675                                                       Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
9676   {
9677     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9678 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9679     VULKAN_HPP_ASSERT( d.vkDestroySurfaceKHR && "Function <vkDestroySurfaceKHR> requires <VK_KHR_surface>" );
9680 #  endif
9681 
9682     d.vkDestroySurfaceKHR( m_instance,
9683                            static_cast<VkSurfaceKHR>( surface ),
9684                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
9685   }
9686 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9687 
9688   // wrapper function for command vkDestroySurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySurfaceKHR.html
9689   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const9690   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR                  surface,
9691                                             const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
9692                                             Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
9693   {
9694     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9695     d.vkDestroySurfaceKHR(
9696       static_cast<VkInstance>( m_instance ), static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
9697   }
9698 
9699 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9700   // wrapper function for command vkDestroySurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySurfaceKHR.html
9701   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const9702   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::SurfaceKHR                          surface,
9703                                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
9704                                             Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
9705   {
9706     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9707 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9708     VULKAN_HPP_ASSERT( d.vkDestroySurfaceKHR && "Function <vkDestroySurfaceKHR> requires <VK_KHR_surface>" );
9709 #  endif
9710 
9711     d.vkDestroySurfaceKHR( m_instance,
9712                            static_cast<VkSurfaceKHR>( surface ),
9713                            reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
9714   }
9715 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9716 
9717   // wrapper function for command vkGetPhysicalDeviceSurfaceSupportKHR, see
9718   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceSupportKHR.html
9719   template <typename Dispatch>
getSurfaceSupportKHR(uint32_t queueFamilyIndex,VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::Bool32 * pSupported,Dispatch const & d) const9720   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceSupportKHR( uint32_t                         queueFamilyIndex,
9721                                                                                       VULKAN_HPP_NAMESPACE::SurfaceKHR surface,
9722                                                                                       VULKAN_HPP_NAMESPACE::Bool32 *   pSupported,
9723                                                                                       Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
9724   {
9725     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9726     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceSupportKHR(
9727       static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkBool32 *>( pSupported ) ) );
9728   }
9729 
9730 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9731   // wrapper function for command vkGetPhysicalDeviceSurfaceSupportKHR, see
9732   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceSupportKHR.html
9733   template <typename Dispatch>
9734   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Bool32>::type
getSurfaceSupportKHR(uint32_t queueFamilyIndex,VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const9735                        PhysicalDevice::getSurfaceSupportKHR( uint32_t queueFamilyIndex, VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const
9736   {
9737     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9738 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9739     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceSurfaceSupportKHR && "Function <vkGetPhysicalDeviceSurfaceSupportKHR> requires <VK_KHR_surface>" );
9740 #  endif
9741 
9742     VULKAN_HPP_NAMESPACE::Bool32 supported;
9743     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfaceSupportKHR(
9744       m_physicalDevice, queueFamilyIndex, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkBool32 *>( &supported ) ) );
9745     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceSupportKHR" );
9746 
9747     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( supported ) );
9748   }
9749 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9750 
9751   // wrapper function for command vkGetPhysicalDeviceSurfaceCapabilitiesKHR, see
9752   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceCapabilitiesKHR.html
9753   template <typename Dispatch>
getSurfaceCapabilitiesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR * pSurfaceCapabilities,Dispatch const & d) const9754   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR               surface,
9755                                                                                            VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR * pSurfaceCapabilities,
9756                                                                                            Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
9757   {
9758     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9759     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
9760                                                                              static_cast<VkSurfaceKHR>( surface ),
9761                                                                              reinterpret_cast<VkSurfaceCapabilitiesKHR *>( pSurfaceCapabilities ) ) );
9762   }
9763 
9764 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9765   // wrapper function for command vkGetPhysicalDeviceSurfaceCapabilitiesKHR, see
9766   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceCapabilitiesKHR.html
9767   template <typename Dispatch>
9768   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR>::type
getSurfaceCapabilitiesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const9769                        PhysicalDevice::getSurfaceCapabilitiesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const
9770   {
9771     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9772 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9773     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR && "Function <vkGetPhysicalDeviceSurfaceCapabilitiesKHR> requires <VK_KHR_surface>" );
9774 #  endif
9775 
9776     VULKAN_HPP_NAMESPACE::SurfaceCapabilitiesKHR surfaceCapabilities;
9777     VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfaceCapabilitiesKHR(
9778       m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilitiesKHR *>( &surfaceCapabilities ) ) );
9779     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilitiesKHR" );
9780 
9781     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surfaceCapabilities ) );
9782   }
9783 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9784 
9785   // wrapper function for command vkGetPhysicalDeviceSurfaceFormatsKHR, see
9786   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceFormatsKHR.html
9787   template <typename Dispatch>
getSurfaceFormatsKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,uint32_t * pSurfaceFormatCount,VULKAN_HPP_NAMESPACE::SurfaceFormatKHR * pSurfaceFormats,Dispatch const & d) const9788   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR         surface,
9789                                                                                       uint32_t *                               pSurfaceFormatCount,
9790                                                                                       VULKAN_HPP_NAMESPACE::SurfaceFormatKHR * pSurfaceFormats,
9791                                                                                       Dispatch const &                         d ) const VULKAN_HPP_NOEXCEPT
9792   {
9793     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9794     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
9795                                                                         static_cast<VkSurfaceKHR>( surface ),
9796                                                                         pSurfaceFormatCount,
9797                                                                         reinterpret_cast<VkSurfaceFormatKHR *>( pSurfaceFormats ) ) );
9798   }
9799 
9800 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9801   // wrapper function for command vkGetPhysicalDeviceSurfaceFormatsKHR, see
9802   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceFormatsKHR.html
9803   template <typename SurfaceFormatKHRAllocator,
9804             typename Dispatch,
9805             typename std::enable_if<std::is_same<typename SurfaceFormatKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::SurfaceFormatKHR>::value, int>::type>
9806   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR, SurfaceFormatKHRAllocator>>::type
getSurfaceFormatsKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const9807                        PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const
9808   {
9809     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9810 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9811     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceSurfaceFormatsKHR && "Function <vkGetPhysicalDeviceSurfaceFormatsKHR> requires <VK_KHR_surface>" );
9812 #  endif
9813 
9814     std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR, SurfaceFormatKHRAllocator> surfaceFormats;
9815     uint32_t                                                                       surfaceFormatCount;
9816     VULKAN_HPP_NAMESPACE::Result                                                   result;
9817     do
9818     {
9819       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
9820         d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, nullptr ) );
9821       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && surfaceFormatCount )
9822       {
9823         surfaceFormats.resize( surfaceFormatCount );
9824         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR(
9825           m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR *>( surfaceFormats.data() ) ) );
9826       }
9827     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
9828     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormatsKHR" );
9829     VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
9830     if ( surfaceFormatCount < surfaceFormats.size() )
9831     {
9832       surfaceFormats.resize( surfaceFormatCount );
9833     }
9834     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surfaceFormats ) );
9835   }
9836 
9837   // wrapper function for command vkGetPhysicalDeviceSurfaceFormatsKHR, see
9838   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceFormatsKHR.html
9839   template <typename SurfaceFormatKHRAllocator,
9840             typename Dispatch,
9841             typename std::enable_if<std::is_same<typename SurfaceFormatKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::SurfaceFormatKHR>::value, int>::type>
9842   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR, SurfaceFormatKHRAllocator>>::type
getSurfaceFormatsKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,SurfaceFormatKHRAllocator & surfaceFormatKHRAllocator,Dispatch const & d) const9843                        PhysicalDevice::getSurfaceFormatsKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface,
9844                                           SurfaceFormatKHRAllocator &      surfaceFormatKHRAllocator,
9845                                           Dispatch const &                 d ) const
9846   {
9847     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9848 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9849     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceSurfaceFormatsKHR && "Function <vkGetPhysicalDeviceSurfaceFormatsKHR> requires <VK_KHR_surface>" );
9850 #  endif
9851 
9852     std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormatKHR, SurfaceFormatKHRAllocator> surfaceFormats( surfaceFormatKHRAllocator );
9853     uint32_t                                                                       surfaceFormatCount;
9854     VULKAN_HPP_NAMESPACE::Result                                                   result;
9855     do
9856     {
9857       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
9858         d.vkGetPhysicalDeviceSurfaceFormatsKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, nullptr ) );
9859       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && surfaceFormatCount )
9860       {
9861         surfaceFormats.resize( surfaceFormatCount );
9862         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfaceFormatsKHR(
9863           m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &surfaceFormatCount, reinterpret_cast<VkSurfaceFormatKHR *>( surfaceFormats.data() ) ) );
9864       }
9865     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
9866     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormatsKHR" );
9867     VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
9868     if ( surfaceFormatCount < surfaceFormats.size() )
9869     {
9870       surfaceFormats.resize( surfaceFormatCount );
9871     }
9872     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surfaceFormats ) );
9873   }
9874 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9875 
9876   // wrapper function for command vkGetPhysicalDeviceSurfacePresentModesKHR, see
9877   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfacePresentModesKHR.html
9878   template <typename Dispatch>
getSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,uint32_t * pPresentModeCount,VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes,Dispatch const & d) const9879   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR       surface,
9880                                                                                            uint32_t *                             pPresentModeCount,
9881                                                                                            VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes,
9882                                                                                            Dispatch const &                       d ) const VULKAN_HPP_NOEXCEPT
9883   {
9884     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9885     return static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
9886                                                                              static_cast<VkSurfaceKHR>( surface ),
9887                                                                              pPresentModeCount,
9888                                                                              reinterpret_cast<VkPresentModeKHR *>( pPresentModes ) ) );
9889   }
9890 
9891 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9892   // wrapper function for command vkGetPhysicalDeviceSurfacePresentModesKHR, see
9893   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfacePresentModesKHR.html
9894   template <typename PresentModeKHRAllocator,
9895             typename Dispatch,
9896             typename std::enable_if<std::is_same<typename PresentModeKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::PresentModeKHR>::value, int>::type>
9897   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR, PresentModeKHRAllocator>>::type
getSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const9898                        PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const
9899   {
9900     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9901 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9902     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceSurfacePresentModesKHR && "Function <vkGetPhysicalDeviceSurfacePresentModesKHR> requires <VK_KHR_surface>" );
9903 #  endif
9904 
9905     std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR, PresentModeKHRAllocator> presentModes;
9906     uint32_t                                                                   presentModeCount;
9907     VULKAN_HPP_NAMESPACE::Result                                               result;
9908     do
9909     {
9910       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
9911         d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, nullptr ) );
9912       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentModeCount )
9913       {
9914         presentModes.resize( presentModeCount );
9915         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR(
9916           m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) ) );
9917       }
9918     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
9919     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModesKHR" );
9920     VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
9921     if ( presentModeCount < presentModes.size() )
9922     {
9923       presentModes.resize( presentModeCount );
9924     }
9925     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( presentModes ) );
9926   }
9927 
9928   // wrapper function for command vkGetPhysicalDeviceSurfacePresentModesKHR, see
9929   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfacePresentModesKHR.html
9930   template <typename PresentModeKHRAllocator,
9931             typename Dispatch,
9932             typename std::enable_if<std::is_same<typename PresentModeKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::PresentModeKHR>::value, int>::type>
9933   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR, PresentModeKHRAllocator>>::type
getSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,PresentModeKHRAllocator & presentModeKHRAllocator,Dispatch const & d) const9934                        PhysicalDevice::getSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface,
9935                                                PresentModeKHRAllocator &        presentModeKHRAllocator,
9936                                                Dispatch const &                 d ) const
9937   {
9938     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9939 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9940     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceSurfacePresentModesKHR && "Function <vkGetPhysicalDeviceSurfacePresentModesKHR> requires <VK_KHR_surface>" );
9941 #  endif
9942 
9943     std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR, PresentModeKHRAllocator> presentModes( presentModeKHRAllocator );
9944     uint32_t                                                                   presentModeCount;
9945     VULKAN_HPP_NAMESPACE::Result                                               result;
9946     do
9947     {
9948       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
9949         d.vkGetPhysicalDeviceSurfacePresentModesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, nullptr ) );
9950       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentModeCount )
9951       {
9952         presentModes.resize( presentModeCount );
9953         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfacePresentModesKHR(
9954           m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &presentModeCount, reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) ) );
9955       }
9956     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
9957     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModesKHR" );
9958     VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
9959     if ( presentModeCount < presentModes.size() )
9960     {
9961       presentModes.resize( presentModeCount );
9962     }
9963     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( presentModes ) );
9964   }
9965 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
9966 
9967   //=== VK_KHR_swapchain ===
9968 
9969   // wrapper function for command vkCreateSwapchainKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSwapchainKHR.html
9970   template <typename Dispatch>
createSwapchainKHR(const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchain,Dispatch const & d) const9971   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createSwapchainKHR( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR * pCreateInfo,
9972                                                                             const VULKAN_HPP_NAMESPACE::AllocationCallbacks *    pAllocator,
9973                                                                             VULKAN_HPP_NAMESPACE::SwapchainKHR *                 pSwapchain,
9974                                                                             Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
9975   {
9976     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9977     return static_cast<Result>( d.vkCreateSwapchainKHR( static_cast<VkDevice>( m_device ),
9978                                                         reinterpret_cast<const VkSwapchainCreateInfoKHR *>( pCreateInfo ),
9979                                                         reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
9980                                                         reinterpret_cast<VkSwapchainKHR *>( pSwapchain ) ) );
9981   }
9982 
9983 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
9984   // wrapper function for command vkCreateSwapchainKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSwapchainKHR.html
9985   template <typename Dispatch>
9986   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SwapchainKHR>::type
createSwapchainKHR(const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const9987                        Device::createSwapchainKHR( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR &      createInfo,
9988                                 Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
9989                                 Dispatch const &                                          d ) const
9990   {
9991     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
9992 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
9993     VULKAN_HPP_ASSERT( d.vkCreateSwapchainKHR && "Function <vkCreateSwapchainKHR> requires <VK_KHR_swapchain>" );
9994 #  endif
9995 
9996     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain;
9997     VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
9998       d.vkCreateSwapchainKHR( m_device,
9999                               reinterpret_cast<const VkSwapchainCreateInfoKHR *>( &createInfo ),
10000                               reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
10001                               reinterpret_cast<VkSwapchainKHR *>( &swapchain ) ) );
10002     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSwapchainKHR" );
10003 
10004     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( swapchain ) );
10005   }
10006 
10007 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
10008   // wrapper function for command vkCreateSwapchainKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSwapchainKHR.html
10009   template <typename Dispatch>
10010   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>>::type
createSwapchainKHRUnique(const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const10011                        Device::createSwapchainKHRUnique( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR &      createInfo,
10012                                       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
10013                                       Dispatch const &                                          d ) const
10014   {
10015     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10016 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10017     VULKAN_HPP_ASSERT( d.vkCreateSwapchainKHR && "Function <vkCreateSwapchainKHR> requires <VK_KHR_swapchain>" );
10018 #    endif
10019 
10020     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain;
10021     VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
10022       d.vkCreateSwapchainKHR( m_device,
10023                               reinterpret_cast<const VkSwapchainCreateInfoKHR *>( &createInfo ),
10024                               reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
10025                               reinterpret_cast<VkSwapchainKHR *>( &swapchain ) ) );
10026     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSwapchainKHRUnique" );
10027 
10028     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
10029       result, UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>( swapchain, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
10030   }
10031 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
10032 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
10033 
10034   // wrapper function for command vkDestroySwapchainKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySwapchainKHR.html
10035   template <typename Dispatch>
destroySwapchainKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const10036   VULKAN_HPP_INLINE void Device::destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR                swapchain,
10037                                                       const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
10038                                                       Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
10039   {
10040     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10041     d.vkDestroySwapchainKHR(
10042       static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
10043   }
10044 
10045 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
10046   // wrapper function for command vkDestroySwapchainKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySwapchainKHR.html
10047   template <typename Dispatch>
destroySwapchainKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const10048   VULKAN_HPP_INLINE void Device::destroySwapchainKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR                        swapchain,
10049                                                       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
10050                                                       Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
10051   {
10052     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10053 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10054     VULKAN_HPP_ASSERT( d.vkDestroySwapchainKHR && "Function <vkDestroySwapchainKHR> requires <VK_KHR_swapchain>" );
10055 #  endif
10056 
10057     d.vkDestroySwapchainKHR( m_device,
10058                              static_cast<VkSwapchainKHR>( swapchain ),
10059                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
10060   }
10061 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
10062 
10063   // wrapper function for command vkDestroySwapchainKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySwapchainKHR.html
10064   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const10065   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR                swapchain,
10066                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
10067                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
10068   {
10069     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10070     d.vkDestroySwapchainKHR(
10071       static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
10072   }
10073 
10074 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
10075   // wrapper function for command vkDestroySwapchainKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySwapchainKHR.html
10076   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const10077   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::SwapchainKHR                        swapchain,
10078                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
10079                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
10080   {
10081     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10082 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10083     VULKAN_HPP_ASSERT( d.vkDestroySwapchainKHR && "Function <vkDestroySwapchainKHR> requires <VK_KHR_swapchain>" );
10084 #  endif
10085 
10086     d.vkDestroySwapchainKHR( m_device,
10087                              static_cast<VkSwapchainKHR>( swapchain ),
10088                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
10089   }
10090 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
10091 
10092   // wrapper function for command vkGetSwapchainImagesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSwapchainImagesKHR.html
10093   template <typename Dispatch>
getSwapchainImagesKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,uint32_t * pSwapchainImageCount,VULKAN_HPP_NAMESPACE::Image * pSwapchainImages,Dispatch const & d) const10094   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,
10095                                                                                uint32_t *                         pSwapchainImageCount,
10096                                                                                VULKAN_HPP_NAMESPACE::Image *      pSwapchainImages,
10097                                                                                Dispatch const &                   d ) const VULKAN_HPP_NOEXCEPT
10098   {
10099     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10100     return static_cast<Result>( d.vkGetSwapchainImagesKHR(
10101       static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( swapchain ), pSwapchainImageCount, reinterpret_cast<VkImage *>( pSwapchainImages ) ) );
10102   }
10103 
10104 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
10105   // wrapper function for command vkGetSwapchainImagesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSwapchainImagesKHR.html
10106   template <typename ImageAllocator,
10107             typename Dispatch,
10108             typename std::enable_if<std::is_same<typename ImageAllocator::value_type, VULKAN_HPP_NAMESPACE::Image>::value, int>::type>
10109   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::Image, ImageAllocator>>::type
getSwapchainImagesKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const10110                        Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
10111   {
10112     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10113 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10114     VULKAN_HPP_ASSERT( d.vkGetSwapchainImagesKHR && "Function <vkGetSwapchainImagesKHR> requires <VK_KHR_swapchain>" );
10115 #  endif
10116 
10117     std::vector<VULKAN_HPP_NAMESPACE::Image, ImageAllocator> swapchainImages;
10118     uint32_t                                                 swapchainImageCount;
10119     VULKAN_HPP_NAMESPACE::Result                             result;
10120     do
10121     {
10122       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
10123         d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, nullptr ) );
10124       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && swapchainImageCount )
10125       {
10126         swapchainImages.resize( swapchainImageCount );
10127         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetSwapchainImagesKHR(
10128           m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, reinterpret_cast<VkImage *>( swapchainImages.data() ) ) );
10129       }
10130     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
10131     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainImagesKHR" );
10132     VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() );
10133     if ( swapchainImageCount < swapchainImages.size() )
10134     {
10135       swapchainImages.resize( swapchainImageCount );
10136     }
10137     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( swapchainImages ) );
10138   }
10139 
10140   // wrapper function for command vkGetSwapchainImagesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSwapchainImagesKHR.html
10141   template <typename ImageAllocator,
10142             typename Dispatch,
10143             typename std::enable_if<std::is_same<typename ImageAllocator::value_type, VULKAN_HPP_NAMESPACE::Image>::value, int>::type>
10144   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::Image, ImageAllocator>>::type
getSwapchainImagesKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,ImageAllocator & imageAllocator,Dispatch const & d) const10145                        Device::getSwapchainImagesKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, ImageAllocator & imageAllocator, Dispatch const & d ) const
10146   {
10147     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10148 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10149     VULKAN_HPP_ASSERT( d.vkGetSwapchainImagesKHR && "Function <vkGetSwapchainImagesKHR> requires <VK_KHR_swapchain>" );
10150 #  endif
10151 
10152     std::vector<VULKAN_HPP_NAMESPACE::Image, ImageAllocator> swapchainImages( imageAllocator );
10153     uint32_t                                                 swapchainImageCount;
10154     VULKAN_HPP_NAMESPACE::Result                             result;
10155     do
10156     {
10157       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
10158         d.vkGetSwapchainImagesKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, nullptr ) );
10159       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && swapchainImageCount )
10160       {
10161         swapchainImages.resize( swapchainImageCount );
10162         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetSwapchainImagesKHR(
10163           m_device, static_cast<VkSwapchainKHR>( swapchain ), &swapchainImageCount, reinterpret_cast<VkImage *>( swapchainImages.data() ) ) );
10164       }
10165     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
10166     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainImagesKHR" );
10167     VULKAN_HPP_ASSERT( swapchainImageCount <= swapchainImages.size() );
10168     if ( swapchainImageCount < swapchainImages.size() )
10169     {
10170       swapchainImages.resize( swapchainImageCount );
10171     }
10172     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( swapchainImages ) );
10173   }
10174 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
10175 
10176   // wrapper function for command vkAcquireNextImageKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireNextImageKHR.html
10177   template <typename Dispatch>
acquireNextImageKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,uint64_t timeout,VULKAN_HPP_NAMESPACE::Semaphore semaphore,VULKAN_HPP_NAMESPACE::Fence fence,uint32_t * pImageIndex,Dispatch const & d) const10178   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,
10179                                                                              uint64_t                           timeout,
10180                                                                              VULKAN_HPP_NAMESPACE::Semaphore    semaphore,
10181                                                                              VULKAN_HPP_NAMESPACE::Fence        fence,
10182                                                                              uint32_t *                         pImageIndex,
10183                                                                              Dispatch const &                   d ) const VULKAN_HPP_NOEXCEPT
10184   {
10185     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10186     return static_cast<Result>( d.vkAcquireNextImageKHR( static_cast<VkDevice>( m_device ),
10187                                                          static_cast<VkSwapchainKHR>( swapchain ),
10188                                                          timeout,
10189                                                          static_cast<VkSemaphore>( semaphore ),
10190                                                          static_cast<VkFence>( fence ),
10191                                                          pImageIndex ) );
10192   }
10193 
10194 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
10195   // wrapper function for command vkAcquireNextImageKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireNextImageKHR.html
10196   template <typename Dispatch>
acquireNextImageKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,uint64_t timeout,VULKAN_HPP_NAMESPACE::Semaphore semaphore,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const10197   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<uint32_t> Device::acquireNextImageKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,
10198                                                                                             uint64_t                           timeout,
10199                                                                                             VULKAN_HPP_NAMESPACE::Semaphore    semaphore,
10200                                                                                             VULKAN_HPP_NAMESPACE::Fence        fence,
10201                                                                                             Dispatch const &                   d ) const
10202   {
10203     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10204 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10205     VULKAN_HPP_ASSERT( d.vkAcquireNextImageKHR && "Function <vkAcquireNextImageKHR> requires <VK_KHR_swapchain>" );
10206 #  endif
10207 
10208     uint32_t                     imageIndex;
10209     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAcquireNextImageKHR(
10210       m_device, static_cast<VkSwapchainKHR>( swapchain ), timeout, static_cast<VkSemaphore>( semaphore ), static_cast<VkFence>( fence ), &imageIndex ) );
10211     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
10212                                                VULKAN_HPP_NAMESPACE_STRING "::Device::acquireNextImageKHR",
10213                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess,
10214                                                  VULKAN_HPP_NAMESPACE::Result::eTimeout,
10215                                                  VULKAN_HPP_NAMESPACE::Result::eNotReady,
10216                                                  VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } );
10217 
10218     return ResultValue<uint32_t>( result, std::move( imageIndex ) );
10219   }
10220 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
10221 
10222   // wrapper function for command vkQueuePresentKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueuePresentKHR.html
10223   template <typename Dispatch>
presentKHR(const VULKAN_HPP_NAMESPACE::PresentInfoKHR * pPresentInfo,Dispatch const & d) const10224   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR * pPresentInfo,
10225                                                                    Dispatch const &                             d ) const VULKAN_HPP_NOEXCEPT
10226   {
10227     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10228     return static_cast<Result>( d.vkQueuePresentKHR( static_cast<VkQueue>( m_queue ), reinterpret_cast<const VkPresentInfoKHR *>( pPresentInfo ) ) );
10229   }
10230 
10231 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
10232   // wrapper function for command vkQueuePresentKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueuePresentKHR.html
10233   template <typename Dispatch>
presentKHR(const VULKAN_HPP_NAMESPACE::PresentInfoKHR & presentInfo,Dispatch const & d) const10234   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Queue::presentKHR( const VULKAN_HPP_NAMESPACE::PresentInfoKHR & presentInfo,
10235                                                                                          Dispatch const &                             d ) const
10236   {
10237     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10238 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10239     VULKAN_HPP_ASSERT( d.vkQueuePresentKHR && "Function <vkQueuePresentKHR> requires <VK_KHR_swapchain>" );
10240 #  endif
10241 
10242     VULKAN_HPP_NAMESPACE::Result result =
10243       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkQueuePresentKHR( m_queue, reinterpret_cast<const VkPresentInfoKHR *>( &presentInfo ) ) );
10244     VULKAN_HPP_NAMESPACE::detail::resultCheck(
10245       result, VULKAN_HPP_NAMESPACE_STRING "::Queue::presentKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } );
10246 
10247     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
10248   }
10249 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
10250 
10251   // wrapper function for command vkGetDeviceGroupPresentCapabilitiesKHR, see
10252   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceGroupPresentCapabilitiesKHR.html
10253   template <typename Dispatch>
getGroupPresentCapabilitiesKHR(VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities,Dispatch const & d) const10254   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getGroupPresentCapabilitiesKHR(
10255     VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR * pDeviceGroupPresentCapabilities, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
10256   {
10257     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10258     return static_cast<Result>( d.vkGetDeviceGroupPresentCapabilitiesKHR(
10259       static_cast<VkDevice>( m_device ), reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR *>( pDeviceGroupPresentCapabilities ) ) );
10260   }
10261 
10262 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
10263   // wrapper function for command vkGetDeviceGroupPresentCapabilitiesKHR, see
10264   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceGroupPresentCapabilitiesKHR.html
10265   template <typename Dispatch>
10266   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR>::type
getGroupPresentCapabilitiesKHR(Dispatch const & d) const10267                        Device::getGroupPresentCapabilitiesKHR( Dispatch const & d ) const
10268   {
10269     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10270 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10271     VULKAN_HPP_ASSERT( d.vkGetDeviceGroupPresentCapabilitiesKHR &&
10272                        "Function <vkGetDeviceGroupPresentCapabilitiesKHR> requires <VK_KHR_device_group> or <VK_KHR_swapchain>" );
10273 #  endif
10274 
10275     VULKAN_HPP_NAMESPACE::DeviceGroupPresentCapabilitiesKHR deviceGroupPresentCapabilities;
10276     VULKAN_HPP_NAMESPACE::Result                            result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
10277       d.vkGetDeviceGroupPresentCapabilitiesKHR( m_device, reinterpret_cast<VkDeviceGroupPresentCapabilitiesKHR *>( &deviceGroupPresentCapabilities ) ) );
10278     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupPresentCapabilitiesKHR" );
10279 
10280     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( deviceGroupPresentCapabilities ) );
10281   }
10282 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
10283 
10284   // wrapper function for command vkGetDeviceGroupSurfacePresentModesKHR, see
10285   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceGroupSurfacePresentModesKHR.html
10286   template <typename Dispatch>
getGroupSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR * pModes,Dispatch const & d) const10287   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR                       surface,
10288                                                                                         VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR * pModes,
10289                                                                                         Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
10290   {
10291     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10292     return static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModesKHR(
10293       static_cast<VkDevice>( m_device ), static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR *>( pModes ) ) );
10294   }
10295 
10296 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
10297   // wrapper function for command vkGetDeviceGroupSurfacePresentModesKHR, see
10298   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceGroupSurfacePresentModesKHR.html
10299   template <typename Dispatch>
10300   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR>::type
getGroupSurfacePresentModesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const10301                        Device::getGroupSurfacePresentModesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const
10302   {
10303     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10304 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10305     VULKAN_HPP_ASSERT( d.vkGetDeviceGroupSurfacePresentModesKHR &&
10306                        "Function <vkGetDeviceGroupSurfacePresentModesKHR> requires <VK_KHR_device_group> or <VK_KHR_swapchain>" );
10307 #  endif
10308 
10309     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes;
10310     VULKAN_HPP_NAMESPACE::Result                         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDeviceGroupSurfacePresentModesKHR(
10311       m_device, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR *>( &modes ) ) );
10312     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModesKHR" );
10313 
10314     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( modes ) );
10315   }
10316 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
10317 
10318   // wrapper function for command vkGetPhysicalDevicePresentRectanglesKHR, see
10319   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDevicePresentRectanglesKHR.html
10320   template <typename Dispatch>
getPresentRectanglesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,uint32_t * pRectCount,VULKAN_HPP_NAMESPACE::Rect2D * pRects,Dispatch const & d) const10321   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface,
10322                                                                                          uint32_t *                       pRectCount,
10323                                                                                          VULKAN_HPP_NAMESPACE::Rect2D *   pRects,
10324                                                                                          Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
10325   {
10326     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10327     return static_cast<Result>( d.vkGetPhysicalDevicePresentRectanglesKHR(
10328       static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkSurfaceKHR>( surface ), pRectCount, reinterpret_cast<VkRect2D *>( pRects ) ) );
10329   }
10330 
10331 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
10332   // wrapper function for command vkGetPhysicalDevicePresentRectanglesKHR, see
10333   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDevicePresentRectanglesKHR.html
10334   template <typename Rect2DAllocator,
10335             typename Dispatch,
10336             typename std::enable_if<std::is_same<typename Rect2DAllocator::value_type, VULKAN_HPP_NAMESPACE::Rect2D>::value, int>::type>
10337   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::Rect2D, Rect2DAllocator>>::type
getPresentRectanglesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const10338                        PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const
10339   {
10340     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10341 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10342     VULKAN_HPP_ASSERT( d.vkGetPhysicalDevicePresentRectanglesKHR &&
10343                        "Function <vkGetPhysicalDevicePresentRectanglesKHR> requires <VK_KHR_device_group> or <VK_KHR_swapchain>" );
10344 #  endif
10345 
10346     std::vector<VULKAN_HPP_NAMESPACE::Rect2D, Rect2DAllocator> rects;
10347     uint32_t                                                   rectCount;
10348     VULKAN_HPP_NAMESPACE::Result                               result;
10349     do
10350     {
10351       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
10352         d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, nullptr ) );
10353       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && rectCount )
10354       {
10355         rects.resize( rectCount );
10356         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDevicePresentRectanglesKHR(
10357           m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, reinterpret_cast<VkRect2D *>( rects.data() ) ) );
10358       }
10359     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
10360     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getPresentRectanglesKHR" );
10361     VULKAN_HPP_ASSERT( rectCount <= rects.size() );
10362     if ( rectCount < rects.size() )
10363     {
10364       rects.resize( rectCount );
10365     }
10366     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( rects ) );
10367   }
10368 
10369   // wrapper function for command vkGetPhysicalDevicePresentRectanglesKHR, see
10370   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDevicePresentRectanglesKHR.html
10371   template <typename Rect2DAllocator,
10372             typename Dispatch,
10373             typename std::enable_if<std::is_same<typename Rect2DAllocator::value_type, VULKAN_HPP_NAMESPACE::Rect2D>::value, int>::type>
10374   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::Rect2D, Rect2DAllocator>>::type
getPresentRectanglesKHR(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Rect2DAllocator & rect2DAllocator,Dispatch const & d) const10375     PhysicalDevice::getPresentRectanglesKHR( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Rect2DAllocator & rect2DAllocator, Dispatch const & d ) const
10376   {
10377     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10378 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10379     VULKAN_HPP_ASSERT( d.vkGetPhysicalDevicePresentRectanglesKHR &&
10380                        "Function <vkGetPhysicalDevicePresentRectanglesKHR> requires <VK_KHR_device_group> or <VK_KHR_swapchain>" );
10381 #  endif
10382 
10383     std::vector<VULKAN_HPP_NAMESPACE::Rect2D, Rect2DAllocator> rects( rect2DAllocator );
10384     uint32_t                                                   rectCount;
10385     VULKAN_HPP_NAMESPACE::Result                               result;
10386     do
10387     {
10388       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
10389         d.vkGetPhysicalDevicePresentRectanglesKHR( m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, nullptr ) );
10390       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && rectCount )
10391       {
10392         rects.resize( rectCount );
10393         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDevicePresentRectanglesKHR(
10394           m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), &rectCount, reinterpret_cast<VkRect2D *>( rects.data() ) ) );
10395       }
10396     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
10397     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getPresentRectanglesKHR" );
10398     VULKAN_HPP_ASSERT( rectCount <= rects.size() );
10399     if ( rectCount < rects.size() )
10400     {
10401       rects.resize( rectCount );
10402     }
10403     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( rects ) );
10404   }
10405 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
10406 
10407   // wrapper function for command vkAcquireNextImage2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireNextImage2KHR.html
10408   template <typename Dispatch>
acquireNextImage2KHR(const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR * pAcquireInfo,uint32_t * pImageIndex,Dispatch const & d) const10409   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireNextImage2KHR( const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR * pAcquireInfo,
10410                                                                               uint32_t *                                            pImageIndex,
10411                                                                               Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
10412   {
10413     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10414     return static_cast<Result>(
10415       d.vkAcquireNextImage2KHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkAcquireNextImageInfoKHR *>( pAcquireInfo ), pImageIndex ) );
10416   }
10417 
10418 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
10419   // wrapper function for command vkAcquireNextImage2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireNextImage2KHR.html
10420   template <typename Dispatch>
acquireNextImage2KHR(const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR & acquireInfo,Dispatch const & d) const10421   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<uint32_t> Device::acquireNextImage2KHR( const VULKAN_HPP_NAMESPACE::AcquireNextImageInfoKHR & acquireInfo,
10422                                                                                              Dispatch const &                                      d ) const
10423   {
10424     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10425 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10426     VULKAN_HPP_ASSERT( d.vkAcquireNextImage2KHR && "Function <vkAcquireNextImage2KHR> requires <VK_KHR_device_group> or <VK_KHR_swapchain>" );
10427 #  endif
10428 
10429     uint32_t                     imageIndex;
10430     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
10431       d.vkAcquireNextImage2KHR( m_device, reinterpret_cast<const VkAcquireNextImageInfoKHR *>( &acquireInfo ), &imageIndex ) );
10432     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
10433                                                VULKAN_HPP_NAMESPACE_STRING "::Device::acquireNextImage2KHR",
10434                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess,
10435                                                  VULKAN_HPP_NAMESPACE::Result::eTimeout,
10436                                                  VULKAN_HPP_NAMESPACE::Result::eNotReady,
10437                                                  VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } );
10438 
10439     return ResultValue<uint32_t>( result, std::move( imageIndex ) );
10440   }
10441 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
10442 
10443   //=== VK_KHR_display ===
10444 
10445   // wrapper function for command vkGetPhysicalDeviceDisplayPropertiesKHR, see
10446   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayPropertiesKHR.html
10447   template <typename Dispatch>
getDisplayPropertiesKHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR * pProperties,Dispatch const & d) const10448   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPropertiesKHR( uint32_t *                                   pPropertyCount,
10449                                                                                          VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR * pProperties,
10450                                                                                          Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
10451   {
10452     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10453     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR(
10454       static_cast<VkPhysicalDevice>( m_physicalDevice ), pPropertyCount, reinterpret_cast<VkDisplayPropertiesKHR *>( pProperties ) ) );
10455   }
10456 
10457 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
10458   // wrapper function for command vkGetPhysicalDeviceDisplayPropertiesKHR, see
10459   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayPropertiesKHR.html
10460   template <
10461     typename DisplayPropertiesKHRAllocator,
10462     typename Dispatch,
10463     typename std::enable_if<std::is_same<typename DisplayPropertiesKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR>::value, int>::type>
10464   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR, DisplayPropertiesKHRAllocator>>::type
getDisplayPropertiesKHR(Dispatch const & d) const10465                        PhysicalDevice::getDisplayPropertiesKHR( Dispatch const & d ) const
10466   {
10467     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10468 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10469     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceDisplayPropertiesKHR && "Function <vkGetPhysicalDeviceDisplayPropertiesKHR> requires <VK_KHR_display>" );
10470 #  endif
10471 
10472     std::vector<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR, DisplayPropertiesKHRAllocator> properties;
10473     uint32_t                                                                               propertyCount;
10474     VULKAN_HPP_NAMESPACE::Result                                                           result;
10475     do
10476     {
10477       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
10478       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
10479       {
10480         properties.resize( propertyCount );
10481         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
10482           d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR *>( properties.data() ) ) );
10483       }
10484     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
10485     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPropertiesKHR" );
10486     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
10487     if ( propertyCount < properties.size() )
10488     {
10489       properties.resize( propertyCount );
10490     }
10491     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
10492   }
10493 
10494   // wrapper function for command vkGetPhysicalDeviceDisplayPropertiesKHR, see
10495   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayPropertiesKHR.html
10496   template <
10497     typename DisplayPropertiesKHRAllocator,
10498     typename Dispatch,
10499     typename std::enable_if<std::is_same<typename DisplayPropertiesKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR>::value, int>::type>
10500   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR, DisplayPropertiesKHRAllocator>>::type
getDisplayPropertiesKHR(DisplayPropertiesKHRAllocator & displayPropertiesKHRAllocator,Dispatch const & d) const10501                        PhysicalDevice::getDisplayPropertiesKHR( DisplayPropertiesKHRAllocator & displayPropertiesKHRAllocator, Dispatch const & d ) const
10502   {
10503     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10504 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10505     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceDisplayPropertiesKHR && "Function <vkGetPhysicalDeviceDisplayPropertiesKHR> requires <VK_KHR_display>" );
10506 #  endif
10507 
10508     std::vector<VULKAN_HPP_NAMESPACE::DisplayPropertiesKHR, DisplayPropertiesKHRAllocator> properties( displayPropertiesKHRAllocator );
10509     uint32_t                                                                               propertyCount;
10510     VULKAN_HPP_NAMESPACE::Result                                                           result;
10511     do
10512     {
10513       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
10514       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
10515       {
10516         properties.resize( propertyCount );
10517         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
10518           d.vkGetPhysicalDeviceDisplayPropertiesKHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPropertiesKHR *>( properties.data() ) ) );
10519       }
10520     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
10521     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPropertiesKHR" );
10522     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
10523     if ( propertyCount < properties.size() )
10524     {
10525       properties.resize( propertyCount );
10526     }
10527     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
10528   }
10529 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
10530 
10531   // wrapper function for command vkGetPhysicalDeviceDisplayPlanePropertiesKHR, see
10532   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayPlanePropertiesKHR.html
10533   template <typename Dispatch>
getDisplayPlanePropertiesKHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR * pProperties,Dispatch const & d) const10534   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlanePropertiesKHR( uint32_t *                                        pPropertyCount,
10535                                                                                               VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR * pProperties,
10536                                                                                               Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
10537   {
10538     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10539     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
10540       static_cast<VkPhysicalDevice>( m_physicalDevice ), pPropertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR *>( pProperties ) ) );
10541   }
10542 
10543 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
10544   // wrapper function for command vkGetPhysicalDeviceDisplayPlanePropertiesKHR, see
10545   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayPlanePropertiesKHR.html
10546   template <
10547     typename DisplayPlanePropertiesKHRAllocator,
10548     typename Dispatch,
10549     typename std::enable_if<std::is_same<typename DisplayPlanePropertiesKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR>::value,
10550                             int>::type>
10551   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
10552     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR, DisplayPlanePropertiesKHRAllocator>>::type
getDisplayPlanePropertiesKHR(Dispatch const & d) const10553     PhysicalDevice::getDisplayPlanePropertiesKHR( Dispatch const & d ) const
10554   {
10555     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10556 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10557     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR && "Function <vkGetPhysicalDeviceDisplayPlanePropertiesKHR> requires <VK_KHR_display>" );
10558 #  endif
10559 
10560     std::vector<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR, DisplayPlanePropertiesKHRAllocator> properties;
10561     uint32_t                                                                                         propertyCount;
10562     VULKAN_HPP_NAMESPACE::Result                                                                     result;
10563     do
10564     {
10565       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
10566       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
10567       {
10568         properties.resize( propertyCount );
10569         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
10570           m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR *>( properties.data() ) ) );
10571       }
10572     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
10573     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlanePropertiesKHR" );
10574     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
10575     if ( propertyCount < properties.size() )
10576     {
10577       properties.resize( propertyCount );
10578     }
10579     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
10580   }
10581 
10582   // wrapper function for command vkGetPhysicalDeviceDisplayPlanePropertiesKHR, see
10583   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayPlanePropertiesKHR.html
10584   template <
10585     typename DisplayPlanePropertiesKHRAllocator,
10586     typename Dispatch,
10587     typename std::enable_if<std::is_same<typename DisplayPlanePropertiesKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR>::value,
10588                             int>::type>
10589   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
10590     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR, DisplayPlanePropertiesKHRAllocator>>::type
getDisplayPlanePropertiesKHR(DisplayPlanePropertiesKHRAllocator & displayPlanePropertiesKHRAllocator,Dispatch const & d) const10591     PhysicalDevice::getDisplayPlanePropertiesKHR( DisplayPlanePropertiesKHRAllocator & displayPlanePropertiesKHRAllocator, Dispatch const & d ) const
10592   {
10593     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10594 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10595     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR && "Function <vkGetPhysicalDeviceDisplayPlanePropertiesKHR> requires <VK_KHR_display>" );
10596 #  endif
10597 
10598     std::vector<VULKAN_HPP_NAMESPACE::DisplayPlanePropertiesKHR, DisplayPlanePropertiesKHRAllocator> properties( displayPlanePropertiesKHRAllocator );
10599     uint32_t                                                                                         propertyCount;
10600     VULKAN_HPP_NAMESPACE::Result                                                                     result;
10601     do
10602     {
10603       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
10604       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
10605       {
10606         properties.resize( propertyCount );
10607         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayPlanePropertiesKHR(
10608           m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlanePropertiesKHR *>( properties.data() ) ) );
10609       }
10610     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
10611     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlanePropertiesKHR" );
10612     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
10613     if ( propertyCount < properties.size() )
10614     {
10615       properties.resize( propertyCount );
10616     }
10617     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
10618   }
10619 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
10620 
10621   // wrapper function for command vkGetDisplayPlaneSupportedDisplaysKHR, see
10622   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayPlaneSupportedDisplaysKHR.html
10623   template <typename Dispatch>
getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex,uint32_t * pDisplayCount,VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplays,Dispatch const & d) const10624   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t                           planeIndex,
10625                                                                                                      uint32_t *                         pDisplayCount,
10626                                                                                                      VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplays,
10627                                                                                                      Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
10628   {
10629     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10630     return static_cast<Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR(
10631       static_cast<VkPhysicalDevice>( m_physicalDevice ), planeIndex, pDisplayCount, reinterpret_cast<VkDisplayKHR *>( pDisplays ) ) );
10632   }
10633 
10634 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
10635   // wrapper function for command vkGetDisplayPlaneSupportedDisplaysKHR, see
10636   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayPlaneSupportedDisplaysKHR.html
10637   template <typename DisplayKHRAllocator,
10638             typename Dispatch,
10639             typename std::enable_if<std::is_same<typename DisplayKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::DisplayKHR>::value, int>::type>
10640   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayKHR, DisplayKHRAllocator>>::type
getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex,Dispatch const & d) const10641                        PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, Dispatch const & d ) const
10642   {
10643     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10644 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10645     VULKAN_HPP_ASSERT( d.vkGetDisplayPlaneSupportedDisplaysKHR && "Function <vkGetDisplayPlaneSupportedDisplaysKHR> requires <VK_KHR_display>" );
10646 #  endif
10647 
10648     std::vector<VULKAN_HPP_NAMESPACE::DisplayKHR, DisplayKHRAllocator> displays;
10649     uint32_t                                                           displayCount;
10650     VULKAN_HPP_NAMESPACE::Result                                       result;
10651     do
10652     {
10653       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) );
10654       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && displayCount )
10655       {
10656         displays.resize( displayCount );
10657         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
10658           d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast<VkDisplayKHR *>( displays.data() ) ) );
10659       }
10660     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
10661     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" );
10662     VULKAN_HPP_ASSERT( displayCount <= displays.size() );
10663     if ( displayCount < displays.size() )
10664     {
10665       displays.resize( displayCount );
10666     }
10667     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( displays ) );
10668   }
10669 
10670   // wrapper function for command vkGetDisplayPlaneSupportedDisplaysKHR, see
10671   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayPlaneSupportedDisplaysKHR.html
10672   template <typename DisplayKHRAllocator,
10673             typename Dispatch,
10674             typename std::enable_if<std::is_same<typename DisplayKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::DisplayKHR>::value, int>::type>
10675   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayKHR, DisplayKHRAllocator>>::type
getDisplayPlaneSupportedDisplaysKHR(uint32_t planeIndex,DisplayKHRAllocator & displayKHRAllocator,Dispatch const & d) const10676     PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR( uint32_t planeIndex, DisplayKHRAllocator & displayKHRAllocator, Dispatch const & d ) const
10677   {
10678     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10679 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10680     VULKAN_HPP_ASSERT( d.vkGetDisplayPlaneSupportedDisplaysKHR && "Function <vkGetDisplayPlaneSupportedDisplaysKHR> requires <VK_KHR_display>" );
10681 #  endif
10682 
10683     std::vector<VULKAN_HPP_NAMESPACE::DisplayKHR, DisplayKHRAllocator> displays( displayKHRAllocator );
10684     uint32_t                                                           displayCount;
10685     VULKAN_HPP_NAMESPACE::Result                                       result;
10686     do
10687     {
10688       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, nullptr ) );
10689       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && displayCount )
10690       {
10691         displays.resize( displayCount );
10692         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
10693           d.vkGetDisplayPlaneSupportedDisplaysKHR( m_physicalDevice, planeIndex, &displayCount, reinterpret_cast<VkDisplayKHR *>( displays.data() ) ) );
10694       }
10695     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
10696     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneSupportedDisplaysKHR" );
10697     VULKAN_HPP_ASSERT( displayCount <= displays.size() );
10698     if ( displayCount < displays.size() )
10699     {
10700       displays.resize( displayCount );
10701     }
10702     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( displays ) );
10703   }
10704 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
10705 
10706   // wrapper function for command vkGetDisplayModePropertiesKHR, see
10707   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayModePropertiesKHR.html
10708   template <typename Dispatch>
getDisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR * pProperties,Dispatch const & d) const10709   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR                 display,
10710                                                                                              uint32_t *                                       pPropertyCount,
10711                                                                                              VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR * pProperties,
10712                                                                                              Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
10713   {
10714     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10715     return static_cast<Result>( d.vkGetDisplayModePropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
10716                                                                  static_cast<VkDisplayKHR>( display ),
10717                                                                  pPropertyCount,
10718                                                                  reinterpret_cast<VkDisplayModePropertiesKHR *>( pProperties ) ) );
10719   }
10720 
10721 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
10722   // wrapper function for command vkGetDisplayModePropertiesKHR, see
10723   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayModePropertiesKHR.html
10724   template <typename DisplayModePropertiesKHRAllocator,
10725             typename Dispatch,
10726             typename std::enable_if<std::is_same<typename DisplayModePropertiesKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR>::value,
10727                                     int>::type>
10728   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
10729     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR, DisplayModePropertiesKHRAllocator>>::type
getDisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const10730     PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const
10731   {
10732     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10733 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10734     VULKAN_HPP_ASSERT( d.vkGetDisplayModePropertiesKHR && "Function <vkGetDisplayModePropertiesKHR> requires <VK_KHR_display>" );
10735 #  endif
10736 
10737     std::vector<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR, DisplayModePropertiesKHRAllocator> properties;
10738     uint32_t                                                                                       propertyCount;
10739     VULKAN_HPP_NAMESPACE::Result                                                                   result;
10740     do
10741     {
10742       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
10743         d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
10744       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
10745       {
10746         properties.resize( propertyCount );
10747         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDisplayModePropertiesKHR(
10748           m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModePropertiesKHR *>( properties.data() ) ) );
10749       }
10750     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
10751     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayModePropertiesKHR" );
10752     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
10753     if ( propertyCount < properties.size() )
10754     {
10755       properties.resize( propertyCount );
10756     }
10757     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
10758   }
10759 
10760   // wrapper function for command vkGetDisplayModePropertiesKHR, see
10761   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayModePropertiesKHR.html
10762   template <typename DisplayModePropertiesKHRAllocator,
10763             typename Dispatch,
10764             typename std::enable_if<std::is_same<typename DisplayModePropertiesKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR>::value,
10765                                     int>::type>
10766   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
10767     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR, DisplayModePropertiesKHRAllocator>>::type
getDisplayModePropertiesKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,DisplayModePropertiesKHRAllocator & displayModePropertiesKHRAllocator,Dispatch const & d) const10768     PhysicalDevice::getDisplayModePropertiesKHR( VULKAN_HPP_NAMESPACE::DisplayKHR    display,
10769                                                  DisplayModePropertiesKHRAllocator & displayModePropertiesKHRAllocator,
10770                                                  Dispatch const &                    d ) const
10771   {
10772     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10773 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10774     VULKAN_HPP_ASSERT( d.vkGetDisplayModePropertiesKHR && "Function <vkGetDisplayModePropertiesKHR> requires <VK_KHR_display>" );
10775 #  endif
10776 
10777     std::vector<VULKAN_HPP_NAMESPACE::DisplayModePropertiesKHR, DisplayModePropertiesKHRAllocator> properties( displayModePropertiesKHRAllocator );
10778     uint32_t                                                                                       propertyCount;
10779     VULKAN_HPP_NAMESPACE::Result                                                                   result;
10780     do
10781     {
10782       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
10783         d.vkGetDisplayModePropertiesKHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
10784       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
10785       {
10786         properties.resize( propertyCount );
10787         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDisplayModePropertiesKHR(
10788           m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModePropertiesKHR *>( properties.data() ) ) );
10789       }
10790     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
10791     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayModePropertiesKHR" );
10792     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
10793     if ( propertyCount < properties.size() )
10794     {
10795       properties.resize( propertyCount );
10796     }
10797     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
10798   }
10799 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
10800 
10801   // wrapper function for command vkCreateDisplayModeKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDisplayModeKHR.html
10802   template <typename Dispatch>
createDisplayModeKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,const VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DisplayModeKHR * pMode,Dispatch const & d) const10803   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::createDisplayModeKHR( VULKAN_HPP_NAMESPACE::DisplayKHR                       display,
10804                                                                                       const VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR * pCreateInfo,
10805                                                                                       const VULKAN_HPP_NAMESPACE::AllocationCallbacks *      pAllocator,
10806                                                                                       VULKAN_HPP_NAMESPACE::DisplayModeKHR *                 pMode,
10807                                                                                       Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
10808   {
10809     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10810     return static_cast<Result>( d.vkCreateDisplayModeKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
10811                                                           static_cast<VkDisplayKHR>( display ),
10812                                                           reinterpret_cast<const VkDisplayModeCreateInfoKHR *>( pCreateInfo ),
10813                                                           reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
10814                                                           reinterpret_cast<VkDisplayModeKHR *>( pMode ) ) );
10815   }
10816 
10817 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
10818   // wrapper function for command vkCreateDisplayModeKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDisplayModeKHR.html
10819   template <typename Dispatch>
10820   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayModeKHR>::type
createDisplayModeKHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,const VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const10821                        PhysicalDevice::createDisplayModeKHR( VULKAN_HPP_NAMESPACE::DisplayKHR                          display,
10822                                           const VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR &    createInfo,
10823                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
10824                                           Dispatch const &                                          d ) const
10825   {
10826     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10827 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10828     VULKAN_HPP_ASSERT( d.vkCreateDisplayModeKHR && "Function <vkCreateDisplayModeKHR> requires <VK_KHR_display>" );
10829 #  endif
10830 
10831     VULKAN_HPP_NAMESPACE::DisplayModeKHR mode;
10832     VULKAN_HPP_NAMESPACE::Result         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
10833       d.vkCreateDisplayModeKHR( m_physicalDevice,
10834                                 static_cast<VkDisplayKHR>( display ),
10835                                 reinterpret_cast<const VkDisplayModeCreateInfoKHR *>( &createInfo ),
10836                                 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
10837                                 reinterpret_cast<VkDisplayModeKHR *>( &mode ) ) );
10838     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDisplayModeKHR" );
10839 
10840     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( mode ) );
10841   }
10842 
10843 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
10844   // wrapper function for command vkCreateDisplayModeKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDisplayModeKHR.html
10845   template <typename Dispatch>
10846   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayModeKHR, Dispatch>>::type
createDisplayModeKHRUnique(VULKAN_HPP_NAMESPACE::DisplayKHR display,const VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const10847                        PhysicalDevice::createDisplayModeKHRUnique( VULKAN_HPP_NAMESPACE::DisplayKHR                          display,
10848                                                 const VULKAN_HPP_NAMESPACE::DisplayModeCreateInfoKHR &    createInfo,
10849                                                 Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
10850                                                 Dispatch const &                                          d ) const
10851   {
10852     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10853 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10854     VULKAN_HPP_ASSERT( d.vkCreateDisplayModeKHR && "Function <vkCreateDisplayModeKHR> requires <VK_KHR_display>" );
10855 #    endif
10856 
10857     VULKAN_HPP_NAMESPACE::DisplayModeKHR mode;
10858     VULKAN_HPP_NAMESPACE::Result         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
10859       d.vkCreateDisplayModeKHR( m_physicalDevice,
10860                                 static_cast<VkDisplayKHR>( display ),
10861                                 reinterpret_cast<const VkDisplayModeCreateInfoKHR *>( &createInfo ),
10862                                 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
10863                                 reinterpret_cast<VkDisplayModeKHR *>( &mode ) ) );
10864     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::createDisplayModeKHRUnique" );
10865 
10866     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
10867       result, UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayModeKHR, Dispatch>( mode, detail::ObjectDestroy<PhysicalDevice, Dispatch>( *this, allocator, d ) ) );
10868   }
10869 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
10870 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
10871 
10872   // wrapper function for command vkGetDisplayPlaneCapabilitiesKHR, see
10873   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayPlaneCapabilitiesKHR.html
10874   template <typename Dispatch>
10875   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getDisplayPlaneCapabilitiesKHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR mode,uint32_t planeIndex,VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR * pCapabilities,Dispatch const & d) const10876     PhysicalDevice::getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR                mode,
10877                                                     uint32_t                                            planeIndex,
10878                                                     VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR * pCapabilities,
10879                                                     Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
10880   {
10881     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10882     return static_cast<Result>( d.vkGetDisplayPlaneCapabilitiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
10883                                                                     static_cast<VkDisplayModeKHR>( mode ),
10884                                                                     planeIndex,
10885                                                                     reinterpret_cast<VkDisplayPlaneCapabilitiesKHR *>( pCapabilities ) ) );
10886   }
10887 
10888 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
10889   // wrapper function for command vkGetDisplayPlaneCapabilitiesKHR, see
10890   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayPlaneCapabilitiesKHR.html
10891   template <typename Dispatch>
10892   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR>::type
getDisplayPlaneCapabilitiesKHR(VULKAN_HPP_NAMESPACE::DisplayModeKHR mode,uint32_t planeIndex,Dispatch const & d) const10893     PhysicalDevice::getDisplayPlaneCapabilitiesKHR( VULKAN_HPP_NAMESPACE::DisplayModeKHR mode, uint32_t planeIndex, Dispatch const & d ) const
10894   {
10895     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10896 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10897     VULKAN_HPP_ASSERT( d.vkGetDisplayPlaneCapabilitiesKHR && "Function <vkGetDisplayPlaneCapabilitiesKHR> requires <VK_KHR_display>" );
10898 #  endif
10899 
10900     VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilitiesKHR capabilities;
10901     VULKAN_HPP_NAMESPACE::Result                      result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDisplayPlaneCapabilitiesKHR(
10902       m_physicalDevice, static_cast<VkDisplayModeKHR>( mode ), planeIndex, reinterpret_cast<VkDisplayPlaneCapabilitiesKHR *>( &capabilities ) ) );
10903     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilitiesKHR" );
10904 
10905     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( capabilities ) );
10906   }
10907 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
10908 
10909   // wrapper function for command vkCreateDisplayPlaneSurfaceKHR, see
10910   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDisplayPlaneSurfaceKHR.html
10911   template <typename Dispatch>
createDisplayPlaneSurfaceKHR(const VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const10912   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createDisplayPlaneSurfaceKHR( const VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR * pCreateInfo,
10913                                                                                         const VULKAN_HPP_NAMESPACE::AllocationCallbacks *         pAllocator,
10914                                                                                         VULKAN_HPP_NAMESPACE::SurfaceKHR *                        pSurface,
10915                                                                                         Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
10916   {
10917     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10918     return static_cast<Result>( d.vkCreateDisplayPlaneSurfaceKHR( static_cast<VkInstance>( m_instance ),
10919                                                                   reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR *>( pCreateInfo ),
10920                                                                   reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
10921                                                                   reinterpret_cast<VkSurfaceKHR *>( pSurface ) ) );
10922   }
10923 
10924 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
10925   // wrapper function for command vkCreateDisplayPlaneSurfaceKHR, see
10926   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDisplayPlaneSurfaceKHR.html
10927   template <typename Dispatch>
10928   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type
createDisplayPlaneSurfaceKHR(const VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const10929                        Instance::createDisplayPlaneSurfaceKHR( const VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR & createInfo,
10930                                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
10931                                             Dispatch const &                                          d ) const
10932   {
10933     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10934 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10935     VULKAN_HPP_ASSERT( d.vkCreateDisplayPlaneSurfaceKHR && "Function <vkCreateDisplayPlaneSurfaceKHR> requires <VK_KHR_display>" );
10936 #  endif
10937 
10938     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
10939     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDisplayPlaneSurfaceKHR(
10940       m_instance,
10941       reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR *>( &createInfo ),
10942       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
10943       reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
10944     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDisplayPlaneSurfaceKHR" );
10945 
10946     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surface ) );
10947   }
10948 
10949 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
10950   // wrapper function for command vkCreateDisplayPlaneSurfaceKHR, see
10951   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDisplayPlaneSurfaceKHR.html
10952   template <typename Dispatch>
10953   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type
createDisplayPlaneSurfaceKHRUnique(const VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const10954                        Instance::createDisplayPlaneSurfaceKHRUnique( const VULKAN_HPP_NAMESPACE::DisplaySurfaceCreateInfoKHR & createInfo,
10955                                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
10956                                                   Dispatch const &                                          d ) const
10957   {
10958     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10959 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
10960     VULKAN_HPP_ASSERT( d.vkCreateDisplayPlaneSurfaceKHR && "Function <vkCreateDisplayPlaneSurfaceKHR> requires <VK_KHR_display>" );
10961 #    endif
10962 
10963     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
10964     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDisplayPlaneSurfaceKHR(
10965       m_instance,
10966       reinterpret_cast<const VkDisplaySurfaceCreateInfoKHR *>( &createInfo ),
10967       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
10968       reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
10969     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDisplayPlaneSurfaceKHRUnique" );
10970 
10971     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
10972       result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, detail::ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
10973   }
10974 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
10975 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
10976 
10977   //=== VK_KHR_display_swapchain ===
10978 
10979   // wrapper function for command vkCreateSharedSwapchainsKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSharedSwapchainsKHR.html
10980   template <typename Dispatch>
createSharedSwapchainsKHR(uint32_t swapchainCount,const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR * pCreateInfos,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains,Dispatch const & d) const10981   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createSharedSwapchainsKHR( uint32_t                                             swapchainCount,
10982                                                                                    const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR * pCreateInfos,
10983                                                                                    const VULKAN_HPP_NAMESPACE::AllocationCallbacks *    pAllocator,
10984                                                                                    VULKAN_HPP_NAMESPACE::SwapchainKHR *                 pSwapchains,
10985                                                                                    Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
10986   {
10987     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
10988     return static_cast<Result>( d.vkCreateSharedSwapchainsKHR( static_cast<VkDevice>( m_device ),
10989                                                                swapchainCount,
10990                                                                reinterpret_cast<const VkSwapchainCreateInfoKHR *>( pCreateInfos ),
10991                                                                reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
10992                                                                reinterpret_cast<VkSwapchainKHR *>( pSwapchains ) ) );
10993   }
10994 
10995 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
10996   // wrapper function for command vkCreateSharedSwapchainsKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSharedSwapchainsKHR.html
10997   template <typename SwapchainKHRAllocator,
10998             typename Dispatch,
10999             typename std::enable_if<std::is_same<typename SwapchainKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::SwapchainKHR>::value, int>::type>
11000   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::SwapchainKHR, SwapchainKHRAllocator>>::type
createSharedSwapchainsKHR(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const11001     Device::createSharedSwapchainsKHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,
11002                                        Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                    allocator,
11003                                        Dispatch const &                                                                             d ) const
11004   {
11005     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11006 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11007     VULKAN_HPP_ASSERT( d.vkCreateSharedSwapchainsKHR && "Function <vkCreateSharedSwapchainsKHR> requires <VK_KHR_display_swapchain>" );
11008 #  endif
11009 
11010     std::vector<VULKAN_HPP_NAMESPACE::SwapchainKHR, SwapchainKHRAllocator> swapchains( createInfos.size() );
11011     VULKAN_HPP_NAMESPACE::Result                                           result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateSharedSwapchainsKHR(
11012       m_device,
11013       createInfos.size(),
11014       reinterpret_cast<const VkSwapchainCreateInfoKHR *>( createInfos.data() ),
11015       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
11016       reinterpret_cast<VkSwapchainKHR *>( swapchains.data() ) ) );
11017     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHR" );
11018 
11019     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( swapchains ) );
11020   }
11021 
11022   // wrapper function for command vkCreateSharedSwapchainsKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSharedSwapchainsKHR.html
11023   template <typename SwapchainKHRAllocator,
11024             typename Dispatch,
11025             typename std::enable_if<std::is_same<typename SwapchainKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::SwapchainKHR>::value, int>::type>
11026   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::SwapchainKHR, SwapchainKHRAllocator>>::type
createSharedSwapchainsKHR(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,SwapchainKHRAllocator & swapchainKHRAllocator,Dispatch const & d) const11027     Device::createSharedSwapchainsKHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,
11028                                        Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                    allocator,
11029                                        SwapchainKHRAllocator &                                                                      swapchainKHRAllocator,
11030                                        Dispatch const &                                                                             d ) const
11031   {
11032     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11033 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11034     VULKAN_HPP_ASSERT( d.vkCreateSharedSwapchainsKHR && "Function <vkCreateSharedSwapchainsKHR> requires <VK_KHR_display_swapchain>" );
11035 #  endif
11036 
11037     std::vector<VULKAN_HPP_NAMESPACE::SwapchainKHR, SwapchainKHRAllocator> swapchains( createInfos.size(), swapchainKHRAllocator );
11038     VULKAN_HPP_NAMESPACE::Result                                           result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateSharedSwapchainsKHR(
11039       m_device,
11040       createInfos.size(),
11041       reinterpret_cast<const VkSwapchainCreateInfoKHR *>( createInfos.data() ),
11042       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
11043       reinterpret_cast<VkSwapchainKHR *>( swapchains.data() ) ) );
11044     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHR" );
11045 
11046     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( swapchains ) );
11047   }
11048 
11049   // wrapper function for command vkCreateSharedSwapchainsKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSharedSwapchainsKHR.html
11050   template <typename Dispatch>
11051   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SwapchainKHR>::type
createSharedSwapchainKHR(const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const11052                        Device::createSharedSwapchainKHR( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR &      createInfo,
11053                                       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
11054                                       Dispatch const &                                          d ) const
11055   {
11056     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11057 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11058     VULKAN_HPP_ASSERT( d.vkCreateSharedSwapchainsKHR && "Function <vkCreateSharedSwapchainsKHR> requires <VK_KHR_display_swapchain>" );
11059 #  endif
11060 
11061     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain;
11062     VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateSharedSwapchainsKHR(
11063       m_device,
11064       1,
11065       reinterpret_cast<const VkSwapchainCreateInfoKHR *>( &createInfo ),
11066       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
11067       reinterpret_cast<VkSwapchainKHR *>( &swapchain ) ) );
11068     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainKHR" );
11069 
11070     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( swapchain ) );
11071   }
11072 
11073 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
11074   // wrapper function for command vkCreateSharedSwapchainsKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSharedSwapchainsKHR.html
11075   template <typename Dispatch,
11076             typename SwapchainKHRAllocator,
11077             typename std::enable_if<std::is_same<typename SwapchainKHRAllocator::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>>::value,
11078                                     int>::type>
11079   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
11080     typename ResultValueType<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>, SwapchainKHRAllocator>>::type
createSharedSwapchainsKHRUnique(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const11081     Device::createSharedSwapchainsKHRUnique( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,
11082                                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                    allocator,
11083                                              Dispatch const &                                                                             d ) const
11084   {
11085     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11086 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11087     VULKAN_HPP_ASSERT( d.vkCreateSharedSwapchainsKHR && "Function <vkCreateSharedSwapchainsKHR> requires <VK_KHR_display_swapchain>" );
11088 #    endif
11089 
11090     std::vector<VULKAN_HPP_NAMESPACE::SwapchainKHR> swapchains( createInfos.size() );
11091     VULKAN_HPP_NAMESPACE::Result                    result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateSharedSwapchainsKHR(
11092       m_device,
11093       createInfos.size(),
11094       reinterpret_cast<const VkSwapchainCreateInfoKHR *>( createInfos.data() ),
11095       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
11096       reinterpret_cast<VkSwapchainKHR *>( swapchains.data() ) ) );
11097     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" );
11098     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>, SwapchainKHRAllocator> uniqueSwapchains;
11099     uniqueSwapchains.reserve( createInfos.size() );
11100     detail::ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
11101     for ( auto const & swapchain : swapchains )
11102     {
11103       uniqueSwapchains.push_back( UniqueHandle<SwapchainKHR, Dispatch>( swapchain, deleter ) );
11104     }
11105     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( uniqueSwapchains ) );
11106   }
11107 
11108   // wrapper function for command vkCreateSharedSwapchainsKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSharedSwapchainsKHR.html
11109   template <typename Dispatch,
11110             typename SwapchainKHRAllocator,
11111             typename std::enable_if<std::is_same<typename SwapchainKHRAllocator::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>>::value,
11112                                     int>::type>
11113   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
11114     typename ResultValueType<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>, SwapchainKHRAllocator>>::type
createSharedSwapchainsKHRUnique(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,SwapchainKHRAllocator & swapchainKHRAllocator,Dispatch const & d) const11115     Device::createSharedSwapchainsKHRUnique( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR> const & createInfos,
11116                                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                    allocator,
11117                                              SwapchainKHRAllocator &                                                                      swapchainKHRAllocator,
11118                                              Dispatch const &                                                                             d ) const
11119   {
11120     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11121 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11122     VULKAN_HPP_ASSERT( d.vkCreateSharedSwapchainsKHR && "Function <vkCreateSharedSwapchainsKHR> requires <VK_KHR_display_swapchain>" );
11123 #    endif
11124 
11125     std::vector<VULKAN_HPP_NAMESPACE::SwapchainKHR> swapchains( createInfos.size() );
11126     VULKAN_HPP_NAMESPACE::Result                    result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateSharedSwapchainsKHR(
11127       m_device,
11128       createInfos.size(),
11129       reinterpret_cast<const VkSwapchainCreateInfoKHR *>( createInfos.data() ),
11130       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
11131       reinterpret_cast<VkSwapchainKHR *>( swapchains.data() ) ) );
11132     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainsKHRUnique" );
11133     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>, SwapchainKHRAllocator> uniqueSwapchains( swapchainKHRAllocator );
11134     uniqueSwapchains.reserve( createInfos.size() );
11135     detail::ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
11136     for ( auto const & swapchain : swapchains )
11137     {
11138       uniqueSwapchains.push_back( UniqueHandle<SwapchainKHR, Dispatch>( swapchain, deleter ) );
11139     }
11140     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( uniqueSwapchains ) );
11141   }
11142 
11143   // wrapper function for command vkCreateSharedSwapchainsKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSharedSwapchainsKHR.html
11144   template <typename Dispatch>
11145   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>>::type
createSharedSwapchainKHRUnique(const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const11146                        Device::createSharedSwapchainKHRUnique( const VULKAN_HPP_NAMESPACE::SwapchainCreateInfoKHR &      createInfo,
11147                                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
11148                                             Dispatch const &                                          d ) const
11149   {
11150     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11151 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11152     VULKAN_HPP_ASSERT( d.vkCreateSharedSwapchainsKHR && "Function <vkCreateSharedSwapchainsKHR> requires <VK_KHR_display_swapchain>" );
11153 #    endif
11154 
11155     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain;
11156     VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateSharedSwapchainsKHR(
11157       m_device,
11158       1,
11159       reinterpret_cast<const VkSwapchainCreateInfoKHR *>( &createInfo ),
11160       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
11161       reinterpret_cast<VkSwapchainKHR *>( &swapchain ) ) );
11162     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSharedSwapchainKHRUnique" );
11163 
11164     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
11165       result, UniqueHandle<VULKAN_HPP_NAMESPACE::SwapchainKHR, Dispatch>( swapchain, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
11166   }
11167 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
11168 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
11169 
11170 #if defined( VK_USE_PLATFORM_XLIB_KHR )
11171   //=== VK_KHR_xlib_surface ===
11172 
11173   // wrapper function for command vkCreateXlibSurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateXlibSurfaceKHR.html
11174   template <typename Dispatch>
createXlibSurfaceKHR(const VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const11175   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createXlibSurfaceKHR( const VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR * pCreateInfo,
11176                                                                                 const VULKAN_HPP_NAMESPACE::AllocationCallbacks *      pAllocator,
11177                                                                                 VULKAN_HPP_NAMESPACE::SurfaceKHR *                     pSurface,
11178                                                                                 Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
11179   {
11180     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11181     return static_cast<Result>( d.vkCreateXlibSurfaceKHR( static_cast<VkInstance>( m_instance ),
11182                                                           reinterpret_cast<const VkXlibSurfaceCreateInfoKHR *>( pCreateInfo ),
11183                                                           reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
11184                                                           reinterpret_cast<VkSurfaceKHR *>( pSurface ) ) );
11185   }
11186 
11187 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
11188   // wrapper function for command vkCreateXlibSurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateXlibSurfaceKHR.html
11189   template <typename Dispatch>
11190   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type
createXlibSurfaceKHR(const VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const11191                        Instance::createXlibSurfaceKHR( const VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR &    createInfo,
11192                                     Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
11193                                     Dispatch const &                                          d ) const
11194   {
11195     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11196 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11197     VULKAN_HPP_ASSERT( d.vkCreateXlibSurfaceKHR && "Function <vkCreateXlibSurfaceKHR> requires <VK_KHR_xlib_surface>" );
11198 #    endif
11199 
11200     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
11201     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
11202       d.vkCreateXlibSurfaceKHR( m_instance,
11203                                 reinterpret_cast<const VkXlibSurfaceCreateInfoKHR *>( &createInfo ),
11204                                 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
11205                                 reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
11206     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXlibSurfaceKHR" );
11207 
11208     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surface ) );
11209   }
11210 
11211 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
11212   // wrapper function for command vkCreateXlibSurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateXlibSurfaceKHR.html
11213   template <typename Dispatch>
11214   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type
createXlibSurfaceKHRUnique(const VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const11215                        Instance::createXlibSurfaceKHRUnique( const VULKAN_HPP_NAMESPACE::XlibSurfaceCreateInfoKHR &    createInfo,
11216                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
11217                                           Dispatch const &                                          d ) const
11218   {
11219     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11220 #      if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11221     VULKAN_HPP_ASSERT( d.vkCreateXlibSurfaceKHR && "Function <vkCreateXlibSurfaceKHR> requires <VK_KHR_xlib_surface>" );
11222 #      endif
11223 
11224     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
11225     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
11226       d.vkCreateXlibSurfaceKHR( m_instance,
11227                                 reinterpret_cast<const VkXlibSurfaceCreateInfoKHR *>( &createInfo ),
11228                                 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
11229                                 reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
11230     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXlibSurfaceKHRUnique" );
11231 
11232     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
11233       result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, detail::ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
11234   }
11235 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
11236 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
11237 
11238   // wrapper function for command vkGetPhysicalDeviceXlibPresentationSupportKHR, see
11239   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceXlibPresentationSupportKHR.html
11240   template <typename Dispatch>
11241   VULKAN_HPP_INLINE Bool32
getXlibPresentationSupportKHR(uint32_t queueFamilyIndex,Display * dpy,VisualID visualID,Dispatch const & d) const11242     PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display * dpy, VisualID visualID, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
11243   {
11244     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11245     return static_cast<Bool32>(
11246       d.vkGetPhysicalDeviceXlibPresentationSupportKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, dpy, visualID ) );
11247   }
11248 
11249 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
11250   // wrapper function for command vkGetPhysicalDeviceXlibPresentationSupportKHR, see
11251   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceXlibPresentationSupportKHR.html
11252   template <typename Dispatch>
11253   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32
getXlibPresentationSupportKHR(uint32_t queueFamilyIndex,Display & dpy,VisualID visualID,Dispatch const & d) const11254     PhysicalDevice::getXlibPresentationSupportKHR( uint32_t queueFamilyIndex, Display & dpy, VisualID visualID, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
11255   {
11256     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11257 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11258     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceXlibPresentationSupportKHR &&
11259                        "Function <vkGetPhysicalDeviceXlibPresentationSupportKHR> requires <VK_KHR_xlib_surface>" );
11260 #    endif
11261 
11262     VkBool32 result = d.vkGetPhysicalDeviceXlibPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &dpy, visualID );
11263 
11264     return static_cast<VULKAN_HPP_NAMESPACE::Bool32>( result );
11265   }
11266 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
11267 #endif   /*VK_USE_PLATFORM_XLIB_KHR*/
11268 
11269 #if defined( VK_USE_PLATFORM_XCB_KHR )
11270   //=== VK_KHR_xcb_surface ===
11271 
11272   // wrapper function for command vkCreateXcbSurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateXcbSurfaceKHR.html
11273   template <typename Dispatch>
createXcbSurfaceKHR(const VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const11274   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createXcbSurfaceKHR( const VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR * pCreateInfo,
11275                                                                                const VULKAN_HPP_NAMESPACE::AllocationCallbacks *     pAllocator,
11276                                                                                VULKAN_HPP_NAMESPACE::SurfaceKHR *                    pSurface,
11277                                                                                Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
11278   {
11279     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11280     return static_cast<Result>( d.vkCreateXcbSurfaceKHR( static_cast<VkInstance>( m_instance ),
11281                                                          reinterpret_cast<const VkXcbSurfaceCreateInfoKHR *>( pCreateInfo ),
11282                                                          reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
11283                                                          reinterpret_cast<VkSurfaceKHR *>( pSurface ) ) );
11284   }
11285 
11286 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
11287   // wrapper function for command vkCreateXcbSurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateXcbSurfaceKHR.html
11288   template <typename Dispatch>
11289   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type
createXcbSurfaceKHR(const VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const11290                        Instance::createXcbSurfaceKHR( const VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR &     createInfo,
11291                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
11292                                    Dispatch const &                                          d ) const
11293   {
11294     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11295 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11296     VULKAN_HPP_ASSERT( d.vkCreateXcbSurfaceKHR && "Function <vkCreateXcbSurfaceKHR> requires <VK_KHR_xcb_surface>" );
11297 #    endif
11298 
11299     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
11300     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
11301       d.vkCreateXcbSurfaceKHR( m_instance,
11302                                reinterpret_cast<const VkXcbSurfaceCreateInfoKHR *>( &createInfo ),
11303                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
11304                                reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
11305     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXcbSurfaceKHR" );
11306 
11307     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surface ) );
11308   }
11309 
11310 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
11311   // wrapper function for command vkCreateXcbSurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateXcbSurfaceKHR.html
11312   template <typename Dispatch>
11313   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type
createXcbSurfaceKHRUnique(const VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const11314                        Instance::createXcbSurfaceKHRUnique( const VULKAN_HPP_NAMESPACE::XcbSurfaceCreateInfoKHR &     createInfo,
11315                                          Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
11316                                          Dispatch const &                                          d ) const
11317   {
11318     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11319 #      if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11320     VULKAN_HPP_ASSERT( d.vkCreateXcbSurfaceKHR && "Function <vkCreateXcbSurfaceKHR> requires <VK_KHR_xcb_surface>" );
11321 #      endif
11322 
11323     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
11324     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
11325       d.vkCreateXcbSurfaceKHR( m_instance,
11326                                reinterpret_cast<const VkXcbSurfaceCreateInfoKHR *>( &createInfo ),
11327                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
11328                                reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
11329     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createXcbSurfaceKHRUnique" );
11330 
11331     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
11332       result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, detail::ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
11333   }
11334 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
11335 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
11336 
11337   // wrapper function for command vkGetPhysicalDeviceXcbPresentationSupportKHR, see
11338   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceXcbPresentationSupportKHR.html
11339   template <typename Dispatch>
getXcbPresentationSupportKHR(uint32_t queueFamilyIndex,xcb_connection_t * connection,xcb_visualid_t visual_id,Dispatch const & d) const11340   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getXcbPresentationSupportKHR( uint32_t           queueFamilyIndex,
11341                                                                          xcb_connection_t * connection,
11342                                                                          xcb_visualid_t     visual_id,
11343                                                                          Dispatch const &   d ) const VULKAN_HPP_NOEXCEPT
11344   {
11345     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11346     return static_cast<Bool32>(
11347       d.vkGetPhysicalDeviceXcbPresentationSupportKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, connection, visual_id ) );
11348   }
11349 
11350 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
11351   // wrapper function for command vkGetPhysicalDeviceXcbPresentationSupportKHR, see
11352   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceXcbPresentationSupportKHR.html
11353   template <typename Dispatch>
getXcbPresentationSupportKHR(uint32_t queueFamilyIndex,xcb_connection_t & connection,xcb_visualid_t visual_id,Dispatch const & d) const11354   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32 PhysicalDevice::getXcbPresentationSupportKHR( uint32_t           queueFamilyIndex,
11355                                                                                                xcb_connection_t & connection,
11356                                                                                                xcb_visualid_t     visual_id,
11357                                                                                                Dispatch const &   d ) const VULKAN_HPP_NOEXCEPT
11358   {
11359     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11360 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11361     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceXcbPresentationSupportKHR &&
11362                        "Function <vkGetPhysicalDeviceXcbPresentationSupportKHR> requires <VK_KHR_xcb_surface>" );
11363 #    endif
11364 
11365     VkBool32 result = d.vkGetPhysicalDeviceXcbPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &connection, visual_id );
11366 
11367     return static_cast<VULKAN_HPP_NAMESPACE::Bool32>( result );
11368   }
11369 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
11370 #endif   /*VK_USE_PLATFORM_XCB_KHR*/
11371 
11372 #if defined( VK_USE_PLATFORM_WAYLAND_KHR )
11373   //=== VK_KHR_wayland_surface ===
11374 
11375   // wrapper function for command vkCreateWaylandSurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateWaylandSurfaceKHR.html
11376   template <typename Dispatch>
createWaylandSurfaceKHR(const VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const11377   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createWaylandSurfaceKHR( const VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR * pCreateInfo,
11378                                                                                    const VULKAN_HPP_NAMESPACE::AllocationCallbacks *         pAllocator,
11379                                                                                    VULKAN_HPP_NAMESPACE::SurfaceKHR *                        pSurface,
11380                                                                                    Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
11381   {
11382     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11383     return static_cast<Result>( d.vkCreateWaylandSurfaceKHR( static_cast<VkInstance>( m_instance ),
11384                                                              reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR *>( pCreateInfo ),
11385                                                              reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
11386                                                              reinterpret_cast<VkSurfaceKHR *>( pSurface ) ) );
11387   }
11388 
11389 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
11390   // wrapper function for command vkCreateWaylandSurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateWaylandSurfaceKHR.html
11391   template <typename Dispatch>
11392   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type
createWaylandSurfaceKHR(const VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const11393                        Instance::createWaylandSurfaceKHR( const VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR & createInfo,
11394                                        Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
11395                                        Dispatch const &                                          d ) const
11396   {
11397     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11398 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11399     VULKAN_HPP_ASSERT( d.vkCreateWaylandSurfaceKHR && "Function <vkCreateWaylandSurfaceKHR> requires <VK_KHR_wayland_surface>" );
11400 #    endif
11401 
11402     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
11403     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateWaylandSurfaceKHR(
11404       m_instance,
11405       reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR *>( &createInfo ),
11406       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
11407       reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
11408     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWaylandSurfaceKHR" );
11409 
11410     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surface ) );
11411   }
11412 
11413 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
11414   // wrapper function for command vkCreateWaylandSurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateWaylandSurfaceKHR.html
11415   template <typename Dispatch>
11416   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type
createWaylandSurfaceKHRUnique(const VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const11417                        Instance::createWaylandSurfaceKHRUnique( const VULKAN_HPP_NAMESPACE::WaylandSurfaceCreateInfoKHR & createInfo,
11418                                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
11419                                              Dispatch const &                                          d ) const
11420   {
11421     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11422 #      if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11423     VULKAN_HPP_ASSERT( d.vkCreateWaylandSurfaceKHR && "Function <vkCreateWaylandSurfaceKHR> requires <VK_KHR_wayland_surface>" );
11424 #      endif
11425 
11426     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
11427     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateWaylandSurfaceKHR(
11428       m_instance,
11429       reinterpret_cast<const VkWaylandSurfaceCreateInfoKHR *>( &createInfo ),
11430       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
11431       reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
11432     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWaylandSurfaceKHRUnique" );
11433 
11434     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
11435       result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, detail::ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
11436   }
11437 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
11438 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
11439 
11440   // wrapper function for command vkGetPhysicalDeviceWaylandPresentationSupportKHR, see
11441   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceWaylandPresentationSupportKHR.html
11442   template <typename Dispatch>
getWaylandPresentationSupportKHR(uint32_t queueFamilyIndex,struct wl_display * display,Dispatch const & d) const11443   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t            queueFamilyIndex,
11444                                                                              struct wl_display * display,
11445                                                                              Dispatch const &    d ) const VULKAN_HPP_NOEXCEPT
11446   {
11447     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11448     return static_cast<Bool32>(
11449       d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, display ) );
11450   }
11451 
11452 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
11453   // wrapper function for command vkGetPhysicalDeviceWaylandPresentationSupportKHR, see
11454   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceWaylandPresentationSupportKHR.html
11455   template <typename Dispatch>
11456   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32
getWaylandPresentationSupportKHR(uint32_t queueFamilyIndex,struct wl_display & display,Dispatch const & d) const11457     PhysicalDevice::getWaylandPresentationSupportKHR( uint32_t queueFamilyIndex, struct wl_display & display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
11458   {
11459     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11460 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11461     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceWaylandPresentationSupportKHR &&
11462                        "Function <vkGetPhysicalDeviceWaylandPresentationSupportKHR> requires <VK_KHR_wayland_surface>" );
11463 #    endif
11464 
11465     VkBool32 result = d.vkGetPhysicalDeviceWaylandPresentationSupportKHR( m_physicalDevice, queueFamilyIndex, &display );
11466 
11467     return static_cast<VULKAN_HPP_NAMESPACE::Bool32>( result );
11468   }
11469 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
11470 #endif   /*VK_USE_PLATFORM_WAYLAND_KHR*/
11471 
11472 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
11473   //=== VK_KHR_android_surface ===
11474 
11475   // wrapper function for command vkCreateAndroidSurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateAndroidSurfaceKHR.html
11476   template <typename Dispatch>
createAndroidSurfaceKHR(const VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const11477   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createAndroidSurfaceKHR( const VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR * pCreateInfo,
11478                                                                                    const VULKAN_HPP_NAMESPACE::AllocationCallbacks *         pAllocator,
11479                                                                                    VULKAN_HPP_NAMESPACE::SurfaceKHR *                        pSurface,
11480                                                                                    Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
11481   {
11482     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11483     return static_cast<Result>( d.vkCreateAndroidSurfaceKHR( static_cast<VkInstance>( m_instance ),
11484                                                              reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR *>( pCreateInfo ),
11485                                                              reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
11486                                                              reinterpret_cast<VkSurfaceKHR *>( pSurface ) ) );
11487   }
11488 
11489 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
11490   // wrapper function for command vkCreateAndroidSurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateAndroidSurfaceKHR.html
11491   template <typename Dispatch>
11492   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type
createAndroidSurfaceKHR(const VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const11493                        Instance::createAndroidSurfaceKHR( const VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR & createInfo,
11494                                        Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
11495                                        Dispatch const &                                          d ) const
11496   {
11497     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11498 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11499     VULKAN_HPP_ASSERT( d.vkCreateAndroidSurfaceKHR && "Function <vkCreateAndroidSurfaceKHR> requires <VK_KHR_android_surface>" );
11500 #    endif
11501 
11502     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
11503     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateAndroidSurfaceKHR(
11504       m_instance,
11505       reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR *>( &createInfo ),
11506       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
11507       reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
11508     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createAndroidSurfaceKHR" );
11509 
11510     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surface ) );
11511   }
11512 
11513 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
11514   // wrapper function for command vkCreateAndroidSurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateAndroidSurfaceKHR.html
11515   template <typename Dispatch>
11516   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type
createAndroidSurfaceKHRUnique(const VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const11517                        Instance::createAndroidSurfaceKHRUnique( const VULKAN_HPP_NAMESPACE::AndroidSurfaceCreateInfoKHR & createInfo,
11518                                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
11519                                              Dispatch const &                                          d ) const
11520   {
11521     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11522 #      if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11523     VULKAN_HPP_ASSERT( d.vkCreateAndroidSurfaceKHR && "Function <vkCreateAndroidSurfaceKHR> requires <VK_KHR_android_surface>" );
11524 #      endif
11525 
11526     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
11527     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateAndroidSurfaceKHR(
11528       m_instance,
11529       reinterpret_cast<const VkAndroidSurfaceCreateInfoKHR *>( &createInfo ),
11530       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
11531       reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
11532     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createAndroidSurfaceKHRUnique" );
11533 
11534     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
11535       result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, detail::ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
11536   }
11537 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
11538 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
11539 #endif     /*VK_USE_PLATFORM_ANDROID_KHR*/
11540 
11541 #if defined( VK_USE_PLATFORM_WIN32_KHR )
11542   //=== VK_KHR_win32_surface ===
11543 
11544   // wrapper function for command vkCreateWin32SurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateWin32SurfaceKHR.html
11545   template <typename Dispatch>
createWin32SurfaceKHR(const VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const11546   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createWin32SurfaceKHR( const VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR * pCreateInfo,
11547                                                                                  const VULKAN_HPP_NAMESPACE::AllocationCallbacks *       pAllocator,
11548                                                                                  VULKAN_HPP_NAMESPACE::SurfaceKHR *                      pSurface,
11549                                                                                  Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
11550   {
11551     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11552     return static_cast<Result>( d.vkCreateWin32SurfaceKHR( static_cast<VkInstance>( m_instance ),
11553                                                            reinterpret_cast<const VkWin32SurfaceCreateInfoKHR *>( pCreateInfo ),
11554                                                            reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
11555                                                            reinterpret_cast<VkSurfaceKHR *>( pSurface ) ) );
11556   }
11557 
11558 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
11559   // wrapper function for command vkCreateWin32SurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateWin32SurfaceKHR.html
11560   template <typename Dispatch>
11561   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type
createWin32SurfaceKHR(const VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const11562                        Instance::createWin32SurfaceKHR( const VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR &   createInfo,
11563                                      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
11564                                      Dispatch const &                                          d ) const
11565   {
11566     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11567 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11568     VULKAN_HPP_ASSERT( d.vkCreateWin32SurfaceKHR && "Function <vkCreateWin32SurfaceKHR> requires <VK_KHR_win32_surface>" );
11569 #    endif
11570 
11571     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
11572     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
11573       d.vkCreateWin32SurfaceKHR( m_instance,
11574                                  reinterpret_cast<const VkWin32SurfaceCreateInfoKHR *>( &createInfo ),
11575                                  reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
11576                                  reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
11577     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWin32SurfaceKHR" );
11578 
11579     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surface ) );
11580   }
11581 
11582 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
11583   // wrapper function for command vkCreateWin32SurfaceKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateWin32SurfaceKHR.html
11584   template <typename Dispatch>
11585   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type
createWin32SurfaceKHRUnique(const VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const11586                        Instance::createWin32SurfaceKHRUnique( const VULKAN_HPP_NAMESPACE::Win32SurfaceCreateInfoKHR &   createInfo,
11587                                            Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
11588                                            Dispatch const &                                          d ) const
11589   {
11590     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11591 #      if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11592     VULKAN_HPP_ASSERT( d.vkCreateWin32SurfaceKHR && "Function <vkCreateWin32SurfaceKHR> requires <VK_KHR_win32_surface>" );
11593 #      endif
11594 
11595     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
11596     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
11597       d.vkCreateWin32SurfaceKHR( m_instance,
11598                                  reinterpret_cast<const VkWin32SurfaceCreateInfoKHR *>( &createInfo ),
11599                                  reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
11600                                  reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
11601     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createWin32SurfaceKHRUnique" );
11602 
11603     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
11604       result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, detail::ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
11605   }
11606 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
11607 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
11608 
11609   // wrapper function for command vkGetPhysicalDeviceWin32PresentationSupportKHR, see
11610   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceWin32PresentationSupportKHR.html
11611   template <typename Dispatch>
getWin32PresentationSupportKHR(uint32_t queueFamilyIndex,Dispatch const & d) const11612   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getWin32PresentationSupportKHR( uint32_t queueFamilyIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
11613   {
11614     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11615     return static_cast<Bool32>( d.vkGetPhysicalDeviceWin32PresentationSupportKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex ) );
11616   }
11617 #endif /*VK_USE_PLATFORM_WIN32_KHR*/
11618 
11619 #if defined( VK_USE_PLATFORM_OHOS )
11620   //=== VK_OHOS_surface ===
11621 
11622   template <typename Dispatch>
11623   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
createSurfaceOHOS(const VULKAN_HPP_NAMESPACE::SurfaceCreateInfoOHOS * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const11624     Instance::createSurfaceOHOS( const VULKAN_HPP_NAMESPACE::SurfaceCreateInfoOHOS * pCreateInfo,
11625                                             const VULKAN_HPP_NAMESPACE::AllocationCallbacks *              pAllocator,
11626                                             VULKAN_HPP_NAMESPACE::SurfaceKHR *                             pSurface,
11627                                             Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
11628   {
11629     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11630     return static_cast<Result>(
11631       d.vkCreateSurfaceOHOS(  static_cast<VkInstance>( m_instance ),
11632                               reinterpret_cast<const VkSurfaceCreateInfoOHOS *>( pCreateInfo ),
11633                               reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
11634                               reinterpret_cast<VkSurfaceKHR *>( pSurface ) ) );
11635   }
11636 
11637 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
11638   template <typename Dispatch>
11639   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE
11640     typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type
createSurfaceOHOS(const VULKAN_HPP_NAMESPACE::SurfaceCreateInfoOHOS & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const11641     Instance::createSurfaceOHOS( const VULKAN_HPP_NAMESPACE::SurfaceCreateInfoOHOS & createInfo,
11642                                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
11643                                             Dispatch const &                                          d ) const
11644   {
11645     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11646 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11647     VULKAN_HPP_ASSERT( d.vkCreateSurfaceOHOS && "Function <vkCreateSurfaceOHOS> requires <VK_OHOS_surface>" );
11648 #    endif
11649     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
11650     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(d.vkCreateSurfaceOHOS(
11651       m_instance,
11652       reinterpret_cast<const VkSurfaceCreateInfoOHOS *>( &createInfo ),
11653       reinterpret_cast<const VkAllocationCallbacks *>(
11654       static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
11655       reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
11656       VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createSurfaceOHOS" );
11657 
11658     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surface ) );
11659   }
11660 
11661 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
11662   template <typename Dispatch>
11663   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE
11664     typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type
createSurfaceOHOSUnique(const VULKAN_HPP_NAMESPACE::SurfaceCreateInfoOHOS & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const11665     Instance::createSurfaceOHOSUnique( const VULKAN_HPP_NAMESPACE::SurfaceCreateInfoOHOS & createInfo,
11666                                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
11667                                                   Dispatch const &                                          d ) const
11668   {
11669     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11670 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11671     VULKAN_HPP_ASSERT( d.vkCreateSurfaceOHOS && "Function <vkCreateSurfaceOHOS> requires <VK_OHOS_surface>" );
11672 #    endif
11673     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
11674     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateSurfaceOHOS(
11675       m_instance,
11676       reinterpret_cast<const VkSurfaceCreateInfoOHOS *>( &createInfo ),
11677       reinterpret_cast<const VkAllocationCallbacks *>(
11678       static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
11679       reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
11680       VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createSurfaceOHOSUnique" );
11681 
11682     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
11683       result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, detail::ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
11684   }
11685 #    endif /*VULKAN_HPP_NO_SMART_HANDLE*/
11686 #  endif   /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
11687 #endif     /*VK_USE_PLATFORM_OHOS*/
11688 
11689   //=== VK_EXT_debug_report ===
11690 
11691   // wrapper function for command vkCreateDebugReportCallbackEXT, see
11692   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDebugReportCallbackEXT.html
11693   template <typename Dispatch>
11694   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
createDebugReportCallbackEXT(const VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT * pCallback,Dispatch const & d) const11695     Instance::createDebugReportCallbackEXT( const VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT * pCreateInfo,
11696                                             const VULKAN_HPP_NAMESPACE::AllocationCallbacks *              pAllocator,
11697                                             VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT *                 pCallback,
11698                                             Dispatch const &                                               d ) const VULKAN_HPP_NOEXCEPT
11699   {
11700     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11701     return static_cast<Result>( d.vkCreateDebugReportCallbackEXT( static_cast<VkInstance>( m_instance ),
11702                                                                   reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT *>( pCreateInfo ),
11703                                                                   reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
11704                                                                   reinterpret_cast<VkDebugReportCallbackEXT *>( pCallback ) ) );
11705   }
11706 
11707 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
11708   // wrapper function for command vkCreateDebugReportCallbackEXT, see
11709   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDebugReportCallbackEXT.html
11710   template <typename Dispatch>
11711   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT>::type
createDebugReportCallbackEXT(const VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const11712                        Instance::createDebugReportCallbackEXT( const VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT & createInfo,
11713                                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>      allocator,
11714                                             Dispatch const &                                               d ) const
11715   {
11716     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11717 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11718     VULKAN_HPP_ASSERT( d.vkCreateDebugReportCallbackEXT && "Function <vkCreateDebugReportCallbackEXT> requires <VK_EXT_debug_report>" );
11719 #  endif
11720 
11721     VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback;
11722     VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDebugReportCallbackEXT(
11723       m_instance,
11724       reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT *>( &createInfo ),
11725       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
11726       reinterpret_cast<VkDebugReportCallbackEXT *>( &callback ) ) );
11727     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugReportCallbackEXT" );
11728 
11729     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( callback ) );
11730   }
11731 
11732 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
11733   // wrapper function for command vkCreateDebugReportCallbackEXT, see
11734   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDebugReportCallbackEXT.html
11735   template <typename Dispatch>
11736   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT, Dispatch>>::type
createDebugReportCallbackEXTUnique(const VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const11737                        Instance::createDebugReportCallbackEXTUnique( const VULKAN_HPP_NAMESPACE::DebugReportCallbackCreateInfoEXT & createInfo,
11738                                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>      allocator,
11739                                                   Dispatch const &                                               d ) const
11740   {
11741     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11742 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11743     VULKAN_HPP_ASSERT( d.vkCreateDebugReportCallbackEXT && "Function <vkCreateDebugReportCallbackEXT> requires <VK_EXT_debug_report>" );
11744 #    endif
11745 
11746     VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback;
11747     VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDebugReportCallbackEXT(
11748       m_instance,
11749       reinterpret_cast<const VkDebugReportCallbackCreateInfoEXT *>( &createInfo ),
11750       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
11751       reinterpret_cast<VkDebugReportCallbackEXT *>( &callback ) ) );
11752     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugReportCallbackEXTUnique" );
11753 
11754     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
11755       result,
11756       UniqueHandle<VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT, Dispatch>( callback, detail::ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
11757   }
11758 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
11759 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
11760 
11761   // wrapper function for command vkDestroyDebugReportCallbackEXT, see
11762   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDebugReportCallbackEXT.html
11763   template <typename Dispatch>
destroyDebugReportCallbackEXT(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const11764   VULKAN_HPP_INLINE void Instance::destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT      callback,
11765                                                                   const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
11766                                                                   Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
11767   {
11768     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11769     d.vkDestroyDebugReportCallbackEXT(
11770       static_cast<VkInstance>( m_instance ), static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
11771   }
11772 
11773 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
11774   // wrapper function for command vkDestroyDebugReportCallbackEXT, see
11775   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDebugReportCallbackEXT.html
11776   template <typename Dispatch>
destroyDebugReportCallbackEXT(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const11777   VULKAN_HPP_INLINE void Instance::destroyDebugReportCallbackEXT( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT              callback,
11778                                                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
11779                                                                   Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
11780   {
11781     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11782 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11783     VULKAN_HPP_ASSERT( d.vkDestroyDebugReportCallbackEXT && "Function <vkDestroyDebugReportCallbackEXT> requires <VK_EXT_debug_report>" );
11784 #  endif
11785 
11786     d.vkDestroyDebugReportCallbackEXT(
11787       m_instance,
11788       static_cast<VkDebugReportCallbackEXT>( callback ),
11789       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
11790   }
11791 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
11792 
11793   // wrapper function for command vkDestroyDebugReportCallbackEXT, see
11794   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDebugReportCallbackEXT.html
11795   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const11796   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT      callback,
11797                                             const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
11798                                             Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
11799   {
11800     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11801     d.vkDestroyDebugReportCallbackEXT(
11802       static_cast<VkInstance>( m_instance ), static_cast<VkDebugReportCallbackEXT>( callback ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
11803   }
11804 
11805 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
11806   // wrapper function for command vkDestroyDebugReportCallbackEXT, see
11807   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDebugReportCallbackEXT.html
11808   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT callback,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const11809   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugReportCallbackEXT              callback,
11810                                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
11811                                             Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
11812   {
11813     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11814 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11815     VULKAN_HPP_ASSERT( d.vkDestroyDebugReportCallbackEXT && "Function <vkDestroyDebugReportCallbackEXT> requires <VK_EXT_debug_report>" );
11816 #  endif
11817 
11818     d.vkDestroyDebugReportCallbackEXT(
11819       m_instance,
11820       static_cast<VkDebugReportCallbackEXT>( callback ),
11821       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
11822   }
11823 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
11824 
11825   // wrapper function for command vkDebugReportMessageEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDebugReportMessageEXT.html
11826   template <typename Dispatch>
debugReportMessageEXT(VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags,VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_,uint64_t object,size_t location,int32_t messageCode,const char * pLayerPrefix,const char * pMessage,Dispatch const & d) const11827   VULKAN_HPP_INLINE void Instance::debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT      flags,
11828                                                           VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_,
11829                                                           uint64_t                                       object,
11830                                                           size_t                                         location,
11831                                                           int32_t                                        messageCode,
11832                                                           const char *                                   pLayerPrefix,
11833                                                           const char *                                   pMessage,
11834                                                           Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
11835   {
11836     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11837     d.vkDebugReportMessageEXT( static_cast<VkInstance>( m_instance ),
11838                                static_cast<VkDebugReportFlagsEXT>( flags ),
11839                                static_cast<VkDebugReportObjectTypeEXT>( objectType_ ),
11840                                object,
11841                                location,
11842                                messageCode,
11843                                pLayerPrefix,
11844                                pMessage );
11845   }
11846 
11847 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
11848   // wrapper function for command vkDebugReportMessageEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDebugReportMessageEXT.html
11849   template <typename Dispatch>
debugReportMessageEXT(VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT flags,VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_,uint64_t object,size_t location,int32_t messageCode,const std::string & layerPrefix,const std::string & message,Dispatch const & d) const11850   VULKAN_HPP_INLINE void Instance::debugReportMessageEXT( VULKAN_HPP_NAMESPACE::DebugReportFlagsEXT      flags,
11851                                                           VULKAN_HPP_NAMESPACE::DebugReportObjectTypeEXT objectType_,
11852                                                           uint64_t                                       object,
11853                                                           size_t                                         location,
11854                                                           int32_t                                        messageCode,
11855                                                           const std::string &                            layerPrefix,
11856                                                           const std::string &                            message,
11857                                                           Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
11858   {
11859     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11860 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11861     VULKAN_HPP_ASSERT( d.vkDebugReportMessageEXT && "Function <vkDebugReportMessageEXT> requires <VK_EXT_debug_report>" );
11862 #  endif
11863 
11864     d.vkDebugReportMessageEXT( m_instance,
11865                                static_cast<VkDebugReportFlagsEXT>( flags ),
11866                                static_cast<VkDebugReportObjectTypeEXT>( objectType_ ),
11867                                object,
11868                                location,
11869                                messageCode,
11870                                layerPrefix.c_str(),
11871                                message.c_str() );
11872   }
11873 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
11874 
11875   //=== VK_EXT_debug_marker ===
11876 
11877   // wrapper function for command vkDebugMarkerSetObjectTagEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDebugMarkerSetObjectTagEXT.html
11878   template <typename Dispatch>
debugMarkerSetObjectTagEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT * pTagInfo,Dispatch const & d) const11879   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT * pTagInfo,
11880                                                                                     Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
11881   {
11882     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11883     return static_cast<Result>(
11884       d.vkDebugMarkerSetObjectTagEXT( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT *>( pTagInfo ) ) );
11885   }
11886 
11887 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
11888   // wrapper function for command vkDebugMarkerSetObjectTagEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDebugMarkerSetObjectTagEXT.html
11889   template <typename Dispatch>
11890   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
debugMarkerSetObjectTagEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT & tagInfo,Dispatch const & d) const11891     Device::debugMarkerSetObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectTagInfoEXT & tagInfo, Dispatch const & d ) const
11892   {
11893     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11894 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11895     VULKAN_HPP_ASSERT( d.vkDebugMarkerSetObjectTagEXT && "Function <vkDebugMarkerSetObjectTagEXT> requires <VK_EXT_debug_marker>" );
11896 #  endif
11897 
11898     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
11899       d.vkDebugMarkerSetObjectTagEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectTagInfoEXT *>( &tagInfo ) ) );
11900     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectTagEXT" );
11901 
11902     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
11903   }
11904 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
11905 
11906   // wrapper function for command vkDebugMarkerSetObjectNameEXT, see
11907   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDebugMarkerSetObjectNameEXT.html
11908   template <typename Dispatch>
debugMarkerSetObjectNameEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT * pNameInfo,Dispatch const & d) const11909   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT * pNameInfo,
11910                                                                                      Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
11911   {
11912     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11913     return static_cast<Result>(
11914       d.vkDebugMarkerSetObjectNameEXT( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT *>( pNameInfo ) ) );
11915   }
11916 
11917 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
11918   // wrapper function for command vkDebugMarkerSetObjectNameEXT, see
11919   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDebugMarkerSetObjectNameEXT.html
11920   template <typename Dispatch>
11921   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
debugMarkerSetObjectNameEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT & nameInfo,Dispatch const & d) const11922     Device::debugMarkerSetObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerObjectNameInfoEXT & nameInfo, Dispatch const & d ) const
11923   {
11924     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11925 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11926     VULKAN_HPP_ASSERT( d.vkDebugMarkerSetObjectNameEXT && "Function <vkDebugMarkerSetObjectNameEXT> requires <VK_EXT_debug_marker>" );
11927 #  endif
11928 
11929     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
11930       d.vkDebugMarkerSetObjectNameEXT( m_device, reinterpret_cast<const VkDebugMarkerObjectNameInfoEXT *>( &nameInfo ) ) );
11931     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::debugMarkerSetObjectNameEXT" );
11932 
11933     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
11934   }
11935 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
11936 
11937   // wrapper function for command vkCmdDebugMarkerBeginEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDebugMarkerBeginEXT.html
11938   template <typename Dispatch>
debugMarkerBeginEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT * pMarkerInfo,Dispatch const & d) const11939   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT * pMarkerInfo,
11940                                                              Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
11941   {
11942     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11943     d.vkCmdDebugMarkerBeginEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( pMarkerInfo ) );
11944   }
11945 
11946 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
11947   // wrapper function for command vkCmdDebugMarkerBeginEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDebugMarkerBeginEXT.html
11948   template <typename Dispatch>
debugMarkerBeginEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT & markerInfo,Dispatch const & d) const11949   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerBeginEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT & markerInfo,
11950                                                              Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
11951   {
11952     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11953 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11954     VULKAN_HPP_ASSERT( d.vkCmdDebugMarkerBeginEXT && "Function <vkCmdDebugMarkerBeginEXT> requires <VK_EXT_debug_marker>" );
11955 #  endif
11956 
11957     d.vkCmdDebugMarkerBeginEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( &markerInfo ) );
11958   }
11959 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
11960 
11961   // wrapper function for command vkCmdDebugMarkerEndEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDebugMarkerEndEXT.html
11962   template <typename Dispatch>
debugMarkerEndEXT(Dispatch const & d) const11963   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerEndEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
11964   {
11965     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11966     d.vkCmdDebugMarkerEndEXT( static_cast<VkCommandBuffer>( m_commandBuffer ) );
11967   }
11968 
11969   // wrapper function for command vkCmdDebugMarkerInsertEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDebugMarkerInsertEXT.html
11970   template <typename Dispatch>
debugMarkerInsertEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT * pMarkerInfo,Dispatch const & d) const11971   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT * pMarkerInfo,
11972                                                               Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
11973   {
11974     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11975     d.vkCmdDebugMarkerInsertEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( pMarkerInfo ) );
11976   }
11977 
11978 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
11979   // wrapper function for command vkCmdDebugMarkerInsertEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDebugMarkerInsertEXT.html
11980   template <typename Dispatch>
debugMarkerInsertEXT(const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT & markerInfo,Dispatch const & d) const11981   VULKAN_HPP_INLINE void CommandBuffer::debugMarkerInsertEXT( const VULKAN_HPP_NAMESPACE::DebugMarkerMarkerInfoEXT & markerInfo,
11982                                                               Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
11983   {
11984     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
11985 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
11986     VULKAN_HPP_ASSERT( d.vkCmdDebugMarkerInsertEXT && "Function <vkCmdDebugMarkerInsertEXT> requires <VK_EXT_debug_marker>" );
11987 #  endif
11988 
11989     d.vkCmdDebugMarkerInsertEXT( m_commandBuffer, reinterpret_cast<const VkDebugMarkerMarkerInfoEXT *>( &markerInfo ) );
11990   }
11991 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
11992 
11993   //=== VK_KHR_video_queue ===
11994 
11995   // wrapper function for command vkGetPhysicalDeviceVideoCapabilitiesKHR, see
11996   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoCapabilitiesKHR.html
11997   template <typename Dispatch>
getVideoCapabilitiesKHR(const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pVideoProfile,VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR * pCapabilities,Dispatch const & d) const11998   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getVideoCapabilitiesKHR( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR * pVideoProfile,
11999                                                                                          VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR *      pCapabilities,
12000                                                                                          Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
12001   {
12002     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12003     return static_cast<Result>( d.vkGetPhysicalDeviceVideoCapabilitiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
12004                                                                            reinterpret_cast<const VkVideoProfileInfoKHR *>( pVideoProfile ),
12005                                                                            reinterpret_cast<VkVideoCapabilitiesKHR *>( pCapabilities ) ) );
12006   }
12007 
12008 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
12009   // wrapper function for command vkGetPhysicalDeviceVideoCapabilitiesKHR, see
12010   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoCapabilitiesKHR.html
12011   template <typename Dispatch>
12012   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR>::type
getVideoCapabilitiesKHR(const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR & videoProfile,Dispatch const & d) const12013                        PhysicalDevice::getVideoCapabilitiesKHR( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR & videoProfile, Dispatch const & d ) const
12014   {
12015     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12016 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12017     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceVideoCapabilitiesKHR && "Function <vkGetPhysicalDeviceVideoCapabilitiesKHR> requires <VK_KHR_video_queue>" );
12018 #  endif
12019 
12020     VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR capabilities;
12021     VULKAN_HPP_NAMESPACE::Result               result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceVideoCapabilitiesKHR(
12022       m_physicalDevice, reinterpret_cast<const VkVideoProfileInfoKHR *>( &videoProfile ), reinterpret_cast<VkVideoCapabilitiesKHR *>( &capabilities ) ) );
12023     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoCapabilitiesKHR" );
12024 
12025     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( capabilities ) );
12026   }
12027 
12028   // wrapper function for command vkGetPhysicalDeviceVideoCapabilitiesKHR, see
12029   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoCapabilitiesKHR.html
12030   template <typename X, typename Y, typename... Z, typename Dispatch>
12031   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>>::type
getVideoCapabilitiesKHR(const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR & videoProfile,Dispatch const & d) const12032                        PhysicalDevice::getVideoCapabilitiesKHR( const VULKAN_HPP_NAMESPACE::VideoProfileInfoKHR & videoProfile, Dispatch const & d ) const
12033   {
12034     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12035 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12036     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceVideoCapabilitiesKHR && "Function <vkGetPhysicalDeviceVideoCapabilitiesKHR> requires <VK_KHR_video_queue>" );
12037 #  endif
12038 
12039     StructureChain<X, Y, Z...>                   structureChain;
12040     VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR & capabilities = structureChain.template get<VULKAN_HPP_NAMESPACE::VideoCapabilitiesKHR>();
12041     VULKAN_HPP_NAMESPACE::Result                 result       = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceVideoCapabilitiesKHR(
12042       m_physicalDevice, reinterpret_cast<const VkVideoProfileInfoKHR *>( &videoProfile ), reinterpret_cast<VkVideoCapabilitiesKHR *>( &capabilities ) ) );
12043     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoCapabilitiesKHR" );
12044 
12045     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( structureChain ) );
12046   }
12047 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
12048 
12049   // wrapper function for command vkGetPhysicalDeviceVideoFormatPropertiesKHR, see
12050   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoFormatPropertiesKHR.html
12051   template <typename Dispatch>
12052   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getVideoFormatPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo,uint32_t * pVideoFormatPropertyCount,VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR * pVideoFormatProperties,Dispatch const & d) const12053     PhysicalDevice::getVideoFormatPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR * pVideoFormatInfo,
12054                                                  uint32_t *                                                     pVideoFormatPropertyCount,
12055                                                  VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR *               pVideoFormatProperties,
12056                                                  Dispatch const &                                               d ) const VULKAN_HPP_NOEXCEPT
12057   {
12058     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12059     return static_cast<Result>( d.vkGetPhysicalDeviceVideoFormatPropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
12060                                                                                reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( pVideoFormatInfo ),
12061                                                                                pVideoFormatPropertyCount,
12062                                                                                reinterpret_cast<VkVideoFormatPropertiesKHR *>( pVideoFormatProperties ) ) );
12063   }
12064 
12065 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
12066   // wrapper function for command vkGetPhysicalDeviceVideoFormatPropertiesKHR, see
12067   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoFormatPropertiesKHR.html
12068   template <typename VideoFormatPropertiesKHRAllocator,
12069             typename Dispatch,
12070             typename std::enable_if<std::is_same<typename VideoFormatPropertiesKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR>::value,
12071                                     int>::type>
12072   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
12073     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR, VideoFormatPropertiesKHRAllocator>>::type
getVideoFormatPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo,Dispatch const & d) const12074     PhysicalDevice::getVideoFormatPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo, Dispatch const & d ) const
12075   {
12076     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12077 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12078     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceVideoFormatPropertiesKHR &&
12079                        "Function <vkGetPhysicalDeviceVideoFormatPropertiesKHR> requires <VK_KHR_video_queue>" );
12080 #  endif
12081 
12082     std::vector<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR, VideoFormatPropertiesKHRAllocator> videoFormatProperties;
12083     uint32_t                                                                                       videoFormatPropertyCount;
12084     VULKAN_HPP_NAMESPACE::Result                                                                   result;
12085     do
12086     {
12087       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceVideoFormatPropertiesKHR(
12088         m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( &videoFormatInfo ), &videoFormatPropertyCount, nullptr ) );
12089       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && videoFormatPropertyCount )
12090       {
12091         videoFormatProperties.resize( videoFormatPropertyCount );
12092         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
12093           d.vkGetPhysicalDeviceVideoFormatPropertiesKHR( m_physicalDevice,
12094                                                          reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( &videoFormatInfo ),
12095                                                          &videoFormatPropertyCount,
12096                                                          reinterpret_cast<VkVideoFormatPropertiesKHR *>( videoFormatProperties.data() ) ) );
12097       }
12098     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
12099     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoFormatPropertiesKHR" );
12100     VULKAN_HPP_ASSERT( videoFormatPropertyCount <= videoFormatProperties.size() );
12101     if ( videoFormatPropertyCount < videoFormatProperties.size() )
12102     {
12103       videoFormatProperties.resize( videoFormatPropertyCount );
12104     }
12105     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( videoFormatProperties ) );
12106   }
12107 
12108   // wrapper function for command vkGetPhysicalDeviceVideoFormatPropertiesKHR, see
12109   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoFormatPropertiesKHR.html
12110   template <typename VideoFormatPropertiesKHRAllocator,
12111             typename Dispatch,
12112             typename std::enable_if<std::is_same<typename VideoFormatPropertiesKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR>::value,
12113                                     int>::type>
12114   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
12115     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR, VideoFormatPropertiesKHRAllocator>>::type
getVideoFormatPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo,VideoFormatPropertiesKHRAllocator & videoFormatPropertiesKHRAllocator,Dispatch const & d) const12116     PhysicalDevice::getVideoFormatPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo,
12117                                                  VideoFormatPropertiesKHRAllocator &                            videoFormatPropertiesKHRAllocator,
12118                                                  Dispatch const &                                               d ) const
12119   {
12120     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12121 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12122     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceVideoFormatPropertiesKHR &&
12123                        "Function <vkGetPhysicalDeviceVideoFormatPropertiesKHR> requires <VK_KHR_video_queue>" );
12124 #  endif
12125 
12126     std::vector<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR, VideoFormatPropertiesKHRAllocator> videoFormatProperties( videoFormatPropertiesKHRAllocator );
12127     uint32_t                                                                                       videoFormatPropertyCount;
12128     VULKAN_HPP_NAMESPACE::Result                                                                   result;
12129     do
12130     {
12131       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceVideoFormatPropertiesKHR(
12132         m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( &videoFormatInfo ), &videoFormatPropertyCount, nullptr ) );
12133       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && videoFormatPropertyCount )
12134       {
12135         videoFormatProperties.resize( videoFormatPropertyCount );
12136         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
12137           d.vkGetPhysicalDeviceVideoFormatPropertiesKHR( m_physicalDevice,
12138                                                          reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( &videoFormatInfo ),
12139                                                          &videoFormatPropertyCount,
12140                                                          reinterpret_cast<VkVideoFormatPropertiesKHR *>( videoFormatProperties.data() ) ) );
12141       }
12142     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
12143     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoFormatPropertiesKHR" );
12144     VULKAN_HPP_ASSERT( videoFormatPropertyCount <= videoFormatProperties.size() );
12145     if ( videoFormatPropertyCount < videoFormatProperties.size() )
12146     {
12147       videoFormatProperties.resize( videoFormatPropertyCount );
12148     }
12149     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( videoFormatProperties ) );
12150   }
12151 
12152   // wrapper function for command vkGetPhysicalDeviceVideoFormatPropertiesKHR, see
12153   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoFormatPropertiesKHR.html
12154   template <typename StructureChain,
12155             typename StructureChainAllocator,
12156             typename Dispatch,
12157             typename std::enable_if<std::is_same<typename StructureChainAllocator::value_type, StructureChain>::value, int>::type>
12158   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<StructureChain, StructureChainAllocator>>::type
getVideoFormatPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo,Dispatch const & d) const12159     PhysicalDevice::getVideoFormatPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo, Dispatch const & d ) const
12160   {
12161     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12162 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12163     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceVideoFormatPropertiesKHR &&
12164                        "Function <vkGetPhysicalDeviceVideoFormatPropertiesKHR> requires <VK_KHR_video_queue>" );
12165 #  endif
12166 
12167     std::vector<StructureChain, StructureChainAllocator>        structureChains;
12168     std::vector<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR> videoFormatProperties;
12169     uint32_t                                                    videoFormatPropertyCount;
12170     VULKAN_HPP_NAMESPACE::Result                                result;
12171     do
12172     {
12173       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceVideoFormatPropertiesKHR(
12174         m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( &videoFormatInfo ), &videoFormatPropertyCount, nullptr ) );
12175       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && videoFormatPropertyCount )
12176       {
12177         structureChains.resize( videoFormatPropertyCount );
12178         videoFormatProperties.resize( videoFormatPropertyCount );
12179         for ( uint32_t i = 0; i < videoFormatPropertyCount; i++ )
12180         {
12181           videoFormatProperties[i].pNext = structureChains[i].template get<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR>().pNext;
12182         }
12183         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
12184           d.vkGetPhysicalDeviceVideoFormatPropertiesKHR( m_physicalDevice,
12185                                                          reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( &videoFormatInfo ),
12186                                                          &videoFormatPropertyCount,
12187                                                          reinterpret_cast<VkVideoFormatPropertiesKHR *>( videoFormatProperties.data() ) ) );
12188       }
12189     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
12190     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoFormatPropertiesKHR" );
12191     VULKAN_HPP_ASSERT( videoFormatPropertyCount <= videoFormatProperties.size() );
12192     if ( videoFormatPropertyCount < videoFormatProperties.size() )
12193     {
12194       structureChains.resize( videoFormatPropertyCount );
12195     }
12196     for ( uint32_t i = 0; i < videoFormatPropertyCount; i++ )
12197     {
12198       structureChains[i].template get<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR>() = videoFormatProperties[i];
12199     }
12200     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( structureChains ) );
12201   }
12202 
12203   // wrapper function for command vkGetPhysicalDeviceVideoFormatPropertiesKHR, see
12204   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoFormatPropertiesKHR.html
12205   template <typename StructureChain,
12206             typename StructureChainAllocator,
12207             typename Dispatch,
12208             typename std::enable_if<std::is_same<typename StructureChainAllocator::value_type, StructureChain>::value, int>::type>
12209   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<StructureChain, StructureChainAllocator>>::type
getVideoFormatPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo,StructureChainAllocator & structureChainAllocator,Dispatch const & d) const12210                        PhysicalDevice::getVideoFormatPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoFormatInfoKHR & videoFormatInfo,
12211                                                  StructureChainAllocator &                                      structureChainAllocator,
12212                                                  Dispatch const &                                               d ) const
12213   {
12214     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12215 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12216     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceVideoFormatPropertiesKHR &&
12217                        "Function <vkGetPhysicalDeviceVideoFormatPropertiesKHR> requires <VK_KHR_video_queue>" );
12218 #  endif
12219 
12220     std::vector<StructureChain, StructureChainAllocator>        structureChains( structureChainAllocator );
12221     std::vector<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR> videoFormatProperties;
12222     uint32_t                                                    videoFormatPropertyCount;
12223     VULKAN_HPP_NAMESPACE::Result                                result;
12224     do
12225     {
12226       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceVideoFormatPropertiesKHR(
12227         m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( &videoFormatInfo ), &videoFormatPropertyCount, nullptr ) );
12228       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && videoFormatPropertyCount )
12229       {
12230         structureChains.resize( videoFormatPropertyCount );
12231         videoFormatProperties.resize( videoFormatPropertyCount );
12232         for ( uint32_t i = 0; i < videoFormatPropertyCount; i++ )
12233         {
12234           videoFormatProperties[i].pNext = structureChains[i].template get<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR>().pNext;
12235         }
12236         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
12237           d.vkGetPhysicalDeviceVideoFormatPropertiesKHR( m_physicalDevice,
12238                                                          reinterpret_cast<const VkPhysicalDeviceVideoFormatInfoKHR *>( &videoFormatInfo ),
12239                                                          &videoFormatPropertyCount,
12240                                                          reinterpret_cast<VkVideoFormatPropertiesKHR *>( videoFormatProperties.data() ) ) );
12241       }
12242     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
12243     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoFormatPropertiesKHR" );
12244     VULKAN_HPP_ASSERT( videoFormatPropertyCount <= videoFormatProperties.size() );
12245     if ( videoFormatPropertyCount < videoFormatProperties.size() )
12246     {
12247       structureChains.resize( videoFormatPropertyCount );
12248     }
12249     for ( uint32_t i = 0; i < videoFormatPropertyCount; i++ )
12250     {
12251       structureChains[i].template get<VULKAN_HPP_NAMESPACE::VideoFormatPropertiesKHR>() = videoFormatProperties[i];
12252     }
12253     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( structureChains ) );
12254   }
12255 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
12256 
12257   // wrapper function for command vkCreateVideoSessionKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateVideoSessionKHR.html
12258   template <typename Dispatch>
createVideoSessionKHR(const VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::VideoSessionKHR * pVideoSession,Dispatch const & d) const12259   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createVideoSessionKHR( const VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR * pCreateInfo,
12260                                                                                const VULKAN_HPP_NAMESPACE::AllocationCallbacks *       pAllocator,
12261                                                                                VULKAN_HPP_NAMESPACE::VideoSessionKHR *                 pVideoSession,
12262                                                                                Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
12263   {
12264     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12265     return static_cast<Result>( d.vkCreateVideoSessionKHR( static_cast<VkDevice>( m_device ),
12266                                                            reinterpret_cast<const VkVideoSessionCreateInfoKHR *>( pCreateInfo ),
12267                                                            reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
12268                                                            reinterpret_cast<VkVideoSessionKHR *>( pVideoSession ) ) );
12269   }
12270 
12271 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
12272   // wrapper function for command vkCreateVideoSessionKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateVideoSessionKHR.html
12273   template <typename Dispatch>
12274   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::VideoSessionKHR>::type
createVideoSessionKHR(const VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const12275                        Device::createVideoSessionKHR( const VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR &   createInfo,
12276                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
12277                                    Dispatch const &                                          d ) const
12278   {
12279     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12280 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12281     VULKAN_HPP_ASSERT( d.vkCreateVideoSessionKHR && "Function <vkCreateVideoSessionKHR> requires <VK_KHR_video_queue>" );
12282 #  endif
12283 
12284     VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession;
12285     VULKAN_HPP_NAMESPACE::Result          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
12286       d.vkCreateVideoSessionKHR( m_device,
12287                                  reinterpret_cast<const VkVideoSessionCreateInfoKHR *>( &createInfo ),
12288                                  reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
12289                                  reinterpret_cast<VkVideoSessionKHR *>( &videoSession ) ) );
12290     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createVideoSessionKHR" );
12291 
12292     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( videoSession ) );
12293   }
12294 
12295 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
12296   // wrapper function for command vkCreateVideoSessionKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateVideoSessionKHR.html
12297   template <typename Dispatch>
12298   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::VideoSessionKHR, Dispatch>>::type
createVideoSessionKHRUnique(const VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const12299                        Device::createVideoSessionKHRUnique( const VULKAN_HPP_NAMESPACE::VideoSessionCreateInfoKHR &   createInfo,
12300                                          Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
12301                                          Dispatch const &                                          d ) const
12302   {
12303     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12304 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12305     VULKAN_HPP_ASSERT( d.vkCreateVideoSessionKHR && "Function <vkCreateVideoSessionKHR> requires <VK_KHR_video_queue>" );
12306 #    endif
12307 
12308     VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession;
12309     VULKAN_HPP_NAMESPACE::Result          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
12310       d.vkCreateVideoSessionKHR( m_device,
12311                                  reinterpret_cast<const VkVideoSessionCreateInfoKHR *>( &createInfo ),
12312                                  reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
12313                                  reinterpret_cast<VkVideoSessionKHR *>( &videoSession ) ) );
12314     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createVideoSessionKHRUnique" );
12315 
12316     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
12317       result, UniqueHandle<VULKAN_HPP_NAMESPACE::VideoSessionKHR, Dispatch>( videoSession, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
12318   }
12319 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
12320 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
12321 
12322   // wrapper function for command vkDestroyVideoSessionKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyVideoSessionKHR.html
12323   template <typename Dispatch>
destroyVideoSessionKHR(VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const12324   VULKAN_HPP_INLINE void Device::destroyVideoSessionKHR( VULKAN_HPP_NAMESPACE::VideoSessionKHR             videoSession,
12325                                                          const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
12326                                                          Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
12327   {
12328     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12329     d.vkDestroyVideoSessionKHR(
12330       static_cast<VkDevice>( m_device ), static_cast<VkVideoSessionKHR>( videoSession ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
12331   }
12332 
12333 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
12334   // wrapper function for command vkDestroyVideoSessionKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyVideoSessionKHR.html
12335   template <typename Dispatch>
destroyVideoSessionKHR(VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const12336   VULKAN_HPP_INLINE void Device::destroyVideoSessionKHR( VULKAN_HPP_NAMESPACE::VideoSessionKHR                     videoSession,
12337                                                          Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
12338                                                          Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
12339   {
12340     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12341 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12342     VULKAN_HPP_ASSERT( d.vkDestroyVideoSessionKHR && "Function <vkDestroyVideoSessionKHR> requires <VK_KHR_video_queue>" );
12343 #  endif
12344 
12345     d.vkDestroyVideoSessionKHR(
12346       m_device,
12347       static_cast<VkVideoSessionKHR>( videoSession ),
12348       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
12349   }
12350 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
12351 
12352   // wrapper function for command vkDestroyVideoSessionKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyVideoSessionKHR.html
12353   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const12354   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::VideoSessionKHR             videoSession,
12355                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
12356                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
12357   {
12358     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12359     d.vkDestroyVideoSessionKHR(
12360       static_cast<VkDevice>( m_device ), static_cast<VkVideoSessionKHR>( videoSession ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
12361   }
12362 
12363 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
12364   // wrapper function for command vkDestroyVideoSessionKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyVideoSessionKHR.html
12365   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const12366   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::VideoSessionKHR                     videoSession,
12367                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
12368                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
12369   {
12370     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12371 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12372     VULKAN_HPP_ASSERT( d.vkDestroyVideoSessionKHR && "Function <vkDestroyVideoSessionKHR> requires <VK_KHR_video_queue>" );
12373 #  endif
12374 
12375     d.vkDestroyVideoSessionKHR(
12376       m_device,
12377       static_cast<VkVideoSessionKHR>( videoSession ),
12378       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
12379   }
12380 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
12381 
12382   // wrapper function for command vkGetVideoSessionMemoryRequirementsKHR, see
12383   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetVideoSessionMemoryRequirementsKHR.html
12384   template <typename Dispatch>
12385   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getVideoSessionMemoryRequirementsKHR(VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession,uint32_t * pMemoryRequirementsCount,VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR * pMemoryRequirements,Dispatch const & d) const12386     Device::getVideoSessionMemoryRequirementsKHR( VULKAN_HPP_NAMESPACE::VideoSessionKHR                     videoSession,
12387                                                   uint32_t *                                                pMemoryRequirementsCount,
12388                                                   VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR * pMemoryRequirements,
12389                                                   Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
12390   {
12391     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12392     return static_cast<Result>( d.vkGetVideoSessionMemoryRequirementsKHR( static_cast<VkDevice>( m_device ),
12393                                                                           static_cast<VkVideoSessionKHR>( videoSession ),
12394                                                                           pMemoryRequirementsCount,
12395                                                                           reinterpret_cast<VkVideoSessionMemoryRequirementsKHR *>( pMemoryRequirements ) ) );
12396   }
12397 
12398 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
12399   // wrapper function for command vkGetVideoSessionMemoryRequirementsKHR, see
12400   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetVideoSessionMemoryRequirementsKHR.html
12401   template <typename VideoSessionMemoryRequirementsKHRAllocator,
12402             typename Dispatch,
12403             typename std::enable_if<
12404               std::is_same<typename VideoSessionMemoryRequirementsKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR>::value,
12405               int>::type>
12406   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
12407     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR, VideoSessionMemoryRequirementsKHRAllocator>>::type
getVideoSessionMemoryRequirementsKHR(VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession,Dispatch const & d) const12408     Device::getVideoSessionMemoryRequirementsKHR( VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession, Dispatch const & d ) const
12409   {
12410     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12411 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12412     VULKAN_HPP_ASSERT( d.vkGetVideoSessionMemoryRequirementsKHR && "Function <vkGetVideoSessionMemoryRequirementsKHR> requires <VK_KHR_video_queue>" );
12413 #  endif
12414 
12415     std::vector<VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR, VideoSessionMemoryRequirementsKHRAllocator> memoryRequirements;
12416     uint32_t                                                                                                         memoryRequirementsCount;
12417     VULKAN_HPP_NAMESPACE::Result                                                                                     result;
12418     do
12419     {
12420       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
12421         d.vkGetVideoSessionMemoryRequirementsKHR( m_device, static_cast<VkVideoSessionKHR>( videoSession ), &memoryRequirementsCount, nullptr ) );
12422       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && memoryRequirementsCount )
12423       {
12424         memoryRequirements.resize( memoryRequirementsCount );
12425         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
12426           d.vkGetVideoSessionMemoryRequirementsKHR( m_device,
12427                                                     static_cast<VkVideoSessionKHR>( videoSession ),
12428                                                     &memoryRequirementsCount,
12429                                                     reinterpret_cast<VkVideoSessionMemoryRequirementsKHR *>( memoryRequirements.data() ) ) );
12430       }
12431     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
12432 
12433     VULKAN_HPP_ASSERT( memoryRequirementsCount <= memoryRequirements.size() );
12434     if ( memoryRequirementsCount < memoryRequirements.size() )
12435     {
12436       memoryRequirements.resize( memoryRequirementsCount );
12437     }
12438     return memoryRequirements;
12439   }
12440 
12441   // wrapper function for command vkGetVideoSessionMemoryRequirementsKHR, see
12442   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetVideoSessionMemoryRequirementsKHR.html
12443   template <typename VideoSessionMemoryRequirementsKHRAllocator,
12444             typename Dispatch,
12445             typename std::enable_if<
12446               std::is_same<typename VideoSessionMemoryRequirementsKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR>::value,
12447               int>::type>
12448   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
12449     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR, VideoSessionMemoryRequirementsKHRAllocator>>::type
getVideoSessionMemoryRequirementsKHR(VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession,VideoSessionMemoryRequirementsKHRAllocator & videoSessionMemoryRequirementsKHRAllocator,Dispatch const & d) const12450     Device::getVideoSessionMemoryRequirementsKHR( VULKAN_HPP_NAMESPACE::VideoSessionKHR        videoSession,
12451                                                   VideoSessionMemoryRequirementsKHRAllocator & videoSessionMemoryRequirementsKHRAllocator,
12452                                                   Dispatch const &                             d ) const
12453   {
12454     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12455 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12456     VULKAN_HPP_ASSERT( d.vkGetVideoSessionMemoryRequirementsKHR && "Function <vkGetVideoSessionMemoryRequirementsKHR> requires <VK_KHR_video_queue>" );
12457 #  endif
12458 
12459     std::vector<VULKAN_HPP_NAMESPACE::VideoSessionMemoryRequirementsKHR, VideoSessionMemoryRequirementsKHRAllocator> memoryRequirements(
12460       videoSessionMemoryRequirementsKHRAllocator );
12461     uint32_t                     memoryRequirementsCount;
12462     VULKAN_HPP_NAMESPACE::Result result;
12463     do
12464     {
12465       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
12466         d.vkGetVideoSessionMemoryRequirementsKHR( m_device, static_cast<VkVideoSessionKHR>( videoSession ), &memoryRequirementsCount, nullptr ) );
12467       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && memoryRequirementsCount )
12468       {
12469         memoryRequirements.resize( memoryRequirementsCount );
12470         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
12471           d.vkGetVideoSessionMemoryRequirementsKHR( m_device,
12472                                                     static_cast<VkVideoSessionKHR>( videoSession ),
12473                                                     &memoryRequirementsCount,
12474                                                     reinterpret_cast<VkVideoSessionMemoryRequirementsKHR *>( memoryRequirements.data() ) ) );
12475       }
12476     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
12477 
12478     VULKAN_HPP_ASSERT( memoryRequirementsCount <= memoryRequirements.size() );
12479     if ( memoryRequirementsCount < memoryRequirements.size() )
12480     {
12481       memoryRequirements.resize( memoryRequirementsCount );
12482     }
12483     return memoryRequirements;
12484   }
12485 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
12486 
12487   // wrapper function for command vkBindVideoSessionMemoryKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindVideoSessionMemoryKHR.html
12488   template <typename Dispatch>
12489   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
bindVideoSessionMemoryKHR(VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession,uint32_t bindSessionMemoryInfoCount,const VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR * pBindSessionMemoryInfos,Dispatch const & d) const12490     Device::bindVideoSessionMemoryKHR( VULKAN_HPP_NAMESPACE::VideoSessionKHR                       videoSession,
12491                                        uint32_t                                                    bindSessionMemoryInfoCount,
12492                                        const VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR * pBindSessionMemoryInfos,
12493                                        Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
12494   {
12495     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12496     return static_cast<Result>( d.vkBindVideoSessionMemoryKHR( static_cast<VkDevice>( m_device ),
12497                                                                static_cast<VkVideoSessionKHR>( videoSession ),
12498                                                                bindSessionMemoryInfoCount,
12499                                                                reinterpret_cast<const VkBindVideoSessionMemoryInfoKHR *>( pBindSessionMemoryInfos ) ) );
12500   }
12501 
12502 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
12503   // wrapper function for command vkBindVideoSessionMemoryKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindVideoSessionMemoryKHR.html
12504   template <typename Dispatch>
bindVideoSessionMemoryKHR(VULKAN_HPP_NAMESPACE::VideoSessionKHR videoSession,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR> const & bindSessionMemoryInfos,Dispatch const & d) const12505   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::bindVideoSessionMemoryKHR(
12506     VULKAN_HPP_NAMESPACE::VideoSessionKHR                                                               videoSession,
12507     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindVideoSessionMemoryInfoKHR> const & bindSessionMemoryInfos,
12508     Dispatch const &                                                                                    d ) const
12509   {
12510     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12511 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12512     VULKAN_HPP_ASSERT( d.vkBindVideoSessionMemoryKHR && "Function <vkBindVideoSessionMemoryKHR> requires <VK_KHR_video_queue>" );
12513 #  endif
12514 
12515     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
12516       d.vkBindVideoSessionMemoryKHR( m_device,
12517                                      static_cast<VkVideoSessionKHR>( videoSession ),
12518                                      bindSessionMemoryInfos.size(),
12519                                      reinterpret_cast<const VkBindVideoSessionMemoryInfoKHR *>( bindSessionMemoryInfos.data() ) ) );
12520     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindVideoSessionMemoryKHR" );
12521 
12522     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
12523   }
12524 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
12525 
12526   // wrapper function for command vkCreateVideoSessionParametersKHR, see
12527   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateVideoSessionParametersKHR.html
12528   template <typename Dispatch>
12529   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
createVideoSessionParametersKHR(const VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR * pVideoSessionParameters,Dispatch const & d) const12530     Device::createVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR * pCreateInfo,
12531                                              const VULKAN_HPP_NAMESPACE::AllocationCallbacks *                 pAllocator,
12532                                              VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR *                 pVideoSessionParameters,
12533                                              Dispatch const &                                                  d ) const VULKAN_HPP_NOEXCEPT
12534   {
12535     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12536     return static_cast<Result>( d.vkCreateVideoSessionParametersKHR( static_cast<VkDevice>( m_device ),
12537                                                                      reinterpret_cast<const VkVideoSessionParametersCreateInfoKHR *>( pCreateInfo ),
12538                                                                      reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
12539                                                                      reinterpret_cast<VkVideoSessionParametersKHR *>( pVideoSessionParameters ) ) );
12540   }
12541 
12542 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
12543   // wrapper function for command vkCreateVideoSessionParametersKHR, see
12544   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateVideoSessionParametersKHR.html
12545   template <typename Dispatch>
12546   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR>::type
createVideoSessionParametersKHR(const VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const12547                        Device::createVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR & createInfo,
12548                                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>         allocator,
12549                                              Dispatch const &                                                  d ) const
12550   {
12551     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12552 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12553     VULKAN_HPP_ASSERT( d.vkCreateVideoSessionParametersKHR && "Function <vkCreateVideoSessionParametersKHR> requires <VK_KHR_video_queue>" );
12554 #  endif
12555 
12556     VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters;
12557     VULKAN_HPP_NAMESPACE::Result                    result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateVideoSessionParametersKHR(
12558       m_device,
12559       reinterpret_cast<const VkVideoSessionParametersCreateInfoKHR *>( &createInfo ),
12560       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
12561       reinterpret_cast<VkVideoSessionParametersKHR *>( &videoSessionParameters ) ) );
12562     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createVideoSessionParametersKHR" );
12563 
12564     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( videoSessionParameters ) );
12565   }
12566 
12567 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
12568   // wrapper function for command vkCreateVideoSessionParametersKHR, see
12569   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateVideoSessionParametersKHR.html
12570   template <typename Dispatch>
12571   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR, Dispatch>>::type
createVideoSessionParametersKHRUnique(const VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const12572                        Device::createVideoSessionParametersKHRUnique( const VULKAN_HPP_NAMESPACE::VideoSessionParametersCreateInfoKHR & createInfo,
12573                                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>         allocator,
12574                                                    Dispatch const &                                                  d ) const
12575   {
12576     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12577 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12578     VULKAN_HPP_ASSERT( d.vkCreateVideoSessionParametersKHR && "Function <vkCreateVideoSessionParametersKHR> requires <VK_KHR_video_queue>" );
12579 #    endif
12580 
12581     VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters;
12582     VULKAN_HPP_NAMESPACE::Result                    result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateVideoSessionParametersKHR(
12583       m_device,
12584       reinterpret_cast<const VkVideoSessionParametersCreateInfoKHR *>( &createInfo ),
12585       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
12586       reinterpret_cast<VkVideoSessionParametersKHR *>( &videoSessionParameters ) ) );
12587     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createVideoSessionParametersKHRUnique" );
12588 
12589     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result,
12590                                                                 UniqueHandle<VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR, Dispatch>(
12591                                                                   videoSessionParameters, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
12592   }
12593 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
12594 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
12595 
12596   // wrapper function for command vkUpdateVideoSessionParametersKHR, see
12597   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkUpdateVideoSessionParametersKHR.html
12598   template <typename Dispatch>
12599   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
updateVideoSessionParametersKHR(VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters,const VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR * pUpdateInfo,Dispatch const & d) const12600     Device::updateVideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR                   videoSessionParameters,
12601                                              const VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR * pUpdateInfo,
12602                                              Dispatch const &                                                  d ) const VULKAN_HPP_NOEXCEPT
12603   {
12604     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12605     return static_cast<Result>( d.vkUpdateVideoSessionParametersKHR( static_cast<VkDevice>( m_device ),
12606                                                                      static_cast<VkVideoSessionParametersKHR>( videoSessionParameters ),
12607                                                                      reinterpret_cast<const VkVideoSessionParametersUpdateInfoKHR *>( pUpdateInfo ) ) );
12608   }
12609 
12610 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
12611   // wrapper function for command vkUpdateVideoSessionParametersKHR, see
12612   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkUpdateVideoSessionParametersKHR.html
12613   template <typename Dispatch>
12614   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
updateVideoSessionParametersKHR(VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters,const VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR & updateInfo,Dispatch const & d) const12615                                           Device::updateVideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR                   videoSessionParameters,
12616                                              const VULKAN_HPP_NAMESPACE::VideoSessionParametersUpdateInfoKHR & updateInfo,
12617                                              Dispatch const &                                                  d ) const
12618   {
12619     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12620 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12621     VULKAN_HPP_ASSERT( d.vkUpdateVideoSessionParametersKHR && "Function <vkUpdateVideoSessionParametersKHR> requires <VK_KHR_video_queue>" );
12622 #  endif
12623 
12624     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
12625       d.vkUpdateVideoSessionParametersKHR( m_device,
12626                                            static_cast<VkVideoSessionParametersKHR>( videoSessionParameters ),
12627                                            reinterpret_cast<const VkVideoSessionParametersUpdateInfoKHR *>( &updateInfo ) ) );
12628     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::updateVideoSessionParametersKHR" );
12629 
12630     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
12631   }
12632 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
12633 
12634   // wrapper function for command vkDestroyVideoSessionParametersKHR, see
12635   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyVideoSessionParametersKHR.html
12636   template <typename Dispatch>
destroyVideoSessionParametersKHR(VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const12637   VULKAN_HPP_INLINE void Device::destroyVideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR   videoSessionParameters,
12638                                                                    const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
12639                                                                    Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
12640   {
12641     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12642     d.vkDestroyVideoSessionParametersKHR( static_cast<VkDevice>( m_device ),
12643                                           static_cast<VkVideoSessionParametersKHR>( videoSessionParameters ),
12644                                           reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
12645   }
12646 
12647 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
12648   // wrapper function for command vkDestroyVideoSessionParametersKHR, see
12649   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyVideoSessionParametersKHR.html
12650   template <typename Dispatch>
destroyVideoSessionParametersKHR(VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const12651   VULKAN_HPP_INLINE void Device::destroyVideoSessionParametersKHR( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR           videoSessionParameters,
12652                                                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
12653                                                                    Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
12654   {
12655     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12656 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12657     VULKAN_HPP_ASSERT( d.vkDestroyVideoSessionParametersKHR && "Function <vkDestroyVideoSessionParametersKHR> requires <VK_KHR_video_queue>" );
12658 #  endif
12659 
12660     d.vkDestroyVideoSessionParametersKHR(
12661       m_device,
12662       static_cast<VkVideoSessionParametersKHR>( videoSessionParameters ),
12663       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
12664   }
12665 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
12666 
12667   // wrapper function for command vkDestroyVideoSessionParametersKHR, see
12668   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyVideoSessionParametersKHR.html
12669   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const12670   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR   videoSessionParameters,
12671                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
12672                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
12673   {
12674     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12675     d.vkDestroyVideoSessionParametersKHR( static_cast<VkDevice>( m_device ),
12676                                           static_cast<VkVideoSessionParametersKHR>( videoSessionParameters ),
12677                                           reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
12678   }
12679 
12680 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
12681   // wrapper function for command vkDestroyVideoSessionParametersKHR, see
12682   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyVideoSessionParametersKHR.html
12683   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR videoSessionParameters,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const12684   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::VideoSessionParametersKHR           videoSessionParameters,
12685                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
12686                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
12687   {
12688     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12689 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12690     VULKAN_HPP_ASSERT( d.vkDestroyVideoSessionParametersKHR && "Function <vkDestroyVideoSessionParametersKHR> requires <VK_KHR_video_queue>" );
12691 #  endif
12692 
12693     d.vkDestroyVideoSessionParametersKHR(
12694       m_device,
12695       static_cast<VkVideoSessionParametersKHR>( videoSessionParameters ),
12696       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
12697   }
12698 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
12699 
12700   // wrapper function for command vkCmdBeginVideoCodingKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginVideoCodingKHR.html
12701   template <typename Dispatch>
beginVideoCodingKHR(const VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR * pBeginInfo,Dispatch const & d) const12702   VULKAN_HPP_INLINE void CommandBuffer::beginVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR * pBeginInfo,
12703                                                              Dispatch const &                                      d ) const VULKAN_HPP_NOEXCEPT
12704   {
12705     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12706     d.vkCmdBeginVideoCodingKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkVideoBeginCodingInfoKHR *>( pBeginInfo ) );
12707   }
12708 
12709 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
12710   // wrapper function for command vkCmdBeginVideoCodingKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginVideoCodingKHR.html
12711   template <typename Dispatch>
beginVideoCodingKHR(const VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR & beginInfo,Dispatch const & d) const12712   VULKAN_HPP_INLINE void CommandBuffer::beginVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoBeginCodingInfoKHR & beginInfo,
12713                                                              Dispatch const &                                      d ) const VULKAN_HPP_NOEXCEPT
12714   {
12715     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12716 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12717     VULKAN_HPP_ASSERT( d.vkCmdBeginVideoCodingKHR && "Function <vkCmdBeginVideoCodingKHR> requires <VK_KHR_video_queue>" );
12718 #  endif
12719 
12720     d.vkCmdBeginVideoCodingKHR( m_commandBuffer, reinterpret_cast<const VkVideoBeginCodingInfoKHR *>( &beginInfo ) );
12721   }
12722 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
12723 
12724   // wrapper function for command vkCmdEndVideoCodingKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndVideoCodingKHR.html
12725   template <typename Dispatch>
endVideoCodingKHR(const VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR * pEndCodingInfo,Dispatch const & d) const12726   VULKAN_HPP_INLINE void CommandBuffer::endVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR * pEndCodingInfo,
12727                                                            Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
12728   {
12729     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12730     d.vkCmdEndVideoCodingKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkVideoEndCodingInfoKHR *>( pEndCodingInfo ) );
12731   }
12732 
12733 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
12734   // wrapper function for command vkCmdEndVideoCodingKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndVideoCodingKHR.html
12735   template <typename Dispatch>
endVideoCodingKHR(const VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR & endCodingInfo,Dispatch const & d) const12736   VULKAN_HPP_INLINE void CommandBuffer::endVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoEndCodingInfoKHR & endCodingInfo,
12737                                                            Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
12738   {
12739     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12740 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12741     VULKAN_HPP_ASSERT( d.vkCmdEndVideoCodingKHR && "Function <vkCmdEndVideoCodingKHR> requires <VK_KHR_video_queue>" );
12742 #  endif
12743 
12744     d.vkCmdEndVideoCodingKHR( m_commandBuffer, reinterpret_cast<const VkVideoEndCodingInfoKHR *>( &endCodingInfo ) );
12745   }
12746 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
12747 
12748   // wrapper function for command vkCmdControlVideoCodingKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdControlVideoCodingKHR.html
12749   template <typename Dispatch>
controlVideoCodingKHR(const VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR * pCodingControlInfo,Dispatch const & d) const12750   VULKAN_HPP_INLINE void CommandBuffer::controlVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR * pCodingControlInfo,
12751                                                                Dispatch const &                                        d ) const VULKAN_HPP_NOEXCEPT
12752   {
12753     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12754     d.vkCmdControlVideoCodingKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
12755                                   reinterpret_cast<const VkVideoCodingControlInfoKHR *>( pCodingControlInfo ) );
12756   }
12757 
12758 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
12759   // wrapper function for command vkCmdControlVideoCodingKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdControlVideoCodingKHR.html
12760   template <typename Dispatch>
controlVideoCodingKHR(const VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR & codingControlInfo,Dispatch const & d) const12761   VULKAN_HPP_INLINE void CommandBuffer::controlVideoCodingKHR( const VULKAN_HPP_NAMESPACE::VideoCodingControlInfoKHR & codingControlInfo,
12762                                                                Dispatch const &                                        d ) const VULKAN_HPP_NOEXCEPT
12763   {
12764     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12765 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12766     VULKAN_HPP_ASSERT( d.vkCmdControlVideoCodingKHR && "Function <vkCmdControlVideoCodingKHR> requires <VK_KHR_video_queue>" );
12767 #  endif
12768 
12769     d.vkCmdControlVideoCodingKHR( m_commandBuffer, reinterpret_cast<const VkVideoCodingControlInfoKHR *>( &codingControlInfo ) );
12770   }
12771 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
12772 
12773   //=== VK_KHR_video_decode_queue ===
12774 
12775   // wrapper function for command vkCmdDecodeVideoKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDecodeVideoKHR.html
12776   template <typename Dispatch>
decodeVideoKHR(const VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR * pDecodeInfo,Dispatch const & d) const12777   VULKAN_HPP_INLINE void CommandBuffer::decodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR * pDecodeInfo,
12778                                                         Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
12779   {
12780     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12781     d.vkCmdDecodeVideoKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkVideoDecodeInfoKHR *>( pDecodeInfo ) );
12782   }
12783 
12784 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
12785   // wrapper function for command vkCmdDecodeVideoKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDecodeVideoKHR.html
12786   template <typename Dispatch>
decodeVideoKHR(const VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR & decodeInfo,Dispatch const & d) const12787   VULKAN_HPP_INLINE void CommandBuffer::decodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoDecodeInfoKHR & decodeInfo,
12788                                                         Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
12789   {
12790     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12791 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12792     VULKAN_HPP_ASSERT( d.vkCmdDecodeVideoKHR && "Function <vkCmdDecodeVideoKHR> requires <VK_KHR_video_decode_queue>" );
12793 #  endif
12794 
12795     d.vkCmdDecodeVideoKHR( m_commandBuffer, reinterpret_cast<const VkVideoDecodeInfoKHR *>( &decodeInfo ) );
12796   }
12797 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
12798 
12799   //=== VK_EXT_transform_feedback ===
12800 
12801   // wrapper function for command vkCmdBindTransformFeedbackBuffersEXT, see
12802   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindTransformFeedbackBuffersEXT.html
12803   template <typename Dispatch>
bindTransformFeedbackBuffersEXT(uint32_t firstBinding,uint32_t bindingCount,const VULKAN_HPP_NAMESPACE::Buffer * pBuffers,const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets,const VULKAN_HPP_NAMESPACE::DeviceSize * pSizes,Dispatch const & d) const12804   VULKAN_HPP_INLINE void CommandBuffer::bindTransformFeedbackBuffersEXT( uint32_t                                 firstBinding,
12805                                                                          uint32_t                                 bindingCount,
12806                                                                          const VULKAN_HPP_NAMESPACE::Buffer *     pBuffers,
12807                                                                          const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets,
12808                                                                          const VULKAN_HPP_NAMESPACE::DeviceSize * pSizes,
12809                                                                          Dispatch const &                         d ) const VULKAN_HPP_NOEXCEPT
12810   {
12811     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12812     d.vkCmdBindTransformFeedbackBuffersEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
12813                                             firstBinding,
12814                                             bindingCount,
12815                                             reinterpret_cast<const VkBuffer *>( pBuffers ),
12816                                             reinterpret_cast<const VkDeviceSize *>( pOffsets ),
12817                                             reinterpret_cast<const VkDeviceSize *>( pSizes ) );
12818   }
12819 
12820 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
12821   // wrapper function for command vkCmdBindTransformFeedbackBuffersEXT, see
12822   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindTransformFeedbackBuffersEXT.html
12823   template <typename Dispatch>
12824   VULKAN_HPP_INLINE void
bindTransformFeedbackBuffersEXT(uint32_t firstBinding,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes,Dispatch const & d) const12825     CommandBuffer::bindTransformFeedbackBuffersEXT( uint32_t                                                                         firstBinding,
12826                                                     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const &     buffers,
12827                                                     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets,
12828                                                     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes,
12829                                                     Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
12830   {
12831     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12832 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12833     VULKAN_HPP_ASSERT( d.vkCmdBindTransformFeedbackBuffersEXT && "Function <vkCmdBindTransformFeedbackBuffersEXT> requires <VK_EXT_transform_feedback>" );
12834 #  endif
12835 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
12836     VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
12837     VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() );
12838 #  else
12839     if ( buffers.size() != offsets.size() )
12840     {
12841       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != offsets.size()" );
12842     }
12843     if ( !sizes.empty() && buffers.size() != sizes.size() )
12844     {
12845       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindTransformFeedbackBuffersEXT: buffers.size() != sizes.size()" );
12846     }
12847 #  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
12848 
12849     d.vkCmdBindTransformFeedbackBuffersEXT( m_commandBuffer,
12850                                             firstBinding,
12851                                             buffers.size(),
12852                                             reinterpret_cast<const VkBuffer *>( buffers.data() ),
12853                                             reinterpret_cast<const VkDeviceSize *>( offsets.data() ),
12854                                             reinterpret_cast<const VkDeviceSize *>( sizes.data() ) );
12855   }
12856 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
12857 
12858   // wrapper function for command vkCmdBeginTransformFeedbackEXT, see
12859   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginTransformFeedbackEXT.html
12860   template <typename Dispatch>
beginTransformFeedbackEXT(uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VULKAN_HPP_NAMESPACE::Buffer * pCounterBuffers,const VULKAN_HPP_NAMESPACE::DeviceSize * pCounterBufferOffsets,Dispatch const & d) const12861   VULKAN_HPP_INLINE void CommandBuffer::beginTransformFeedbackEXT( uint32_t                                 firstCounterBuffer,
12862                                                                    uint32_t                                 counterBufferCount,
12863                                                                    const VULKAN_HPP_NAMESPACE::Buffer *     pCounterBuffers,
12864                                                                    const VULKAN_HPP_NAMESPACE::DeviceSize * pCounterBufferOffsets,
12865                                                                    Dispatch const &                         d ) const VULKAN_HPP_NOEXCEPT
12866   {
12867     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12868     d.vkCmdBeginTransformFeedbackEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
12869                                       firstCounterBuffer,
12870                                       counterBufferCount,
12871                                       reinterpret_cast<const VkBuffer *>( pCounterBuffers ),
12872                                       reinterpret_cast<const VkDeviceSize *>( pCounterBufferOffsets ) );
12873   }
12874 
12875 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
12876   // wrapper function for command vkCmdBeginTransformFeedbackEXT, see
12877   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginTransformFeedbackEXT.html
12878   template <typename Dispatch>
12879   VULKAN_HPP_INLINE void
beginTransformFeedbackEXT(uint32_t firstCounterBuffer,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & counterBuffers,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets,Dispatch const & d) const12880     CommandBuffer::beginTransformFeedbackEXT( uint32_t                                                                         firstCounterBuffer,
12881                                               VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const &     counterBuffers,
12882                                               VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets,
12883                                               Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
12884   {
12885     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12886 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12887     VULKAN_HPP_ASSERT( d.vkCmdBeginTransformFeedbackEXT && "Function <vkCmdBeginTransformFeedbackEXT> requires <VK_EXT_transform_feedback>" );
12888 #  endif
12889 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
12890     VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() );
12891 #  else
12892     if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() )
12893     {
12894       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::beginTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" );
12895     }
12896 #  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
12897 
12898     d.vkCmdBeginTransformFeedbackEXT( m_commandBuffer,
12899                                       firstCounterBuffer,
12900                                       counterBuffers.size(),
12901                                       reinterpret_cast<const VkBuffer *>( counterBuffers.data() ),
12902                                       reinterpret_cast<const VkDeviceSize *>( counterBufferOffsets.data() ) );
12903   }
12904 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
12905 
12906   // wrapper function for command vkCmdEndTransformFeedbackEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndTransformFeedbackEXT.html
12907   template <typename Dispatch>
endTransformFeedbackEXT(uint32_t firstCounterBuffer,uint32_t counterBufferCount,const VULKAN_HPP_NAMESPACE::Buffer * pCounterBuffers,const VULKAN_HPP_NAMESPACE::DeviceSize * pCounterBufferOffsets,Dispatch const & d) const12908   VULKAN_HPP_INLINE void CommandBuffer::endTransformFeedbackEXT( uint32_t                                 firstCounterBuffer,
12909                                                                  uint32_t                                 counterBufferCount,
12910                                                                  const VULKAN_HPP_NAMESPACE::Buffer *     pCounterBuffers,
12911                                                                  const VULKAN_HPP_NAMESPACE::DeviceSize * pCounterBufferOffsets,
12912                                                                  Dispatch const &                         d ) const VULKAN_HPP_NOEXCEPT
12913   {
12914     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12915     d.vkCmdEndTransformFeedbackEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
12916                                     firstCounterBuffer,
12917                                     counterBufferCount,
12918                                     reinterpret_cast<const VkBuffer *>( pCounterBuffers ),
12919                                     reinterpret_cast<const VkDeviceSize *>( pCounterBufferOffsets ) );
12920   }
12921 
12922 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
12923   // wrapper function for command vkCmdEndTransformFeedbackEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndTransformFeedbackEXT.html
12924   template <typename Dispatch>
12925   VULKAN_HPP_INLINE void
endTransformFeedbackEXT(uint32_t firstCounterBuffer,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & counterBuffers,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets,Dispatch const & d) const12926     CommandBuffer::endTransformFeedbackEXT( uint32_t                                                                         firstCounterBuffer,
12927                                             VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const &     counterBuffers,
12928                                             VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & counterBufferOffsets,
12929                                             Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
12930   {
12931     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12932 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
12933     VULKAN_HPP_ASSERT( d.vkCmdEndTransformFeedbackEXT && "Function <vkCmdEndTransformFeedbackEXT> requires <VK_EXT_transform_feedback>" );
12934 #  endif
12935 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
12936     VULKAN_HPP_ASSERT( counterBufferOffsets.empty() || counterBuffers.size() == counterBufferOffsets.size() );
12937 #  else
12938     if ( !counterBufferOffsets.empty() && counterBuffers.size() != counterBufferOffsets.size() )
12939     {
12940       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::endTransformFeedbackEXT: counterBuffers.size() != counterBufferOffsets.size()" );
12941     }
12942 #  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
12943 
12944     d.vkCmdEndTransformFeedbackEXT( m_commandBuffer,
12945                                     firstCounterBuffer,
12946                                     counterBuffers.size(),
12947                                     reinterpret_cast<const VkBuffer *>( counterBuffers.data() ),
12948                                     reinterpret_cast<const VkDeviceSize *>( counterBufferOffsets.data() ) );
12949   }
12950 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
12951 
12952   // wrapper function for command vkCmdBeginQueryIndexedEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginQueryIndexedEXT.html
12953   template <typename Dispatch>
beginQueryIndexedEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,VULKAN_HPP_NAMESPACE::QueryControlFlags flags,uint32_t index,Dispatch const & d) const12954   VULKAN_HPP_INLINE void CommandBuffer::beginQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool         queryPool,
12955                                                               uint32_t                                query,
12956                                                               VULKAN_HPP_NAMESPACE::QueryControlFlags flags,
12957                                                               uint32_t                                index,
12958                                                               Dispatch const &                        d ) const VULKAN_HPP_NOEXCEPT
12959   {
12960     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12961     d.vkCmdBeginQueryIndexedEXT(
12962       static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkQueryPool>( queryPool ), query, static_cast<VkQueryControlFlags>( flags ), index );
12963   }
12964 
12965   // wrapper function for command vkCmdEndQueryIndexedEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndQueryIndexedEXT.html
12966   template <typename Dispatch>
12967   VULKAN_HPP_INLINE void
endQueryIndexedEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,uint32_t index,Dispatch const & d) const12968     CommandBuffer::endQueryIndexedEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool, uint32_t query, uint32_t index, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
12969   {
12970     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12971     d.vkCmdEndQueryIndexedEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkQueryPool>( queryPool ), query, index );
12972   }
12973 
12974   // wrapper function for command vkCmdDrawIndirectByteCountEXT, see
12975   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawIndirectByteCountEXT.html
12976   template <typename Dispatch>
drawIndirectByteCountEXT(uint32_t instanceCount,uint32_t firstInstance,VULKAN_HPP_NAMESPACE::Buffer counterBuffer,VULKAN_HPP_NAMESPACE::DeviceSize counterBufferOffset,uint32_t counterOffset,uint32_t vertexStride,Dispatch const & d) const12977   VULKAN_HPP_INLINE void CommandBuffer::drawIndirectByteCountEXT( uint32_t                         instanceCount,
12978                                                                   uint32_t                         firstInstance,
12979                                                                   VULKAN_HPP_NAMESPACE::Buffer     counterBuffer,
12980                                                                   VULKAN_HPP_NAMESPACE::DeviceSize counterBufferOffset,
12981                                                                   uint32_t                         counterOffset,
12982                                                                   uint32_t                         vertexStride,
12983                                                                   Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
12984   {
12985     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
12986     d.vkCmdDrawIndirectByteCountEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
12987                                      instanceCount,
12988                                      firstInstance,
12989                                      static_cast<VkBuffer>( counterBuffer ),
12990                                      static_cast<VkDeviceSize>( counterBufferOffset ),
12991                                      counterOffset,
12992                                      vertexStride );
12993   }
12994 
12995   //=== VK_NVX_binary_import ===
12996 
12997   // wrapper function for command vkCreateCuModuleNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCuModuleNVX.html
12998   template <typename Dispatch>
createCuModuleNVX(const VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::CuModuleNVX * pModule,Dispatch const & d) const12999   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createCuModuleNVX( const VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX * pCreateInfo,
13000                                                                            const VULKAN_HPP_NAMESPACE::AllocationCallbacks *   pAllocator,
13001                                                                            VULKAN_HPP_NAMESPACE::CuModuleNVX *                 pModule,
13002                                                                            Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
13003   {
13004     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13005     return static_cast<Result>( d.vkCreateCuModuleNVX( static_cast<VkDevice>( m_device ),
13006                                                        reinterpret_cast<const VkCuModuleCreateInfoNVX *>( pCreateInfo ),
13007                                                        reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
13008                                                        reinterpret_cast<VkCuModuleNVX *>( pModule ) ) );
13009   }
13010 
13011 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13012   // wrapper function for command vkCreateCuModuleNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCuModuleNVX.html
13013   template <typename Dispatch>
13014   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::CuModuleNVX>::type
createCuModuleNVX(const VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const13015                        Device::createCuModuleNVX( const VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX &       createInfo,
13016                                Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
13017                                Dispatch const &                                          d ) const
13018   {
13019     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13020 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13021     VULKAN_HPP_ASSERT( d.vkCreateCuModuleNVX && "Function <vkCreateCuModuleNVX> requires <VK_NVX_binary_import>" );
13022 #  endif
13023 
13024     VULKAN_HPP_NAMESPACE::CuModuleNVX module;
13025     VULKAN_HPP_NAMESPACE::Result      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
13026       d.vkCreateCuModuleNVX( m_device,
13027                              reinterpret_cast<const VkCuModuleCreateInfoNVX *>( &createInfo ),
13028                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
13029                              reinterpret_cast<VkCuModuleNVX *>( &module ) ) );
13030     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createCuModuleNVX" );
13031 
13032     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( module ) );
13033   }
13034 
13035 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
13036   // wrapper function for command vkCreateCuModuleNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCuModuleNVX.html
13037   template <typename Dispatch>
13038   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::CuModuleNVX, Dispatch>>::type
createCuModuleNVXUnique(const VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const13039                        Device::createCuModuleNVXUnique( const VULKAN_HPP_NAMESPACE::CuModuleCreateInfoNVX &       createInfo,
13040                                      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
13041                                      Dispatch const &                                          d ) const
13042   {
13043     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13044 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13045     VULKAN_HPP_ASSERT( d.vkCreateCuModuleNVX && "Function <vkCreateCuModuleNVX> requires <VK_NVX_binary_import>" );
13046 #    endif
13047 
13048     VULKAN_HPP_NAMESPACE::CuModuleNVX module;
13049     VULKAN_HPP_NAMESPACE::Result      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
13050       d.vkCreateCuModuleNVX( m_device,
13051                              reinterpret_cast<const VkCuModuleCreateInfoNVX *>( &createInfo ),
13052                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
13053                              reinterpret_cast<VkCuModuleNVX *>( &module ) ) );
13054     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createCuModuleNVXUnique" );
13055 
13056     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
13057       result, UniqueHandle<VULKAN_HPP_NAMESPACE::CuModuleNVX, Dispatch>( module, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
13058   }
13059 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
13060 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
13061 
13062   // wrapper function for command vkCreateCuFunctionNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCuFunctionNVX.html
13063   template <typename Dispatch>
createCuFunctionNVX(const VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::CuFunctionNVX * pFunction,Dispatch const & d) const13064   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createCuFunctionNVX( const VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX * pCreateInfo,
13065                                                                              const VULKAN_HPP_NAMESPACE::AllocationCallbacks *     pAllocator,
13066                                                                              VULKAN_HPP_NAMESPACE::CuFunctionNVX *                 pFunction,
13067                                                                              Dispatch const &                                      d ) const VULKAN_HPP_NOEXCEPT
13068   {
13069     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13070     return static_cast<Result>( d.vkCreateCuFunctionNVX( static_cast<VkDevice>( m_device ),
13071                                                          reinterpret_cast<const VkCuFunctionCreateInfoNVX *>( pCreateInfo ),
13072                                                          reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
13073                                                          reinterpret_cast<VkCuFunctionNVX *>( pFunction ) ) );
13074   }
13075 
13076 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13077   // wrapper function for command vkCreateCuFunctionNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCuFunctionNVX.html
13078   template <typename Dispatch>
13079   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::CuFunctionNVX>::type
createCuFunctionNVX(const VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const13080                        Device::createCuFunctionNVX( const VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX &     createInfo,
13081                                  Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
13082                                  Dispatch const &                                          d ) const
13083   {
13084     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13085 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13086     VULKAN_HPP_ASSERT( d.vkCreateCuFunctionNVX && "Function <vkCreateCuFunctionNVX> requires <VK_NVX_binary_import>" );
13087 #  endif
13088 
13089     VULKAN_HPP_NAMESPACE::CuFunctionNVX function;
13090     VULKAN_HPP_NAMESPACE::Result        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
13091       d.vkCreateCuFunctionNVX( m_device,
13092                                reinterpret_cast<const VkCuFunctionCreateInfoNVX *>( &createInfo ),
13093                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
13094                                reinterpret_cast<VkCuFunctionNVX *>( &function ) ) );
13095     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createCuFunctionNVX" );
13096 
13097     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( function ) );
13098   }
13099 
13100 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
13101   // wrapper function for command vkCreateCuFunctionNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCuFunctionNVX.html
13102   template <typename Dispatch>
13103   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::CuFunctionNVX, Dispatch>>::type
createCuFunctionNVXUnique(const VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const13104                        Device::createCuFunctionNVXUnique( const VULKAN_HPP_NAMESPACE::CuFunctionCreateInfoNVX &     createInfo,
13105                                        Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
13106                                        Dispatch const &                                          d ) const
13107   {
13108     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13109 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13110     VULKAN_HPP_ASSERT( d.vkCreateCuFunctionNVX && "Function <vkCreateCuFunctionNVX> requires <VK_NVX_binary_import>" );
13111 #    endif
13112 
13113     VULKAN_HPP_NAMESPACE::CuFunctionNVX function;
13114     VULKAN_HPP_NAMESPACE::Result        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
13115       d.vkCreateCuFunctionNVX( m_device,
13116                                reinterpret_cast<const VkCuFunctionCreateInfoNVX *>( &createInfo ),
13117                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
13118                                reinterpret_cast<VkCuFunctionNVX *>( &function ) ) );
13119     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createCuFunctionNVXUnique" );
13120 
13121     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
13122       result, UniqueHandle<VULKAN_HPP_NAMESPACE::CuFunctionNVX, Dispatch>( function, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
13123   }
13124 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
13125 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
13126 
13127   // wrapper function for command vkDestroyCuModuleNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCuModuleNVX.html
13128   template <typename Dispatch>
destroyCuModuleNVX(VULKAN_HPP_NAMESPACE::CuModuleNVX module,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const13129   VULKAN_HPP_INLINE void Device::destroyCuModuleNVX( VULKAN_HPP_NAMESPACE::CuModuleNVX                 module,
13130                                                      const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
13131                                                      Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
13132   {
13133     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13134     d.vkDestroyCuModuleNVX(
13135       static_cast<VkDevice>( m_device ), static_cast<VkCuModuleNVX>( module ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
13136   }
13137 
13138 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13139   // wrapper function for command vkDestroyCuModuleNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCuModuleNVX.html
13140   template <typename Dispatch>
destroyCuModuleNVX(VULKAN_HPP_NAMESPACE::CuModuleNVX module,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const13141   VULKAN_HPP_INLINE void Device::destroyCuModuleNVX( VULKAN_HPP_NAMESPACE::CuModuleNVX                         module,
13142                                                      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
13143                                                      Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
13144   {
13145     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13146 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13147     VULKAN_HPP_ASSERT( d.vkDestroyCuModuleNVX && "Function <vkDestroyCuModuleNVX> requires <VK_NVX_binary_import>" );
13148 #  endif
13149 
13150     d.vkDestroyCuModuleNVX( m_device,
13151                             static_cast<VkCuModuleNVX>( module ),
13152                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
13153   }
13154 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
13155 
13156   // wrapper function for command vkDestroyCuModuleNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCuModuleNVX.html
13157   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::CuModuleNVX module,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const13158   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CuModuleNVX                 module,
13159                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
13160                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
13161   {
13162     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13163     d.vkDestroyCuModuleNVX(
13164       static_cast<VkDevice>( m_device ), static_cast<VkCuModuleNVX>( module ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
13165   }
13166 
13167 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13168   // wrapper function for command vkDestroyCuModuleNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCuModuleNVX.html
13169   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::CuModuleNVX module,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const13170   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CuModuleNVX                         module,
13171                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
13172                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
13173   {
13174     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13175 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13176     VULKAN_HPP_ASSERT( d.vkDestroyCuModuleNVX && "Function <vkDestroyCuModuleNVX> requires <VK_NVX_binary_import>" );
13177 #  endif
13178 
13179     d.vkDestroyCuModuleNVX( m_device,
13180                             static_cast<VkCuModuleNVX>( module ),
13181                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
13182   }
13183 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
13184 
13185   // wrapper function for command vkDestroyCuFunctionNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCuFunctionNVX.html
13186   template <typename Dispatch>
destroyCuFunctionNVX(VULKAN_HPP_NAMESPACE::CuFunctionNVX function,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const13187   VULKAN_HPP_INLINE void Device::destroyCuFunctionNVX( VULKAN_HPP_NAMESPACE::CuFunctionNVX               function,
13188                                                        const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
13189                                                        Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
13190   {
13191     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13192     d.vkDestroyCuFunctionNVX(
13193       static_cast<VkDevice>( m_device ), static_cast<VkCuFunctionNVX>( function ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
13194   }
13195 
13196 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13197   // wrapper function for command vkDestroyCuFunctionNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCuFunctionNVX.html
13198   template <typename Dispatch>
destroyCuFunctionNVX(VULKAN_HPP_NAMESPACE::CuFunctionNVX function,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const13199   VULKAN_HPP_INLINE void Device::destroyCuFunctionNVX( VULKAN_HPP_NAMESPACE::CuFunctionNVX                       function,
13200                                                        Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
13201                                                        Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
13202   {
13203     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13204 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13205     VULKAN_HPP_ASSERT( d.vkDestroyCuFunctionNVX && "Function <vkDestroyCuFunctionNVX> requires <VK_NVX_binary_import>" );
13206 #  endif
13207 
13208     d.vkDestroyCuFunctionNVX( m_device,
13209                               static_cast<VkCuFunctionNVX>( function ),
13210                               reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
13211   }
13212 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
13213 
13214   // wrapper function for command vkDestroyCuFunctionNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCuFunctionNVX.html
13215   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::CuFunctionNVX function,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const13216   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CuFunctionNVX               function,
13217                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
13218                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
13219   {
13220     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13221     d.vkDestroyCuFunctionNVX(
13222       static_cast<VkDevice>( m_device ), static_cast<VkCuFunctionNVX>( function ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
13223   }
13224 
13225 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13226   // wrapper function for command vkDestroyCuFunctionNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCuFunctionNVX.html
13227   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::CuFunctionNVX function,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const13228   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CuFunctionNVX                       function,
13229                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
13230                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
13231   {
13232     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13233 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13234     VULKAN_HPP_ASSERT( d.vkDestroyCuFunctionNVX && "Function <vkDestroyCuFunctionNVX> requires <VK_NVX_binary_import>" );
13235 #  endif
13236 
13237     d.vkDestroyCuFunctionNVX( m_device,
13238                               static_cast<VkCuFunctionNVX>( function ),
13239                               reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
13240   }
13241 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
13242 
13243   // wrapper function for command vkCmdCuLaunchKernelNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCuLaunchKernelNVX.html
13244   template <typename Dispatch>
cuLaunchKernelNVX(const VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX * pLaunchInfo,Dispatch const & d) const13245   VULKAN_HPP_INLINE void CommandBuffer::cuLaunchKernelNVX( const VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX * pLaunchInfo,
13246                                                            Dispatch const &                              d ) const VULKAN_HPP_NOEXCEPT
13247   {
13248     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13249     d.vkCmdCuLaunchKernelNVX( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCuLaunchInfoNVX *>( pLaunchInfo ) );
13250   }
13251 
13252 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13253   // wrapper function for command vkCmdCuLaunchKernelNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCuLaunchKernelNVX.html
13254   template <typename Dispatch>
cuLaunchKernelNVX(const VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX & launchInfo,Dispatch const & d) const13255   VULKAN_HPP_INLINE void CommandBuffer::cuLaunchKernelNVX( const VULKAN_HPP_NAMESPACE::CuLaunchInfoNVX & launchInfo,
13256                                                            Dispatch const &                              d ) const VULKAN_HPP_NOEXCEPT
13257   {
13258     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13259 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13260     VULKAN_HPP_ASSERT( d.vkCmdCuLaunchKernelNVX && "Function <vkCmdCuLaunchKernelNVX> requires <VK_NVX_binary_import>" );
13261 #  endif
13262 
13263     d.vkCmdCuLaunchKernelNVX( m_commandBuffer, reinterpret_cast<const VkCuLaunchInfoNVX *>( &launchInfo ) );
13264   }
13265 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
13266 
13267   //=== VK_NVX_image_view_handle ===
13268 
13269   // wrapper function for command vkGetImageViewHandleNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageViewHandleNVX.html
13270   template <typename Dispatch>
getImageViewHandleNVX(const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX * pInfo,Dispatch const & d) const13271   VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX * pInfo,
13272                                                             Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
13273   {
13274     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13275     return d.vkGetImageViewHandleNVX( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImageViewHandleInfoNVX *>( pInfo ) );
13276   }
13277 
13278 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13279   // wrapper function for command vkGetImageViewHandleNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageViewHandleNVX.html
13280   template <typename Dispatch>
getImageViewHandleNVX(const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX & info,Dispatch const & d) const13281   VULKAN_HPP_INLINE uint32_t Device::getImageViewHandleNVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX & info,
13282                                                             Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
13283   {
13284     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13285 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13286     VULKAN_HPP_ASSERT( d.vkGetImageViewHandleNVX && "Function <vkGetImageViewHandleNVX> requires <VK_NVX_image_view_handle>" );
13287 #  endif
13288 
13289     uint32_t result = d.vkGetImageViewHandleNVX( m_device, reinterpret_cast<const VkImageViewHandleInfoNVX *>( &info ) );
13290 
13291     return result;
13292   }
13293 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
13294 
13295   // wrapper function for command vkGetImageViewHandle64NVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageViewHandle64NVX.html
13296   template <typename Dispatch>
getImageViewHandle64NVX(const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX * pInfo,Dispatch const & d) const13297   VULKAN_HPP_INLINE uint64_t Device::getImageViewHandle64NVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX * pInfo,
13298                                                               Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
13299   {
13300     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13301     return d.vkGetImageViewHandle64NVX( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImageViewHandleInfoNVX *>( pInfo ) );
13302   }
13303 
13304 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13305   // wrapper function for command vkGetImageViewHandle64NVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageViewHandle64NVX.html
13306   template <typename Dispatch>
getImageViewHandle64NVX(const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX & info,Dispatch const & d) const13307   VULKAN_HPP_INLINE uint64_t Device::getImageViewHandle64NVX( const VULKAN_HPP_NAMESPACE::ImageViewHandleInfoNVX & info,
13308                                                               Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
13309   {
13310     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13311 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13312     VULKAN_HPP_ASSERT( d.vkGetImageViewHandle64NVX && "Function <vkGetImageViewHandle64NVX> requires <VK_NVX_image_view_handle>" );
13313 #  endif
13314 
13315     uint64_t result = d.vkGetImageViewHandle64NVX( m_device, reinterpret_cast<const VkImageViewHandleInfoNVX *>( &info ) );
13316 
13317     return result;
13318   }
13319 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
13320 
13321   // wrapper function for command vkGetImageViewAddressNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageViewAddressNVX.html
13322   template <typename Dispatch>
getImageViewAddressNVX(VULKAN_HPP_NAMESPACE::ImageView imageView,VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX * pProperties,Dispatch const & d) const13323   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getImageViewAddressNVX( VULKAN_HPP_NAMESPACE::ImageView                       imageView,
13324                                                                                 VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX * pProperties,
13325                                                                                 Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
13326   {
13327     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13328     return static_cast<Result>( d.vkGetImageViewAddressNVX(
13329       static_cast<VkDevice>( m_device ), static_cast<VkImageView>( imageView ), reinterpret_cast<VkImageViewAddressPropertiesNVX *>( pProperties ) ) );
13330   }
13331 
13332 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13333   // wrapper function for command vkGetImageViewAddressNVX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageViewAddressNVX.html
13334   template <typename Dispatch>
13335   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX>::type
getImageViewAddressNVX(VULKAN_HPP_NAMESPACE::ImageView imageView,Dispatch const & d) const13336                        Device::getImageViewAddressNVX( VULKAN_HPP_NAMESPACE::ImageView imageView, Dispatch const & d ) const
13337   {
13338     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13339 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13340     VULKAN_HPP_ASSERT( d.vkGetImageViewAddressNVX && "Function <vkGetImageViewAddressNVX> requires <VK_NVX_image_view_handle>" );
13341 #  endif
13342 
13343     VULKAN_HPP_NAMESPACE::ImageViewAddressPropertiesNVX properties;
13344     VULKAN_HPP_NAMESPACE::Result                        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
13345       d.vkGetImageViewAddressNVX( m_device, static_cast<VkImageView>( imageView ), reinterpret_cast<VkImageViewAddressPropertiesNVX *>( &properties ) ) );
13346     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageViewAddressNVX" );
13347 
13348     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
13349   }
13350 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
13351 
13352   //=== VK_AMD_draw_indirect_count ===
13353 
13354   // wrapper function for command vkCmdDrawIndirectCountAMD, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawIndirectCountAMD.html
13355   template <typename Dispatch>
drawIndirectCountAMD(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::Buffer countBuffer,VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const13356   VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCountAMD( VULKAN_HPP_NAMESPACE::Buffer     buffer,
13357                                                               VULKAN_HPP_NAMESPACE::DeviceSize offset,
13358                                                               VULKAN_HPP_NAMESPACE::Buffer     countBuffer,
13359                                                               VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,
13360                                                               uint32_t                         maxDrawCount,
13361                                                               uint32_t                         stride,
13362                                                               Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
13363   {
13364     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13365     d.vkCmdDrawIndirectCountAMD( static_cast<VkCommandBuffer>( m_commandBuffer ),
13366                                  static_cast<VkBuffer>( buffer ),
13367                                  static_cast<VkDeviceSize>( offset ),
13368                                  static_cast<VkBuffer>( countBuffer ),
13369                                  static_cast<VkDeviceSize>( countBufferOffset ),
13370                                  maxDrawCount,
13371                                  stride );
13372   }
13373 
13374   // wrapper function for command vkCmdDrawIndexedIndirectCountAMD, see
13375   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawIndexedIndirectCountAMD.html
13376   template <typename Dispatch>
drawIndexedIndirectCountAMD(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::Buffer countBuffer,VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const13377   VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCountAMD( VULKAN_HPP_NAMESPACE::Buffer     buffer,
13378                                                                      VULKAN_HPP_NAMESPACE::DeviceSize offset,
13379                                                                      VULKAN_HPP_NAMESPACE::Buffer     countBuffer,
13380                                                                      VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,
13381                                                                      uint32_t                         maxDrawCount,
13382                                                                      uint32_t                         stride,
13383                                                                      Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
13384   {
13385     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13386     d.vkCmdDrawIndexedIndirectCountAMD( static_cast<VkCommandBuffer>( m_commandBuffer ),
13387                                         static_cast<VkBuffer>( buffer ),
13388                                         static_cast<VkDeviceSize>( offset ),
13389                                         static_cast<VkBuffer>( countBuffer ),
13390                                         static_cast<VkDeviceSize>( countBufferOffset ),
13391                                         maxDrawCount,
13392                                         stride );
13393   }
13394 
13395   //=== VK_AMD_shader_info ===
13396 
13397   // wrapper function for command vkGetShaderInfoAMD, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetShaderInfoAMD.html
13398   template <typename Dispatch>
getShaderInfoAMD(VULKAN_HPP_NAMESPACE::Pipeline pipeline,VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage,VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType,size_t * pInfoSize,void * pInfo,Dispatch const & d) const13399   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline            pipeline,
13400                                                                           VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage,
13401                                                                           VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD   infoType,
13402                                                                           size_t *                                  pInfoSize,
13403                                                                           void *                                    pInfo,
13404                                                                           Dispatch const &                          d ) const VULKAN_HPP_NOEXCEPT
13405   {
13406     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13407     return static_cast<Result>( d.vkGetShaderInfoAMD( static_cast<VkDevice>( m_device ),
13408                                                       static_cast<VkPipeline>( pipeline ),
13409                                                       static_cast<VkShaderStageFlagBits>( shaderStage ),
13410                                                       static_cast<VkShaderInfoTypeAMD>( infoType ),
13411                                                       pInfoSize,
13412                                                       pInfo ) );
13413   }
13414 
13415 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13416   // wrapper function for command vkGetShaderInfoAMD, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetShaderInfoAMD.html
13417   template <typename Uint8_tAllocator,
13418             typename Dispatch,
13419             typename std::enable_if<std::is_same<typename Uint8_tAllocator::value_type, uint8_t>::value, int>::type>
13420   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type
getShaderInfoAMD(VULKAN_HPP_NAMESPACE::Pipeline pipeline,VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage,VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType,Dispatch const & d) const13421                        Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline            pipeline,
13422                               VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage,
13423                               VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD   infoType,
13424                               Dispatch const &                          d ) const
13425   {
13426     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13427 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13428     VULKAN_HPP_ASSERT( d.vkGetShaderInfoAMD && "Function <vkGetShaderInfoAMD> requires <VK_AMD_shader_info>" );
13429 #  endif
13430 
13431     std::vector<uint8_t, Uint8_tAllocator> info;
13432     size_t                                 infoSize;
13433     VULKAN_HPP_NAMESPACE::Result           result;
13434     do
13435     {
13436       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetShaderInfoAMD( m_device,
13437                                                                                 static_cast<VkPipeline>( pipeline ),
13438                                                                                 static_cast<VkShaderStageFlagBits>( shaderStage ),
13439                                                                                 static_cast<VkShaderInfoTypeAMD>( infoType ),
13440                                                                                 &infoSize,
13441                                                                                 nullptr ) );
13442       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && infoSize )
13443       {
13444         info.resize( infoSize );
13445         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetShaderInfoAMD( m_device,
13446                                                                                   static_cast<VkPipeline>( pipeline ),
13447                                                                                   static_cast<VkShaderStageFlagBits>( shaderStage ),
13448                                                                                   static_cast<VkShaderInfoTypeAMD>( infoType ),
13449                                                                                   &infoSize,
13450                                                                                   reinterpret_cast<void *>( info.data() ) ) );
13451       }
13452     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
13453     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getShaderInfoAMD" );
13454     VULKAN_HPP_ASSERT( infoSize <= info.size() );
13455     if ( infoSize < info.size() )
13456     {
13457       info.resize( infoSize );
13458     }
13459     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( info ) );
13460   }
13461 
13462   // wrapper function for command vkGetShaderInfoAMD, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetShaderInfoAMD.html
13463   template <typename Uint8_tAllocator,
13464             typename Dispatch,
13465             typename std::enable_if<std::is_same<typename Uint8_tAllocator::value_type, uint8_t>::value, int>::type>
13466   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type
getShaderInfoAMD(VULKAN_HPP_NAMESPACE::Pipeline pipeline,VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage,VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD infoType,Uint8_tAllocator & uint8_tAllocator,Dispatch const & d) const13467                        Device::getShaderInfoAMD( VULKAN_HPP_NAMESPACE::Pipeline            pipeline,
13468                               VULKAN_HPP_NAMESPACE::ShaderStageFlagBits shaderStage,
13469                               VULKAN_HPP_NAMESPACE::ShaderInfoTypeAMD   infoType,
13470                               Uint8_tAllocator &                        uint8_tAllocator,
13471                               Dispatch const &                          d ) const
13472   {
13473     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13474 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13475     VULKAN_HPP_ASSERT( d.vkGetShaderInfoAMD && "Function <vkGetShaderInfoAMD> requires <VK_AMD_shader_info>" );
13476 #  endif
13477 
13478     std::vector<uint8_t, Uint8_tAllocator> info( uint8_tAllocator );
13479     size_t                                 infoSize;
13480     VULKAN_HPP_NAMESPACE::Result           result;
13481     do
13482     {
13483       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetShaderInfoAMD( m_device,
13484                                                                                 static_cast<VkPipeline>( pipeline ),
13485                                                                                 static_cast<VkShaderStageFlagBits>( shaderStage ),
13486                                                                                 static_cast<VkShaderInfoTypeAMD>( infoType ),
13487                                                                                 &infoSize,
13488                                                                                 nullptr ) );
13489       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && infoSize )
13490       {
13491         info.resize( infoSize );
13492         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetShaderInfoAMD( m_device,
13493                                                                                   static_cast<VkPipeline>( pipeline ),
13494                                                                                   static_cast<VkShaderStageFlagBits>( shaderStage ),
13495                                                                                   static_cast<VkShaderInfoTypeAMD>( infoType ),
13496                                                                                   &infoSize,
13497                                                                                   reinterpret_cast<void *>( info.data() ) ) );
13498       }
13499     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
13500     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getShaderInfoAMD" );
13501     VULKAN_HPP_ASSERT( infoSize <= info.size() );
13502     if ( infoSize < info.size() )
13503     {
13504       info.resize( infoSize );
13505     }
13506     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( info ) );
13507   }
13508 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
13509 
13510   //=== VK_KHR_dynamic_rendering ===
13511 
13512   // wrapper function for command vkCmdBeginRenderingKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginRenderingKHR.html
13513   template <typename Dispatch>
beginRenderingKHR(const VULKAN_HPP_NAMESPACE::RenderingInfo * pRenderingInfo,Dispatch const & d) const13514   VULKAN_HPP_INLINE void CommandBuffer::beginRenderingKHR( const VULKAN_HPP_NAMESPACE::RenderingInfo * pRenderingInfo,
13515                                                            Dispatch const &                            d ) const VULKAN_HPP_NOEXCEPT
13516   {
13517     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13518     d.vkCmdBeginRenderingKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkRenderingInfo *>( pRenderingInfo ) );
13519   }
13520 
13521 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13522   // wrapper function for command vkCmdBeginRenderingKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginRenderingKHR.html
13523   template <typename Dispatch>
beginRenderingKHR(const VULKAN_HPP_NAMESPACE::RenderingInfo & renderingInfo,Dispatch const & d) const13524   VULKAN_HPP_INLINE void CommandBuffer::beginRenderingKHR( const VULKAN_HPP_NAMESPACE::RenderingInfo & renderingInfo,
13525                                                            Dispatch const &                            d ) const VULKAN_HPP_NOEXCEPT
13526   {
13527     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13528 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13529     VULKAN_HPP_ASSERT( d.vkCmdBeginRenderingKHR && "Function <vkCmdBeginRenderingKHR> requires <VK_KHR_dynamic_rendering> or <VK_VERSION_1_3>" );
13530 #  endif
13531 
13532     d.vkCmdBeginRenderingKHR( m_commandBuffer, reinterpret_cast<const VkRenderingInfo *>( &renderingInfo ) );
13533   }
13534 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
13535 
13536   // wrapper function for command vkCmdEndRenderingKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndRenderingKHR.html
13537   template <typename Dispatch>
endRenderingKHR(Dispatch const & d) const13538   VULKAN_HPP_INLINE void CommandBuffer::endRenderingKHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
13539   {
13540     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13541     d.vkCmdEndRenderingKHR( static_cast<VkCommandBuffer>( m_commandBuffer ) );
13542   }
13543 
13544 #if defined( VK_USE_PLATFORM_GGP )
13545   //=== VK_GGP_stream_descriptor_surface ===
13546 
13547   // wrapper function for command vkCreateStreamDescriptorSurfaceGGP, see
13548   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateStreamDescriptorSurfaceGGP.html
13549   template <typename Dispatch>
13550   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
createStreamDescriptorSurfaceGGP(const VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const13551     Instance::createStreamDescriptorSurfaceGGP( const VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP * pCreateInfo,
13552                                                 const VULKAN_HPP_NAMESPACE::AllocationCallbacks *                  pAllocator,
13553                                                 VULKAN_HPP_NAMESPACE::SurfaceKHR *                                 pSurface,
13554                                                 Dispatch const &                                                   d ) const VULKAN_HPP_NOEXCEPT
13555   {
13556     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13557     return static_cast<Result>( d.vkCreateStreamDescriptorSurfaceGGP( static_cast<VkInstance>( m_instance ),
13558                                                                       reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP *>( pCreateInfo ),
13559                                                                       reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
13560                                                                       reinterpret_cast<VkSurfaceKHR *>( pSurface ) ) );
13561   }
13562 
13563 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13564   // wrapper function for command vkCreateStreamDescriptorSurfaceGGP, see
13565   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateStreamDescriptorSurfaceGGP.html
13566   template <typename Dispatch>
13567   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type
createStreamDescriptorSurfaceGGP(const VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const13568                        Instance::createStreamDescriptorSurfaceGGP( const VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP & createInfo,
13569                                                 Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>          allocator,
13570                                                 Dispatch const &                                                   d ) const
13571   {
13572     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13573 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13574     VULKAN_HPP_ASSERT( d.vkCreateStreamDescriptorSurfaceGGP && "Function <vkCreateStreamDescriptorSurfaceGGP> requires <VK_GGP_stream_descriptor_surface>" );
13575 #    endif
13576 
13577     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
13578     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateStreamDescriptorSurfaceGGP(
13579       m_instance,
13580       reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP *>( &createInfo ),
13581       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
13582       reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
13583     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createStreamDescriptorSurfaceGGP" );
13584 
13585     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surface ) );
13586   }
13587 
13588 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
13589   // wrapper function for command vkCreateStreamDescriptorSurfaceGGP, see
13590   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateStreamDescriptorSurfaceGGP.html
13591   template <typename Dispatch>
13592   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type
createStreamDescriptorSurfaceGGPUnique(const VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const13593                        Instance::createStreamDescriptorSurfaceGGPUnique( const VULKAN_HPP_NAMESPACE::StreamDescriptorSurfaceCreateInfoGGP & createInfo,
13594                                                       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>          allocator,
13595                                                       Dispatch const &                                                   d ) const
13596   {
13597     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13598 #      if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13599     VULKAN_HPP_ASSERT( d.vkCreateStreamDescriptorSurfaceGGP && "Function <vkCreateStreamDescriptorSurfaceGGP> requires <VK_GGP_stream_descriptor_surface>" );
13600 #      endif
13601 
13602     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
13603     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateStreamDescriptorSurfaceGGP(
13604       m_instance,
13605       reinterpret_cast<const VkStreamDescriptorSurfaceCreateInfoGGP *>( &createInfo ),
13606       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
13607       reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
13608     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createStreamDescriptorSurfaceGGPUnique" );
13609 
13610     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
13611       result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, detail::ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
13612   }
13613 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
13614 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
13615 #endif     /*VK_USE_PLATFORM_GGP*/
13616 
13617   //=== VK_NV_external_memory_capabilities ===
13618 
13619   // wrapper function for command vkGetPhysicalDeviceExternalImageFormatPropertiesNV, see
13620   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalImageFormatPropertiesNV.html
13621   template <typename Dispatch>
13622   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getExternalImageFormatPropertiesNV(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::ImageType type,VULKAN_HPP_NAMESPACE::ImageTiling tiling,VULKAN_HPP_NAMESPACE::ImageUsageFlags usage,VULKAN_HPP_NAMESPACE::ImageCreateFlags flags,VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType,VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV * pExternalImageFormatProperties,Dispatch const & d) const13623     PhysicalDevice::getExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::Format                            format,
13624                                                         VULKAN_HPP_NAMESPACE::ImageType                         type,
13625                                                         VULKAN_HPP_NAMESPACE::ImageTiling                       tiling,
13626                                                         VULKAN_HPP_NAMESPACE::ImageUsageFlags                   usage,
13627                                                         VULKAN_HPP_NAMESPACE::ImageCreateFlags                  flags,
13628                                                         VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV   externalHandleType,
13629                                                         VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV * pExternalImageFormatProperties,
13630                                                         Dispatch const &                                        d ) const VULKAN_HPP_NOEXCEPT
13631   {
13632     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13633     return static_cast<Result>(
13634       d.vkGetPhysicalDeviceExternalImageFormatPropertiesNV( static_cast<VkPhysicalDevice>( m_physicalDevice ),
13635                                                             static_cast<VkFormat>( format ),
13636                                                             static_cast<VkImageType>( type ),
13637                                                             static_cast<VkImageTiling>( tiling ),
13638                                                             static_cast<VkImageUsageFlags>( usage ),
13639                                                             static_cast<VkImageCreateFlags>( flags ),
13640                                                             static_cast<VkExternalMemoryHandleTypeFlagsNV>( externalHandleType ),
13641                                                             reinterpret_cast<VkExternalImageFormatPropertiesNV *>( pExternalImageFormatProperties ) ) );
13642   }
13643 
13644 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13645   // wrapper function for command vkGetPhysicalDeviceExternalImageFormatPropertiesNV, see
13646   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalImageFormatPropertiesNV.html
13647   template <typename Dispatch>
13648   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV>::type
getExternalImageFormatPropertiesNV(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::ImageType type,VULKAN_HPP_NAMESPACE::ImageTiling tiling,VULKAN_HPP_NAMESPACE::ImageUsageFlags usage,VULKAN_HPP_NAMESPACE::ImageCreateFlags flags,VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType,Dispatch const & d) const13649                        PhysicalDevice::getExternalImageFormatPropertiesNV( VULKAN_HPP_NAMESPACE::Format                          format,
13650                                                         VULKAN_HPP_NAMESPACE::ImageType                       type,
13651                                                         VULKAN_HPP_NAMESPACE::ImageTiling                     tiling,
13652                                                         VULKAN_HPP_NAMESPACE::ImageUsageFlags                 usage,
13653                                                         VULKAN_HPP_NAMESPACE::ImageCreateFlags                flags,
13654                                                         VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV externalHandleType,
13655                                                         Dispatch const &                                      d ) const
13656   {
13657     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13658 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13659     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceExternalImageFormatPropertiesNV &&
13660                        "Function <vkGetPhysicalDeviceExternalImageFormatPropertiesNV> requires <VK_NV_external_memory_capabilities>" );
13661 #  endif
13662 
13663     VULKAN_HPP_NAMESPACE::ExternalImageFormatPropertiesNV externalImageFormatProperties;
13664     VULKAN_HPP_NAMESPACE::Result                          result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
13665       d.vkGetPhysicalDeviceExternalImageFormatPropertiesNV( m_physicalDevice,
13666                                                             static_cast<VkFormat>( format ),
13667                                                             static_cast<VkImageType>( type ),
13668                                                             static_cast<VkImageTiling>( tiling ),
13669                                                             static_cast<VkImageUsageFlags>( usage ),
13670                                                             static_cast<VkImageCreateFlags>( flags ),
13671                                                             static_cast<VkExternalMemoryHandleTypeFlagsNV>( externalHandleType ),
13672                                                             reinterpret_cast<VkExternalImageFormatPropertiesNV *>( &externalImageFormatProperties ) ) );
13673     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getExternalImageFormatPropertiesNV" );
13674 
13675     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( externalImageFormatProperties ) );
13676   }
13677 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
13678 
13679 #if defined( VK_USE_PLATFORM_WIN32_KHR )
13680   //=== VK_NV_external_memory_win32 ===
13681 
13682   // wrapper function for command vkGetMemoryWin32HandleNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryWin32HandleNV.html
13683   template <typename Dispatch>
getMemoryWin32HandleNV(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType,HANDLE * pHandle,Dispatch const & d) const13684   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryWin32HandleNV( VULKAN_HPP_NAMESPACE::DeviceMemory                    memory,
13685                                                                                 VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType,
13686                                                                                 HANDLE *                                              pHandle,
13687                                                                                 Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
13688   {
13689     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13690     return static_cast<Result>( d.vkGetMemoryWin32HandleNV(
13691       static_cast<VkDevice>( m_device ), static_cast<VkDeviceMemory>( memory ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( handleType ), pHandle ) );
13692   }
13693 
13694 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13695   // wrapper function for command vkGetMemoryWin32HandleNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryWin32HandleNV.html
13696   template <typename Dispatch>
getMemoryWin32HandleNV(VULKAN_HPP_NAMESPACE::DeviceMemory memory,VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType,Dispatch const & d) const13697   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<HANDLE>::type Device::getMemoryWin32HandleNV(
13698     VULKAN_HPP_NAMESPACE::DeviceMemory memory, VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagsNV handleType, Dispatch const & d ) const
13699   {
13700     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13701 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13702     VULKAN_HPP_ASSERT( d.vkGetMemoryWin32HandleNV && "Function <vkGetMemoryWin32HandleNV> requires <VK_NV_external_memory_win32>" );
13703 #    endif
13704 
13705     HANDLE                       handle;
13706     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
13707       d.vkGetMemoryWin32HandleNV( m_device, static_cast<VkDeviceMemory>( memory ), static_cast<VkExternalMemoryHandleTypeFlagsNV>( handleType ), &handle ) );
13708     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleNV" );
13709 
13710     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( handle ) );
13711   }
13712 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
13713 #endif   /*VK_USE_PLATFORM_WIN32_KHR*/
13714 
13715   //=== VK_KHR_get_physical_device_properties2 ===
13716 
13717   // wrapper function for command vkGetPhysicalDeviceFeatures2KHR, see
13718   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFeatures2KHR.html
13719   template <typename Dispatch>
getFeatures2KHR(VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 * pFeatures,Dispatch const & d) const13720   VULKAN_HPP_INLINE void PhysicalDevice::getFeatures2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 * pFeatures,
13721                                                           Dispatch const &                                d ) const VULKAN_HPP_NOEXCEPT
13722   {
13723     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13724     d.vkGetPhysicalDeviceFeatures2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), reinterpret_cast<VkPhysicalDeviceFeatures2 *>( pFeatures ) );
13725   }
13726 
13727 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13728   // wrapper function for command vkGetPhysicalDeviceFeatures2KHR, see
13729   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFeatures2KHR.html
13730   template <typename Dispatch>
13731   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2
getFeatures2KHR(Dispatch const & d) const13732                                          PhysicalDevice::getFeatures2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
13733   {
13734     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13735 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13736     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceFeatures2KHR &&
13737                        "Function <vkGetPhysicalDeviceFeatures2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
13738 #  endif
13739 
13740     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 features;
13741     d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) );
13742 
13743     return features;
13744   }
13745 
13746   // wrapper function for command vkGetPhysicalDeviceFeatures2KHR, see
13747   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFeatures2KHR.html
13748   template <typename X, typename Y, typename... Z, typename Dispatch>
13749   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getFeatures2KHR(Dispatch const & d) const13750                                          PhysicalDevice::getFeatures2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
13751   {
13752     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13753 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13754     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceFeatures2KHR &&
13755                        "Function <vkGetPhysicalDeviceFeatures2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
13756 #  endif
13757 
13758     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
13759     VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2 &  features = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceFeatures2>();
13760     d.vkGetPhysicalDeviceFeatures2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceFeatures2 *>( &features ) );
13761 
13762     return structureChain;
13763   }
13764 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
13765 
13766   // wrapper function for command vkGetPhysicalDeviceProperties2KHR, see
13767   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceProperties2KHR.html
13768   template <typename Dispatch>
getProperties2KHR(VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 * pProperties,Dispatch const & d) const13769   VULKAN_HPP_INLINE void PhysicalDevice::getProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 * pProperties,
13770                                                             Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
13771   {
13772     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13773     d.vkGetPhysicalDeviceProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ), reinterpret_cast<VkPhysicalDeviceProperties2 *>( pProperties ) );
13774   }
13775 
13776 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13777   // wrapper function for command vkGetPhysicalDeviceProperties2KHR, see
13778   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceProperties2KHR.html
13779   template <typename Dispatch>
13780   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2
getProperties2KHR(Dispatch const & d) const13781                                          PhysicalDevice::getProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
13782   {
13783     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13784 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13785     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceProperties2KHR &&
13786                        "Function <vkGetPhysicalDeviceProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
13787 #  endif
13788 
13789     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 properties;
13790     d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) );
13791 
13792     return properties;
13793   }
13794 
13795   // wrapper function for command vkGetPhysicalDeviceProperties2KHR, see
13796   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceProperties2KHR.html
13797   template <typename X, typename Y, typename... Z, typename Dispatch>
13798   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getProperties2KHR(Dispatch const & d) const13799                                          PhysicalDevice::getProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
13800   {
13801     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13802 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13803     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceProperties2KHR &&
13804                        "Function <vkGetPhysicalDeviceProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
13805 #  endif
13806 
13807     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>  structureChain;
13808     VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2 & properties = structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceProperties2>();
13809     d.vkGetPhysicalDeviceProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceProperties2 *>( &properties ) );
13810 
13811     return structureChain;
13812   }
13813 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
13814 
13815   // wrapper function for command vkGetPhysicalDeviceFormatProperties2KHR, see
13816   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFormatProperties2KHR.html
13817   template <typename Dispatch>
getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format,VULKAN_HPP_NAMESPACE::FormatProperties2 * pFormatProperties,Dispatch const & d) const13818   VULKAN_HPP_INLINE void PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format              format,
13819                                                                   VULKAN_HPP_NAMESPACE::FormatProperties2 * pFormatProperties,
13820                                                                   Dispatch const &                          d ) const VULKAN_HPP_NOEXCEPT
13821   {
13822     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13823     d.vkGetPhysicalDeviceFormatProperties2KHR(
13824       static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( pFormatProperties ) );
13825   }
13826 
13827 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13828   // wrapper function for command vkGetPhysicalDeviceFormatProperties2KHR, see
13829   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFormatProperties2KHR.html
13830   template <typename Dispatch>
13831   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::FormatProperties2
getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const13832     PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
13833   {
13834     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13835 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13836     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceFormatProperties2KHR &&
13837                        "Function <vkGetPhysicalDeviceFormatProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
13838 #  endif
13839 
13840     VULKAN_HPP_NAMESPACE::FormatProperties2 formatProperties;
13841     d.vkGetPhysicalDeviceFormatProperties2KHR(
13842       m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) );
13843 
13844     return formatProperties;
13845   }
13846 
13847   // wrapper function for command vkGetPhysicalDeviceFormatProperties2KHR, see
13848   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFormatProperties2KHR.html
13849   template <typename X, typename Y, typename... Z, typename Dispatch>
13850   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getFormatProperties2KHR(VULKAN_HPP_NAMESPACE::Format format,Dispatch const & d) const13851     PhysicalDevice::getFormatProperties2KHR( VULKAN_HPP_NAMESPACE::Format format, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
13852   {
13853     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13854 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13855     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceFormatProperties2KHR &&
13856                        "Function <vkGetPhysicalDeviceFormatProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
13857 #  endif
13858 
13859     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
13860     VULKAN_HPP_NAMESPACE::FormatProperties2 &        formatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::FormatProperties2>();
13861     d.vkGetPhysicalDeviceFormatProperties2KHR(
13862       m_physicalDevice, static_cast<VkFormat>( format ), reinterpret_cast<VkFormatProperties2 *>( &formatProperties ) );
13863 
13864     return structureChain;
13865   }
13866 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
13867 
13868   // wrapper function for command vkGetPhysicalDeviceImageFormatProperties2KHR, see
13869   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceImageFormatProperties2KHR.html
13870   template <typename Dispatch>
13871   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 * pImageFormatInfo,VULKAN_HPP_NAMESPACE::ImageFormatProperties2 * pImageFormatProperties,Dispatch const & d) const13872     PhysicalDevice::getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 * pImageFormatInfo,
13873                                                   VULKAN_HPP_NAMESPACE::ImageFormatProperties2 *               pImageFormatProperties,
13874                                                   Dispatch const &                                             d ) const VULKAN_HPP_NOEXCEPT
13875   {
13876     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13877     return static_cast<Result>( d.vkGetPhysicalDeviceImageFormatProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
13878                                                                                 reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( pImageFormatInfo ),
13879                                                                                 reinterpret_cast<VkImageFormatProperties2 *>( pImageFormatProperties ) ) );
13880   }
13881 
13882 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13883   // wrapper function for command vkGetPhysicalDeviceImageFormatProperties2KHR, see
13884   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceImageFormatProperties2KHR.html
13885   template <typename Dispatch>
13886   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>::type
getImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const13887     PhysicalDevice::getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d ) const
13888   {
13889     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13890 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13891     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceImageFormatProperties2KHR &&
13892                        "Function <vkGetPhysicalDeviceImageFormatProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
13893 #  endif
13894 
13895     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 imageFormatProperties;
13896     VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
13897       d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice,
13898                                                       reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ),
13899                                                       reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
13900     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" );
13901 
13902     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( imageFormatProperties ) );
13903   }
13904 
13905   // wrapper function for command vkGetPhysicalDeviceImageFormatProperties2KHR, see
13906   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceImageFormatProperties2KHR.html
13907   template <typename X, typename Y, typename... Z, typename Dispatch>
13908   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>>::type
getImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo,Dispatch const & d) const13909     PhysicalDevice::getImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceImageFormatInfo2 & imageFormatInfo, Dispatch const & d ) const
13910   {
13911     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13912 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13913     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceImageFormatProperties2KHR &&
13914                        "Function <vkGetPhysicalDeviceImageFormatProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
13915 #  endif
13916 
13917     StructureChain<X, Y, Z...>                     structureChain;
13918     VULKAN_HPP_NAMESPACE::ImageFormatProperties2 & imageFormatProperties = structureChain.template get<VULKAN_HPP_NAMESPACE::ImageFormatProperties2>();
13919     VULKAN_HPP_NAMESPACE::Result                   result                = static_cast<VULKAN_HPP_NAMESPACE::Result>(
13920       d.vkGetPhysicalDeviceImageFormatProperties2KHR( m_physicalDevice,
13921                                                       reinterpret_cast<const VkPhysicalDeviceImageFormatInfo2 *>( &imageFormatInfo ),
13922                                                       reinterpret_cast<VkImageFormatProperties2 *>( &imageFormatProperties ) ) );
13923     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getImageFormatProperties2KHR" );
13924 
13925     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( structureChain ) );
13926   }
13927 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
13928 
13929   // wrapper function for command vkGetPhysicalDeviceQueueFamilyProperties2KHR, see
13930   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyProperties2KHR.html
13931   template <typename Dispatch>
getQueueFamilyProperties2KHR(uint32_t * pQueueFamilyPropertyCount,VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 * pQueueFamilyProperties,Dispatch const & d) const13932   VULKAN_HPP_INLINE void PhysicalDevice::getQueueFamilyProperties2KHR( uint32_t *                                     pQueueFamilyPropertyCount,
13933                                                                        VULKAN_HPP_NAMESPACE::QueueFamilyProperties2 * pQueueFamilyProperties,
13934                                                                        Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
13935   {
13936     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13937     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR(
13938       static_cast<VkPhysicalDevice>( m_physicalDevice ), pQueueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( pQueueFamilyProperties ) );
13939   }
13940 
13941 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
13942   // wrapper function for command vkGetPhysicalDeviceQueueFamilyProperties2KHR, see
13943   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyProperties2KHR.html
13944   template <
13945     typename QueueFamilyProperties2Allocator,
13946     typename Dispatch,
13947     typename std::enable_if<std::is_same<typename QueueFamilyProperties2Allocator::value_type, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>::value, int>::type>
13948   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2, QueueFamilyProperties2Allocator>
getQueueFamilyProperties2KHR(Dispatch const & d) const13949                                          PhysicalDevice::getQueueFamilyProperties2KHR( Dispatch const & d ) const
13950   {
13951     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13952 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13953     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceQueueFamilyProperties2KHR &&
13954                        "Function <vkGetPhysicalDeviceQueueFamilyProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
13955 #  endif
13956 
13957     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2, QueueFamilyProperties2Allocator> queueFamilyProperties;
13958     uint32_t                                                                                   queueFamilyPropertyCount;
13959     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
13960     queueFamilyProperties.resize( queueFamilyPropertyCount );
13961     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR(
13962       m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
13963 
13964     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
13965     if ( queueFamilyPropertyCount < queueFamilyProperties.size() )
13966     {
13967       queueFamilyProperties.resize( queueFamilyPropertyCount );
13968     }
13969     return queueFamilyProperties;
13970   }
13971 
13972   // wrapper function for command vkGetPhysicalDeviceQueueFamilyProperties2KHR, see
13973   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyProperties2KHR.html
13974   template <
13975     typename QueueFamilyProperties2Allocator,
13976     typename Dispatch,
13977     typename std::enable_if<std::is_same<typename QueueFamilyProperties2Allocator::value_type, VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>::value, int>::type>
13978   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2, QueueFamilyProperties2Allocator>
getQueueFamilyProperties2KHR(QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator,Dispatch const & d) const13979     PhysicalDevice::getQueueFamilyProperties2KHR( QueueFamilyProperties2Allocator & queueFamilyProperties2Allocator, Dispatch const & d ) const
13980   {
13981     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
13982 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
13983     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceQueueFamilyProperties2KHR &&
13984                        "Function <vkGetPhysicalDeviceQueueFamilyProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
13985 #  endif
13986 
13987     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2, QueueFamilyProperties2Allocator> queueFamilyProperties( queueFamilyProperties2Allocator );
13988     uint32_t                                                                                   queueFamilyPropertyCount;
13989     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
13990     queueFamilyProperties.resize( queueFamilyPropertyCount );
13991     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR(
13992       m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
13993 
13994     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
13995     if ( queueFamilyPropertyCount < queueFamilyProperties.size() )
13996     {
13997       queueFamilyProperties.resize( queueFamilyPropertyCount );
13998     }
13999     return queueFamilyProperties;
14000   }
14001 
14002   // wrapper function for command vkGetPhysicalDeviceQueueFamilyProperties2KHR, see
14003   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyProperties2KHR.html
14004   template <typename StructureChain,
14005             typename StructureChainAllocator,
14006             typename Dispatch,
14007             typename std::enable_if<std::is_same<typename StructureChainAllocator::value_type, StructureChain>::value, int>::type>
14008   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<StructureChain, StructureChainAllocator>
getQueueFamilyProperties2KHR(Dispatch const & d) const14009                                          PhysicalDevice::getQueueFamilyProperties2KHR( Dispatch const & d ) const
14010   {
14011     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14012 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14013     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceQueueFamilyProperties2KHR &&
14014                        "Function <vkGetPhysicalDeviceQueueFamilyProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
14015 #  endif
14016 
14017     std::vector<StructureChain, StructureChainAllocator>      structureChains;
14018     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties;
14019     uint32_t                                                  queueFamilyPropertyCount;
14020     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
14021     structureChains.resize( queueFamilyPropertyCount );
14022     queueFamilyProperties.resize( queueFamilyPropertyCount );
14023     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
14024     {
14025       queueFamilyProperties[i].pNext = structureChains[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
14026     }
14027     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR(
14028       m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
14029 
14030     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
14031     if ( queueFamilyPropertyCount < queueFamilyProperties.size() )
14032     {
14033       structureChains.resize( queueFamilyPropertyCount );
14034     }
14035     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
14036     {
14037       structureChains[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = queueFamilyProperties[i];
14038     }
14039     return structureChains;
14040   }
14041 
14042   // wrapper function for command vkGetPhysicalDeviceQueueFamilyProperties2KHR, see
14043   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyProperties2KHR.html
14044   template <typename StructureChain,
14045             typename StructureChainAllocator,
14046             typename Dispatch,
14047             typename std::enable_if<std::is_same<typename StructureChainAllocator::value_type, StructureChain>::value, int>::type>
14048   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<StructureChain, StructureChainAllocator>
getQueueFamilyProperties2KHR(StructureChainAllocator & structureChainAllocator,Dispatch const & d) const14049     PhysicalDevice::getQueueFamilyProperties2KHR( StructureChainAllocator & structureChainAllocator, Dispatch const & d ) const
14050   {
14051     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14052 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14053     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceQueueFamilyProperties2KHR &&
14054                        "Function <vkGetPhysicalDeviceQueueFamilyProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
14055 #  endif
14056 
14057     std::vector<StructureChain, StructureChainAllocator>      structureChains( structureChainAllocator );
14058     std::vector<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2> queueFamilyProperties;
14059     uint32_t                                                  queueFamilyPropertyCount;
14060     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR( m_physicalDevice, &queueFamilyPropertyCount, nullptr );
14061     structureChains.resize( queueFamilyPropertyCount );
14062     queueFamilyProperties.resize( queueFamilyPropertyCount );
14063     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
14064     {
14065       queueFamilyProperties[i].pNext = structureChains[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>().pNext;
14066     }
14067     d.vkGetPhysicalDeviceQueueFamilyProperties2KHR(
14068       m_physicalDevice, &queueFamilyPropertyCount, reinterpret_cast<VkQueueFamilyProperties2 *>( queueFamilyProperties.data() ) );
14069 
14070     VULKAN_HPP_ASSERT( queueFamilyPropertyCount <= queueFamilyProperties.size() );
14071     if ( queueFamilyPropertyCount < queueFamilyProperties.size() )
14072     {
14073       structureChains.resize( queueFamilyPropertyCount );
14074     }
14075     for ( uint32_t i = 0; i < queueFamilyPropertyCount; i++ )
14076     {
14077       structureChains[i].template get<VULKAN_HPP_NAMESPACE::QueueFamilyProperties2>() = queueFamilyProperties[i];
14078     }
14079     return structureChains;
14080   }
14081 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
14082 
14083   // wrapper function for command vkGetPhysicalDeviceMemoryProperties2KHR, see
14084   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceMemoryProperties2KHR.html
14085   template <typename Dispatch>
getMemoryProperties2KHR(VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 * pMemoryProperties,Dispatch const & d) const14086   VULKAN_HPP_INLINE void PhysicalDevice::getMemoryProperties2KHR( VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 * pMemoryProperties,
14087                                                                   Dispatch const &                                        d ) const VULKAN_HPP_NOEXCEPT
14088   {
14089     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14090     d.vkGetPhysicalDeviceMemoryProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
14091                                                reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( pMemoryProperties ) );
14092   }
14093 
14094 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14095   // wrapper function for command vkGetPhysicalDeviceMemoryProperties2KHR, see
14096   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceMemoryProperties2KHR.html
14097   template <typename Dispatch>
14098   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2
getMemoryProperties2KHR(Dispatch const & d) const14099                                          PhysicalDevice::getMemoryProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
14100   {
14101     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14102 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14103     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceMemoryProperties2KHR &&
14104                        "Function <vkGetPhysicalDeviceMemoryProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
14105 #  endif
14106 
14107     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 memoryProperties;
14108     d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) );
14109 
14110     return memoryProperties;
14111   }
14112 
14113   // wrapper function for command vkGetPhysicalDeviceMemoryProperties2KHR, see
14114   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceMemoryProperties2KHR.html
14115   template <typename X, typename Y, typename... Z, typename Dispatch>
14116   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getMemoryProperties2KHR(Dispatch const & d) const14117                                          PhysicalDevice::getMemoryProperties2KHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
14118   {
14119     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14120 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14121     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceMemoryProperties2KHR &&
14122                        "Function <vkGetPhysicalDeviceMemoryProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
14123 #  endif
14124 
14125     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>        structureChain;
14126     VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2 & memoryProperties =
14127       structureChain.template get<VULKAN_HPP_NAMESPACE::PhysicalDeviceMemoryProperties2>();
14128     d.vkGetPhysicalDeviceMemoryProperties2KHR( m_physicalDevice, reinterpret_cast<VkPhysicalDeviceMemoryProperties2 *>( &memoryProperties ) );
14129 
14130     return structureChain;
14131   }
14132 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
14133 
14134   // wrapper function for command vkGetPhysicalDeviceSparseImageFormatProperties2KHR, see
14135   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSparseImageFormatProperties2KHR.html
14136   template <typename Dispatch>
getSparseImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 * pProperties,Dispatch const & d) const14137   VULKAN_HPP_INLINE void PhysicalDevice::getSparseImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 * pFormatInfo,
14138                                                                              uint32_t *                                                         pPropertyCount,
14139                                                                              VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2 *               pProperties,
14140                                                                              Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
14141   {
14142     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14143     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
14144                                                           reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( pFormatInfo ),
14145                                                           pPropertyCount,
14146                                                           reinterpret_cast<VkSparseImageFormatProperties2 *>( pProperties ) );
14147   }
14148 
14149 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14150   // wrapper function for command vkGetPhysicalDeviceSparseImageFormatProperties2KHR, see
14151   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSparseImageFormatProperties2KHR.html
14152   template <
14153     typename SparseImageFormatProperties2Allocator,
14154     typename Dispatch,
14155     typename std::enable_if<std::is_same<typename SparseImageFormatProperties2Allocator::value_type, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2>::value,
14156                             int>::type>
14157   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2, SparseImageFormatProperties2Allocator>
getSparseImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo,Dispatch const & d) const14158     PhysicalDevice::getSparseImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo,
14159                                                         Dispatch const &                                                   d ) const
14160   {
14161     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14162 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14163     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR &&
14164                        "Function <vkGetPhysicalDeviceSparseImageFormatProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
14165 #  endif
14166 
14167     std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties;
14168     uint32_t                                                                                               propertyCount;
14169     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
14170       m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, nullptr );
14171     properties.resize( propertyCount );
14172     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice,
14173                                                           reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ),
14174                                                           &propertyCount,
14175                                                           reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) );
14176 
14177     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
14178     if ( propertyCount < properties.size() )
14179     {
14180       properties.resize( propertyCount );
14181     }
14182     return properties;
14183   }
14184 
14185   // wrapper function for command vkGetPhysicalDeviceSparseImageFormatProperties2KHR, see
14186   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSparseImageFormatProperties2KHR.html
14187   template <
14188     typename SparseImageFormatProperties2Allocator,
14189     typename Dispatch,
14190     typename std::enable_if<std::is_same<typename SparseImageFormatProperties2Allocator::value_type, VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2>::value,
14191                             int>::type>
14192   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2, SparseImageFormatProperties2Allocator>
getSparseImageFormatProperties2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo,SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator,Dispatch const & d) const14193     PhysicalDevice::getSparseImageFormatProperties2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSparseImageFormatInfo2 & formatInfo,
14194                                                         SparseImageFormatProperties2Allocator & sparseImageFormatProperties2Allocator,
14195                                                         Dispatch const &                        d ) const
14196   {
14197     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14198 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14199     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR &&
14200                        "Function <vkGetPhysicalDeviceSparseImageFormatProperties2KHR> requires <VK_KHR_get_physical_device_properties2> or <VK_VERSION_1_1>" );
14201 #  endif
14202 
14203     std::vector<VULKAN_HPP_NAMESPACE::SparseImageFormatProperties2, SparseImageFormatProperties2Allocator> properties( sparseImageFormatProperties2Allocator );
14204     uint32_t                                                                                               propertyCount;
14205     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR(
14206       m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ), &propertyCount, nullptr );
14207     properties.resize( propertyCount );
14208     d.vkGetPhysicalDeviceSparseImageFormatProperties2KHR( m_physicalDevice,
14209                                                           reinterpret_cast<const VkPhysicalDeviceSparseImageFormatInfo2 *>( &formatInfo ),
14210                                                           &propertyCount,
14211                                                           reinterpret_cast<VkSparseImageFormatProperties2 *>( properties.data() ) );
14212 
14213     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
14214     if ( propertyCount < properties.size() )
14215     {
14216       properties.resize( propertyCount );
14217     }
14218     return properties;
14219   }
14220 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
14221 
14222   //=== VK_KHR_device_group ===
14223 
14224   // wrapper function for command vkGetDeviceGroupPeerMemoryFeaturesKHR, see
14225   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceGroupPeerMemoryFeaturesKHR.html
14226   template <typename Dispatch>
getGroupPeerMemoryFeaturesKHR(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags * pPeerMemoryFeatures,Dispatch const & d) const14227   VULKAN_HPP_INLINE void Device::getGroupPeerMemoryFeaturesKHR( uint32_t                                       heapIndex,
14228                                                                 uint32_t                                       localDeviceIndex,
14229                                                                 uint32_t                                       remoteDeviceIndex,
14230                                                                 VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags * pPeerMemoryFeatures,
14231                                                                 Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
14232   {
14233     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14234     d.vkGetDeviceGroupPeerMemoryFeaturesKHR(
14235       static_cast<VkDevice>( m_device ), heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags *>( pPeerMemoryFeatures ) );
14236   }
14237 
14238 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14239   // wrapper function for command vkGetDeviceGroupPeerMemoryFeaturesKHR, see
14240   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceGroupPeerMemoryFeaturesKHR.html
14241   template <typename Dispatch>
getGroupPeerMemoryFeaturesKHR(uint32_t heapIndex,uint32_t localDeviceIndex,uint32_t remoteDeviceIndex,Dispatch const & d) const14242   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags Device::getGroupPeerMemoryFeaturesKHR(
14243     uint32_t heapIndex, uint32_t localDeviceIndex, uint32_t remoteDeviceIndex, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
14244   {
14245     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14246 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14247     VULKAN_HPP_ASSERT( d.vkGetDeviceGroupPeerMemoryFeaturesKHR &&
14248                        "Function <vkGetDeviceGroupPeerMemoryFeaturesKHR> requires <VK_KHR_device_group> or <VK_VERSION_1_1>" );
14249 #  endif
14250 
14251     VULKAN_HPP_NAMESPACE::PeerMemoryFeatureFlags peerMemoryFeatures;
14252     d.vkGetDeviceGroupPeerMemoryFeaturesKHR(
14253       m_device, heapIndex, localDeviceIndex, remoteDeviceIndex, reinterpret_cast<VkPeerMemoryFeatureFlags *>( &peerMemoryFeatures ) );
14254 
14255     return peerMemoryFeatures;
14256   }
14257 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
14258 
14259   // wrapper function for command vkCmdSetDeviceMaskKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDeviceMaskKHR.html
14260   template <typename Dispatch>
setDeviceMaskKHR(uint32_t deviceMask,Dispatch const & d) const14261   VULKAN_HPP_INLINE void CommandBuffer::setDeviceMaskKHR( uint32_t deviceMask, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
14262   {
14263     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14264     d.vkCmdSetDeviceMaskKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), deviceMask );
14265   }
14266 
14267   // wrapper function for command vkCmdDispatchBaseKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDispatchBaseKHR.html
14268   template <typename Dispatch>
dispatchBaseKHR(uint32_t baseGroupX,uint32_t baseGroupY,uint32_t baseGroupZ,uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ,Dispatch const & d) const14269   VULKAN_HPP_INLINE void CommandBuffer::dispatchBaseKHR( uint32_t         baseGroupX,
14270                                                          uint32_t         baseGroupY,
14271                                                          uint32_t         baseGroupZ,
14272                                                          uint32_t         groupCountX,
14273                                                          uint32_t         groupCountY,
14274                                                          uint32_t         groupCountZ,
14275                                                          Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
14276   {
14277     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14278     d.vkCmdDispatchBaseKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), baseGroupX, baseGroupY, baseGroupZ, groupCountX, groupCountY, groupCountZ );
14279   }
14280 
14281 #if defined( VK_USE_PLATFORM_VI_NN )
14282   //=== VK_NN_vi_surface ===
14283 
14284   // wrapper function for command vkCreateViSurfaceNN, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateViSurfaceNN.html
14285   template <typename Dispatch>
createViSurfaceNN(const VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const14286   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createViSurfaceNN( const VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN * pCreateInfo,
14287                                                                              const VULKAN_HPP_NAMESPACE::AllocationCallbacks *   pAllocator,
14288                                                                              VULKAN_HPP_NAMESPACE::SurfaceKHR *                  pSurface,
14289                                                                              Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
14290   {
14291     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14292     return static_cast<Result>( d.vkCreateViSurfaceNN( static_cast<VkInstance>( m_instance ),
14293                                                        reinterpret_cast<const VkViSurfaceCreateInfoNN *>( pCreateInfo ),
14294                                                        reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
14295                                                        reinterpret_cast<VkSurfaceKHR *>( pSurface ) ) );
14296   }
14297 
14298 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14299   // wrapper function for command vkCreateViSurfaceNN, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateViSurfaceNN.html
14300   template <typename Dispatch>
14301   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type
createViSurfaceNN(const VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const14302                        Instance::createViSurfaceNN( const VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN &       createInfo,
14303                                  Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
14304                                  Dispatch const &                                          d ) const
14305   {
14306     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14307 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14308     VULKAN_HPP_ASSERT( d.vkCreateViSurfaceNN && "Function <vkCreateViSurfaceNN> requires <VK_NN_vi_surface>" );
14309 #    endif
14310 
14311     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
14312     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
14313       d.vkCreateViSurfaceNN( m_instance,
14314                              reinterpret_cast<const VkViSurfaceCreateInfoNN *>( &createInfo ),
14315                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
14316                              reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
14317     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createViSurfaceNN" );
14318 
14319     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surface ) );
14320   }
14321 
14322 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
14323   // wrapper function for command vkCreateViSurfaceNN, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateViSurfaceNN.html
14324   template <typename Dispatch>
14325   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type
createViSurfaceNNUnique(const VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const14326                        Instance::createViSurfaceNNUnique( const VULKAN_HPP_NAMESPACE::ViSurfaceCreateInfoNN &       createInfo,
14327                                        Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
14328                                        Dispatch const &                                          d ) const
14329   {
14330     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14331 #      if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14332     VULKAN_HPP_ASSERT( d.vkCreateViSurfaceNN && "Function <vkCreateViSurfaceNN> requires <VK_NN_vi_surface>" );
14333 #      endif
14334 
14335     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
14336     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
14337       d.vkCreateViSurfaceNN( m_instance,
14338                              reinterpret_cast<const VkViSurfaceCreateInfoNN *>( &createInfo ),
14339                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
14340                              reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
14341     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createViSurfaceNNUnique" );
14342 
14343     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
14344       result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, detail::ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
14345   }
14346 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
14347 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
14348 #endif     /*VK_USE_PLATFORM_VI_NN*/
14349 
14350   //=== VK_KHR_maintenance1 ===
14351 
14352   // wrapper function for command vkTrimCommandPoolKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkTrimCommandPoolKHR.html
14353   template <typename Dispatch>
trimCommandPoolKHR(VULKAN_HPP_NAMESPACE::CommandPool commandPool,VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags,Dispatch const & d) const14354   VULKAN_HPP_INLINE void Device::trimCommandPoolKHR( VULKAN_HPP_NAMESPACE::CommandPool          commandPool,
14355                                                      VULKAN_HPP_NAMESPACE::CommandPoolTrimFlags flags,
14356                                                      Dispatch const &                           d ) const VULKAN_HPP_NOEXCEPT
14357   {
14358     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14359     d.vkTrimCommandPoolKHR( static_cast<VkDevice>( m_device ), static_cast<VkCommandPool>( commandPool ), static_cast<VkCommandPoolTrimFlags>( flags ) );
14360   }
14361 
14362   //=== VK_KHR_device_group_creation ===
14363 
14364   // wrapper function for command vkEnumeratePhysicalDeviceGroupsKHR, see
14365   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDeviceGroupsKHR.html
14366   template <typename Dispatch>
14367   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
enumeratePhysicalDeviceGroupsKHR(uint32_t * pPhysicalDeviceGroupCount,VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties,Dispatch const & d) const14368     Instance::enumeratePhysicalDeviceGroupsKHR( uint32_t *                                            pPhysicalDeviceGroupCount,
14369                                                 VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties * pPhysicalDeviceGroupProperties,
14370                                                 Dispatch const &                                      d ) const VULKAN_HPP_NOEXCEPT
14371   {
14372     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14373     return static_cast<Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( static_cast<VkInstance>( m_instance ),
14374                                                                       pPhysicalDeviceGroupCount,
14375                                                                       reinterpret_cast<VkPhysicalDeviceGroupProperties *>( pPhysicalDeviceGroupProperties ) ) );
14376   }
14377 
14378 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14379   // wrapper function for command vkEnumeratePhysicalDeviceGroupsKHR, see
14380   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDeviceGroupsKHR.html
14381   template <typename PhysicalDeviceGroupPropertiesAllocator,
14382             typename Dispatch,
14383             typename std::enable_if<
14384               std::is_same<typename PhysicalDeviceGroupPropertiesAllocator::value_type, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties>::value,
14385               int>::type>
14386   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
14387     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type
enumeratePhysicalDeviceGroupsKHR(Dispatch const & d) const14388     Instance::enumeratePhysicalDeviceGroupsKHR( Dispatch const & d ) const
14389   {
14390     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14391 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14392     VULKAN_HPP_ASSERT( d.vkEnumeratePhysicalDeviceGroupsKHR &&
14393                        "Function <vkEnumeratePhysicalDeviceGroupsKHR> requires <VK_KHR_device_group_creation> or <VK_VERSION_1_1>" );
14394 #  endif
14395 
14396     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator> physicalDeviceGroupProperties;
14397     uint32_t                                                                                                 physicalDeviceGroupCount;
14398     VULKAN_HPP_NAMESPACE::Result                                                                             result;
14399     do
14400     {
14401       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) );
14402       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceGroupCount )
14403       {
14404         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
14405         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDeviceGroupsKHR(
14406           m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) ) );
14407       }
14408     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
14409     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroupsKHR" );
14410     VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
14411     if ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() )
14412     {
14413       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
14414     }
14415     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( physicalDeviceGroupProperties ) );
14416   }
14417 
14418   // wrapper function for command vkEnumeratePhysicalDeviceGroupsKHR, see
14419   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDeviceGroupsKHR.html
14420   template <typename PhysicalDeviceGroupPropertiesAllocator,
14421             typename Dispatch,
14422             typename std::enable_if<
14423               std::is_same<typename PhysicalDeviceGroupPropertiesAllocator::value_type, VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties>::value,
14424               int>::type>
14425   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
14426     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator>>::type
enumeratePhysicalDeviceGroupsKHR(PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator,Dispatch const & d) const14427     Instance::enumeratePhysicalDeviceGroupsKHR( PhysicalDeviceGroupPropertiesAllocator & physicalDeviceGroupPropertiesAllocator, Dispatch const & d ) const
14428   {
14429     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14430 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14431     VULKAN_HPP_ASSERT( d.vkEnumeratePhysicalDeviceGroupsKHR &&
14432                        "Function <vkEnumeratePhysicalDeviceGroupsKHR> requires <VK_KHR_device_group_creation> or <VK_VERSION_1_1>" );
14433 #  endif
14434 
14435     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceGroupProperties, PhysicalDeviceGroupPropertiesAllocator> physicalDeviceGroupProperties(
14436       physicalDeviceGroupPropertiesAllocator );
14437     uint32_t                     physicalDeviceGroupCount;
14438     VULKAN_HPP_NAMESPACE::Result result;
14439     do
14440     {
14441       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDeviceGroupsKHR( m_instance, &physicalDeviceGroupCount, nullptr ) );
14442       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && physicalDeviceGroupCount )
14443       {
14444         physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
14445         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDeviceGroupsKHR(
14446           m_instance, &physicalDeviceGroupCount, reinterpret_cast<VkPhysicalDeviceGroupProperties *>( physicalDeviceGroupProperties.data() ) ) );
14447       }
14448     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
14449     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::enumeratePhysicalDeviceGroupsKHR" );
14450     VULKAN_HPP_ASSERT( physicalDeviceGroupCount <= physicalDeviceGroupProperties.size() );
14451     if ( physicalDeviceGroupCount < physicalDeviceGroupProperties.size() )
14452     {
14453       physicalDeviceGroupProperties.resize( physicalDeviceGroupCount );
14454     }
14455     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( physicalDeviceGroupProperties ) );
14456   }
14457 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
14458 
14459   //=== VK_KHR_external_memory_capabilities ===
14460 
14461   // wrapper function for command vkGetPhysicalDeviceExternalBufferPropertiesKHR, see
14462   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalBufferPropertiesKHR.html
14463   template <typename Dispatch>
getExternalBufferPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo * pExternalBufferInfo,VULKAN_HPP_NAMESPACE::ExternalBufferProperties * pExternalBufferProperties,Dispatch const & d) const14464   VULKAN_HPP_INLINE void PhysicalDevice::getExternalBufferPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo * pExternalBufferInfo,
14465                                                                          VULKAN_HPP_NAMESPACE::ExternalBufferProperties * pExternalBufferProperties,
14466                                                                          Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
14467   {
14468     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14469     d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
14470                                                       reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( pExternalBufferInfo ),
14471                                                       reinterpret_cast<VkExternalBufferProperties *>( pExternalBufferProperties ) );
14472   }
14473 
14474 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14475   // wrapper function for command vkGetPhysicalDeviceExternalBufferPropertiesKHR, see
14476   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalBufferPropertiesKHR.html
14477   template <typename Dispatch>
14478   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalBufferProperties
getExternalBufferPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo & externalBufferInfo,Dispatch const & d) const14479     PhysicalDevice::getExternalBufferPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalBufferInfo & externalBufferInfo,
14480                                                     Dispatch const &                                               d ) const VULKAN_HPP_NOEXCEPT
14481   {
14482     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14483 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14484     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceExternalBufferPropertiesKHR &&
14485                        "Function <vkGetPhysicalDeviceExternalBufferPropertiesKHR> requires <VK_KHR_external_memory_capabilities> or <VK_VERSION_1_1>" );
14486 #  endif
14487 
14488     VULKAN_HPP_NAMESPACE::ExternalBufferProperties externalBufferProperties;
14489     d.vkGetPhysicalDeviceExternalBufferPropertiesKHR( m_physicalDevice,
14490                                                       reinterpret_cast<const VkPhysicalDeviceExternalBufferInfo *>( &externalBufferInfo ),
14491                                                       reinterpret_cast<VkExternalBufferProperties *>( &externalBufferProperties ) );
14492 
14493     return externalBufferProperties;
14494   }
14495 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
14496 
14497 #if defined( VK_USE_PLATFORM_WIN32_KHR )
14498   //=== VK_KHR_external_memory_win32 ===
14499 
14500   // wrapper function for command vkGetMemoryWin32HandleKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryWin32HandleKHR.html
14501   template <typename Dispatch>
getMemoryWin32HandleKHR(const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,Dispatch const & d) const14502   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryWin32HandleKHR( const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR * pGetWin32HandleInfo,
14503                                                                                  HANDLE *                                                  pHandle,
14504                                                                                  Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
14505   {
14506     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14507     return static_cast<Result>( d.vkGetMemoryWin32HandleKHR(
14508       static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR *>( pGetWin32HandleInfo ), pHandle ) );
14509   }
14510 
14511 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14512   // wrapper function for command vkGetMemoryWin32HandleKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryWin32HandleKHR.html
14513   template <typename Dispatch>
14514   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<HANDLE>::type
getMemoryWin32HandleKHR(const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR & getWin32HandleInfo,Dispatch const & d) const14515                        Device::getMemoryWin32HandleKHR( const VULKAN_HPP_NAMESPACE::MemoryGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d ) const
14516   {
14517     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14518 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14519     VULKAN_HPP_ASSERT( d.vkGetMemoryWin32HandleKHR && "Function <vkGetMemoryWin32HandleKHR> requires <VK_KHR_external_memory_win32>" );
14520 #    endif
14521 
14522     HANDLE                       handle;
14523     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
14524       d.vkGetMemoryWin32HandleKHR( m_device, reinterpret_cast<const VkMemoryGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) );
14525     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandleKHR" );
14526 
14527     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( handle ) );
14528   }
14529 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
14530 
14531   // wrapper function for command vkGetMemoryWin32HandlePropertiesKHR, see
14532   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryWin32HandlePropertiesKHR.html
14533   template <typename Dispatch>
14534   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getMemoryWin32HandlePropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties,Dispatch const & d) const14535     Device::getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,
14536                                                HANDLE                                                 handle,
14537                                                VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR * pMemoryWin32HandleProperties,
14538                                                Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
14539   {
14540     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14541     return static_cast<Result>( d.vkGetMemoryWin32HandlePropertiesKHR( static_cast<VkDevice>( m_device ),
14542                                                                        static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
14543                                                                        handle,
14544                                                                        reinterpret_cast<VkMemoryWin32HandlePropertiesKHR *>( pMemoryWin32HandleProperties ) ) );
14545   }
14546 
14547 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14548   // wrapper function for command vkGetMemoryWin32HandlePropertiesKHR, see
14549   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryWin32HandlePropertiesKHR.html
14550   template <typename Dispatch>
14551   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR>::type
getMemoryWin32HandlePropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,HANDLE handle,Dispatch const & d) const14552     Device::getMemoryWin32HandlePropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, HANDLE handle, Dispatch const & d ) const
14553   {
14554     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14555 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14556     VULKAN_HPP_ASSERT( d.vkGetMemoryWin32HandlePropertiesKHR && "Function <vkGetMemoryWin32HandlePropertiesKHR> requires <VK_KHR_external_memory_win32>" );
14557 #    endif
14558 
14559     VULKAN_HPP_NAMESPACE::MemoryWin32HandlePropertiesKHR memoryWin32HandleProperties;
14560     VULKAN_HPP_NAMESPACE::Result                         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
14561       d.vkGetMemoryWin32HandlePropertiesKHR( m_device,
14562                                              static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
14563                                              handle,
14564                                              reinterpret_cast<VkMemoryWin32HandlePropertiesKHR *>( &memoryWin32HandleProperties ) ) );
14565     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryWin32HandlePropertiesKHR" );
14566 
14567     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( memoryWin32HandleProperties ) );
14568   }
14569 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
14570 #endif   /*VK_USE_PLATFORM_WIN32_KHR*/
14571 
14572   //=== VK_KHR_external_memory_fd ===
14573 
14574   // wrapper function for command vkGetMemoryFdKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryFdKHR.html
14575   template <typename Dispatch>
getMemoryFdKHR(const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR * pGetFdInfo,int * pFd,Dispatch const & d) const14576   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryFdKHR( const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR * pGetFdInfo,
14577                                                                         int *                                            pFd,
14578                                                                         Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
14579   {
14580     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14581     return static_cast<Result>( d.vkGetMemoryFdKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryGetFdInfoKHR *>( pGetFdInfo ), pFd ) );
14582   }
14583 
14584 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14585   // wrapper function for command vkGetMemoryFdKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryFdKHR.html
14586   template <typename Dispatch>
getMemoryFdKHR(const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR & getFdInfo,Dispatch const & d) const14587   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<int>::type Device::getMemoryFdKHR( const VULKAN_HPP_NAMESPACE::MemoryGetFdInfoKHR & getFdInfo,
14588                                                                                                      Dispatch const &                                 d ) const
14589   {
14590     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14591 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14592     VULKAN_HPP_ASSERT( d.vkGetMemoryFdKHR && "Function <vkGetMemoryFdKHR> requires <VK_KHR_external_memory_fd>" );
14593 #  endif
14594 
14595     int                          fd;
14596     VULKAN_HPP_NAMESPACE::Result result =
14597       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetMemoryFdKHR( m_device, reinterpret_cast<const VkMemoryGetFdInfoKHR *>( &getFdInfo ), &fd ) );
14598     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdKHR" );
14599 
14600     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( fd ) );
14601   }
14602 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
14603 
14604   // wrapper function for command vkGetMemoryFdPropertiesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryFdPropertiesKHR.html
14605   template <typename Dispatch>
getMemoryFdPropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,int fd,VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR * pMemoryFdProperties,Dispatch const & d) const14606   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,
14607                                                                                   int                                                    fd,
14608                                                                                   VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR *          pMemoryFdProperties,
14609                                                                                   Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
14610   {
14611     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14612     return static_cast<Result>( d.vkGetMemoryFdPropertiesKHR( static_cast<VkDevice>( m_device ),
14613                                                               static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
14614                                                               fd,
14615                                                               reinterpret_cast<VkMemoryFdPropertiesKHR *>( pMemoryFdProperties ) ) );
14616   }
14617 
14618 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14619   // wrapper function for command vkGetMemoryFdPropertiesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryFdPropertiesKHR.html
14620   template <typename Dispatch>
14621   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR>::type
getMemoryFdPropertiesKHR(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,int fd,Dispatch const & d) const14622                        Device::getMemoryFdPropertiesKHR( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType, int fd, Dispatch const & d ) const
14623   {
14624     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14625 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14626     VULKAN_HPP_ASSERT( d.vkGetMemoryFdPropertiesKHR && "Function <vkGetMemoryFdPropertiesKHR> requires <VK_KHR_external_memory_fd>" );
14627 #  endif
14628 
14629     VULKAN_HPP_NAMESPACE::MemoryFdPropertiesKHR memoryFdProperties;
14630     VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetMemoryFdPropertiesKHR(
14631       m_device, static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ), fd, reinterpret_cast<VkMemoryFdPropertiesKHR *>( &memoryFdProperties ) ) );
14632     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryFdPropertiesKHR" );
14633 
14634     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( memoryFdProperties ) );
14635   }
14636 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
14637 
14638   //=== VK_KHR_external_semaphore_capabilities ===
14639 
14640   // wrapper function for command vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, see
14641   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalSemaphorePropertiesKHR.html
14642   template <typename Dispatch>
14643   VULKAN_HPP_INLINE void
getExternalSemaphorePropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties * pExternalSemaphoreProperties,Dispatch const & d) const14644     PhysicalDevice::getExternalSemaphorePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo * pExternalSemaphoreInfo,
14645                                                        VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties *               pExternalSemaphoreProperties,
14646                                                        Dispatch const &                                                  d ) const VULKAN_HPP_NOEXCEPT
14647   {
14648     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14649     d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
14650                                                          reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( pExternalSemaphoreInfo ),
14651                                                          reinterpret_cast<VkExternalSemaphoreProperties *>( pExternalSemaphoreProperties ) );
14652   }
14653 
14654 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14655   // wrapper function for command vkGetPhysicalDeviceExternalSemaphorePropertiesKHR, see
14656   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalSemaphorePropertiesKHR.html
14657   template <typename Dispatch>
14658   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties
getExternalSemaphorePropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo,Dispatch const & d) const14659     PhysicalDevice::getExternalSemaphorePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalSemaphoreInfo & externalSemaphoreInfo,
14660                                                        Dispatch const &                                                  d ) const VULKAN_HPP_NOEXCEPT
14661   {
14662     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14663 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14664     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR &&
14665                        "Function <vkGetPhysicalDeviceExternalSemaphorePropertiesKHR> requires <VK_KHR_external_semaphore_capabilities> or <VK_VERSION_1_1>" );
14666 #  endif
14667 
14668     VULKAN_HPP_NAMESPACE::ExternalSemaphoreProperties externalSemaphoreProperties;
14669     d.vkGetPhysicalDeviceExternalSemaphorePropertiesKHR( m_physicalDevice,
14670                                                          reinterpret_cast<const VkPhysicalDeviceExternalSemaphoreInfo *>( &externalSemaphoreInfo ),
14671                                                          reinterpret_cast<VkExternalSemaphoreProperties *>( &externalSemaphoreProperties ) );
14672 
14673     return externalSemaphoreProperties;
14674   }
14675 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
14676 
14677 #if defined( VK_USE_PLATFORM_WIN32_KHR )
14678   //=== VK_KHR_external_semaphore_win32 ===
14679 
14680   // wrapper function for command vkImportSemaphoreWin32HandleKHR, see
14681   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportSemaphoreWin32HandleKHR.html
14682   template <typename Dispatch>
importSemaphoreWin32HandleKHR(const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo,Dispatch const & d) const14683   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importSemaphoreWin32HandleKHR(
14684     const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR * pImportSemaphoreWin32HandleInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
14685   {
14686     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14687     return static_cast<Result>( d.vkImportSemaphoreWin32HandleKHR(
14688       static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR *>( pImportSemaphoreWin32HandleInfo ) ) );
14689   }
14690 
14691 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14692   // wrapper function for command vkImportSemaphoreWin32HandleKHR, see
14693   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportSemaphoreWin32HandleKHR.html
14694   template <typename Dispatch>
14695   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
importSemaphoreWin32HandleKHR(const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo,Dispatch const & d) const14696     Device::importSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreWin32HandleInfoKHR & importSemaphoreWin32HandleInfo,
14697                                            Dispatch const &                                                d ) const
14698   {
14699     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14700 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14701     VULKAN_HPP_ASSERT( d.vkImportSemaphoreWin32HandleKHR && "Function <vkImportSemaphoreWin32HandleKHR> requires <VK_KHR_external_semaphore_win32>" );
14702 #    endif
14703 
14704     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
14705       d.vkImportSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkImportSemaphoreWin32HandleInfoKHR *>( &importSemaphoreWin32HandleInfo ) ) );
14706     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreWin32HandleKHR" );
14707 
14708     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
14709   }
14710 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
14711 
14712   // wrapper function for command vkGetSemaphoreWin32HandleKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreWin32HandleKHR.html
14713   template <typename Dispatch>
getSemaphoreWin32HandleKHR(const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,Dispatch const & d) const14714   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreWin32HandleKHR(
14715     const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR * pGetWin32HandleInfo, HANDLE * pHandle, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
14716   {
14717     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14718     return static_cast<Result>( d.vkGetSemaphoreWin32HandleKHR(
14719       static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR *>( pGetWin32HandleInfo ), pHandle ) );
14720   }
14721 
14722 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14723   // wrapper function for command vkGetSemaphoreWin32HandleKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreWin32HandleKHR.html
14724   template <typename Dispatch>
14725   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<HANDLE>::type
getSemaphoreWin32HandleKHR(const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo,Dispatch const & d) const14726     Device::getSemaphoreWin32HandleKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d ) const
14727   {
14728     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14729 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14730     VULKAN_HPP_ASSERT( d.vkGetSemaphoreWin32HandleKHR && "Function <vkGetSemaphoreWin32HandleKHR> requires <VK_KHR_external_semaphore_win32>" );
14731 #    endif
14732 
14733     HANDLE                       handle;
14734     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
14735       d.vkGetSemaphoreWin32HandleKHR( m_device, reinterpret_cast<const VkSemaphoreGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) );
14736     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreWin32HandleKHR" );
14737 
14738     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( handle ) );
14739   }
14740 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
14741 #endif   /*VK_USE_PLATFORM_WIN32_KHR*/
14742 
14743   //=== VK_KHR_external_semaphore_fd ===
14744 
14745   // wrapper function for command vkImportSemaphoreFdKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportSemaphoreFdKHR.html
14746   template <typename Dispatch>
importSemaphoreFdKHR(const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo,Dispatch const & d) const14747   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR * pImportSemaphoreFdInfo,
14748                                                                               Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
14749   {
14750     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14751     return static_cast<Result>(
14752       d.vkImportSemaphoreFdKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImportSemaphoreFdInfoKHR *>( pImportSemaphoreFdInfo ) ) );
14753   }
14754 
14755 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14756   // wrapper function for command vkImportSemaphoreFdKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportSemaphoreFdKHR.html
14757   template <typename Dispatch>
14758   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
importSemaphoreFdKHR(const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo,Dispatch const & d) const14759     Device::importSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::ImportSemaphoreFdInfoKHR & importSemaphoreFdInfo, Dispatch const & d ) const
14760   {
14761     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14762 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14763     VULKAN_HPP_ASSERT( d.vkImportSemaphoreFdKHR && "Function <vkImportSemaphoreFdKHR> requires <VK_KHR_external_semaphore_fd>" );
14764 #  endif
14765 
14766     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
14767       d.vkImportSemaphoreFdKHR( m_device, reinterpret_cast<const VkImportSemaphoreFdInfoKHR *>( &importSemaphoreFdInfo ) ) );
14768     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreFdKHR" );
14769 
14770     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
14771   }
14772 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
14773 
14774   // wrapper function for command vkGetSemaphoreFdKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreFdKHR.html
14775   template <typename Dispatch>
getSemaphoreFdKHR(const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR * pGetFdInfo,int * pFd,Dispatch const & d) const14776   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR * pGetFdInfo,
14777                                                                            int *                                               pFd,
14778                                                                            Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
14779   {
14780     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14781     return static_cast<Result>(
14782       d.vkGetSemaphoreFdKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreGetFdInfoKHR *>( pGetFdInfo ), pFd ) );
14783   }
14784 
14785 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14786   // wrapper function for command vkGetSemaphoreFdKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreFdKHR.html
14787   template <typename Dispatch>
14788   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<int>::type
getSemaphoreFdKHR(const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR & getFdInfo,Dispatch const & d) const14789                        Device::getSemaphoreFdKHR( const VULKAN_HPP_NAMESPACE::SemaphoreGetFdInfoKHR & getFdInfo, Dispatch const & d ) const
14790   {
14791     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14792 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14793     VULKAN_HPP_ASSERT( d.vkGetSemaphoreFdKHR && "Function <vkGetSemaphoreFdKHR> requires <VK_KHR_external_semaphore_fd>" );
14794 #  endif
14795 
14796     int                          fd;
14797     VULKAN_HPP_NAMESPACE::Result result =
14798       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetSemaphoreFdKHR( m_device, reinterpret_cast<const VkSemaphoreGetFdInfoKHR *>( &getFdInfo ), &fd ) );
14799     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreFdKHR" );
14800 
14801     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( fd ) );
14802   }
14803 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
14804 
14805   //=== VK_KHR_push_descriptor ===
14806 
14807   // wrapper function for command vkCmdPushDescriptorSetKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushDescriptorSetKHR.html
14808   template <typename Dispatch>
pushDescriptorSetKHR(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t set,uint32_t descriptorWriteCount,const VULKAN_HPP_NAMESPACE::WriteDescriptorSet * pDescriptorWrites,Dispatch const & d) const14809   VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint          pipelineBindPoint,
14810                                                               VULKAN_HPP_NAMESPACE::PipelineLayout             layout,
14811                                                               uint32_t                                         set,
14812                                                               uint32_t                                         descriptorWriteCount,
14813                                                               const VULKAN_HPP_NAMESPACE::WriteDescriptorSet * pDescriptorWrites,
14814                                                               Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
14815   {
14816     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14817     d.vkCmdPushDescriptorSetKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
14818                                  static_cast<VkPipelineBindPoint>( pipelineBindPoint ),
14819                                  static_cast<VkPipelineLayout>( layout ),
14820                                  set,
14821                                  descriptorWriteCount,
14822                                  reinterpret_cast<const VkWriteDescriptorSet *>( pDescriptorWrites ) );
14823   }
14824 
14825 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14826   // wrapper function for command vkCmdPushDescriptorSetKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushDescriptorSetKHR.html
14827   template <typename Dispatch>
14828   VULKAN_HPP_INLINE void
pushDescriptorSetKHR(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t set,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites,Dispatch const & d) const14829     CommandBuffer::pushDescriptorSetKHR( VULKAN_HPP_NAMESPACE::PipelineBindPoint                                                  pipelineBindPoint,
14830                                          VULKAN_HPP_NAMESPACE::PipelineLayout                                                     layout,
14831                                          uint32_t                                                                                 set,
14832                                          VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteDescriptorSet> const & descriptorWrites,
14833                                          Dispatch const &                                                                         d ) const VULKAN_HPP_NOEXCEPT
14834   {
14835     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14836 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14837     VULKAN_HPP_ASSERT( d.vkCmdPushDescriptorSetKHR && "Function <vkCmdPushDescriptorSetKHR> requires <VK_KHR_push_descriptor> or <VK_VERSION_1_4>" );
14838 #  endif
14839 
14840     d.vkCmdPushDescriptorSetKHR( m_commandBuffer,
14841                                  static_cast<VkPipelineBindPoint>( pipelineBindPoint ),
14842                                  static_cast<VkPipelineLayout>( layout ),
14843                                  set,
14844                                  descriptorWrites.size(),
14845                                  reinterpret_cast<const VkWriteDescriptorSet *>( descriptorWrites.data() ) );
14846   }
14847 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
14848 
14849   // wrapper function for command vkCmdPushDescriptorSetWithTemplateKHR, see
14850   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushDescriptorSetWithTemplateKHR.html
14851   template <typename Dispatch>
pushDescriptorSetWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t set,const void * pData,Dispatch const & d) const14852   VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,
14853                                                                           VULKAN_HPP_NAMESPACE::PipelineLayout           layout,
14854                                                                           uint32_t                                       set,
14855                                                                           const void *                                   pData,
14856                                                                           Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
14857   {
14858     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14859     d.vkCmdPushDescriptorSetWithTemplateKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
14860                                              static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
14861                                              static_cast<VkPipelineLayout>( layout ),
14862                                              set,
14863                                              pData );
14864   }
14865 
14866 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14867   // wrapper function for command vkCmdPushDescriptorSetWithTemplateKHR, see
14868   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushDescriptorSetWithTemplateKHR.html
14869   template <typename DataType, typename Dispatch>
pushDescriptorSetWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t set,DataType const & data,Dispatch const & d) const14870   VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,
14871                                                                           VULKAN_HPP_NAMESPACE::PipelineLayout           layout,
14872                                                                           uint32_t                                       set,
14873                                                                           DataType const &                               data,
14874                                                                           Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
14875   {
14876     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14877 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14878     VULKAN_HPP_ASSERT(
14879       d.vkCmdPushDescriptorSetWithTemplateKHR &&
14880       "Function <vkCmdPushDescriptorSetWithTemplateKHR> requires <VK_KHR_descriptor_update_template> or <VK_KHR_push_descriptor> or <VK_VERSION_1_4>" );
14881 #  endif
14882 
14883     d.vkCmdPushDescriptorSetWithTemplateKHR( m_commandBuffer,
14884                                              static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
14885                                              static_cast<VkPipelineLayout>( layout ),
14886                                              set,
14887                                              reinterpret_cast<const void *>( &data ) );
14888   }
14889 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
14890 
14891   //=== VK_EXT_conditional_rendering ===
14892 
14893   // wrapper function for command vkCmdBeginConditionalRenderingEXT, see
14894   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginConditionalRenderingEXT.html
14895   template <typename Dispatch>
beginConditionalRenderingEXT(const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin,Dispatch const & d) const14896   VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT * pConditionalRenderingBegin,
14897                                                                       Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
14898   {
14899     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14900     d.vkCmdBeginConditionalRenderingEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
14901                                          reinterpret_cast<const VkConditionalRenderingBeginInfoEXT *>( pConditionalRenderingBegin ) );
14902   }
14903 
14904 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14905   // wrapper function for command vkCmdBeginConditionalRenderingEXT, see
14906   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginConditionalRenderingEXT.html
14907   template <typename Dispatch>
beginConditionalRenderingEXT(const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin,Dispatch const & d) const14908   VULKAN_HPP_INLINE void CommandBuffer::beginConditionalRenderingEXT( const VULKAN_HPP_NAMESPACE::ConditionalRenderingBeginInfoEXT & conditionalRenderingBegin,
14909                                                                       Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
14910   {
14911     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14912 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14913     VULKAN_HPP_ASSERT( d.vkCmdBeginConditionalRenderingEXT && "Function <vkCmdBeginConditionalRenderingEXT> requires <VK_EXT_conditional_rendering>" );
14914 #  endif
14915 
14916     d.vkCmdBeginConditionalRenderingEXT( m_commandBuffer, reinterpret_cast<const VkConditionalRenderingBeginInfoEXT *>( &conditionalRenderingBegin ) );
14917   }
14918 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
14919 
14920   // wrapper function for command vkCmdEndConditionalRenderingEXT, see
14921   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndConditionalRenderingEXT.html
14922   template <typename Dispatch>
endConditionalRenderingEXT(Dispatch const & d) const14923   VULKAN_HPP_INLINE void CommandBuffer::endConditionalRenderingEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
14924   {
14925     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14926     d.vkCmdEndConditionalRenderingEXT( static_cast<VkCommandBuffer>( m_commandBuffer ) );
14927   }
14928 
14929   //=== VK_KHR_descriptor_update_template ===
14930 
14931   // wrapper function for command vkCreateDescriptorUpdateTemplateKHR, see
14932   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDescriptorUpdateTemplateKHR.html
14933   template <typename Dispatch>
14934   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
createDescriptorUpdateTemplateKHR(const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate * pDescriptorUpdateTemplate,Dispatch const & d) const14935     Device::createDescriptorUpdateTemplateKHR( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo * pCreateInfo,
14936                                                const VULKAN_HPP_NAMESPACE::AllocationCallbacks *                pAllocator,
14937                                                VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate *                 pDescriptorUpdateTemplate,
14938                                                Dispatch const &                                                 d ) const VULKAN_HPP_NOEXCEPT
14939   {
14940     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14941     return static_cast<Result>( d.vkCreateDescriptorUpdateTemplateKHR( static_cast<VkDevice>( m_device ),
14942                                                                        reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( pCreateInfo ),
14943                                                                        reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
14944                                                                        reinterpret_cast<VkDescriptorUpdateTemplate *>( pDescriptorUpdateTemplate ) ) );
14945   }
14946 
14947 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
14948   // wrapper function for command vkCreateDescriptorUpdateTemplateKHR, see
14949   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDescriptorUpdateTemplateKHR.html
14950   template <typename Dispatch>
14951   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate>::type
createDescriptorUpdateTemplateKHR(const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const14952                        Device::createDescriptorUpdateTemplateKHR( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo & createInfo,
14953                                                Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>        allocator,
14954                                                Dispatch const &                                                 d ) const
14955   {
14956     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14957 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14958     VULKAN_HPP_ASSERT( d.vkCreateDescriptorUpdateTemplateKHR &&
14959                        "Function <vkCreateDescriptorUpdateTemplateKHR> requires <VK_KHR_descriptor_update_template> or <VK_VERSION_1_1>" );
14960 #  endif
14961 
14962     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
14963     VULKAN_HPP_NAMESPACE::Result                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDescriptorUpdateTemplateKHR(
14964       m_device,
14965       reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( &createInfo ),
14966       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
14967       reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) ) );
14968     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateKHR" );
14969 
14970     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( descriptorUpdateTemplate ) );
14971   }
14972 
14973 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
14974   // wrapper function for command vkCreateDescriptorUpdateTemplateKHR, see
14975   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDescriptorUpdateTemplateKHR.html
14976   template <typename Dispatch>
14977   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate, Dispatch>>::type
createDescriptorUpdateTemplateKHRUnique(const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const14978                        Device::createDescriptorUpdateTemplateKHRUnique( const VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplateCreateInfo & createInfo,
14979                                                      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>        allocator,
14980                                                      Dispatch const &                                                 d ) const
14981   {
14982     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
14983 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
14984     VULKAN_HPP_ASSERT( d.vkCreateDescriptorUpdateTemplateKHR &&
14985                        "Function <vkCreateDescriptorUpdateTemplateKHR> requires <VK_KHR_descriptor_update_template> or <VK_VERSION_1_1>" );
14986 #    endif
14987 
14988     VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate;
14989     VULKAN_HPP_NAMESPACE::Result                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDescriptorUpdateTemplateKHR(
14990       m_device,
14991       reinterpret_cast<const VkDescriptorUpdateTemplateCreateInfo *>( &createInfo ),
14992       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
14993       reinterpret_cast<VkDescriptorUpdateTemplate *>( &descriptorUpdateTemplate ) ) );
14994     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createDescriptorUpdateTemplateKHRUnique" );
14995 
14996     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result,
14997                                                                 UniqueHandle<VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate, Dispatch>(
14998                                                                   descriptorUpdateTemplate, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
14999   }
15000 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
15001 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
15002 
15003   // wrapper function for command vkDestroyDescriptorUpdateTemplateKHR, see
15004   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDescriptorUpdateTemplateKHR.html
15005   template <typename Dispatch>
destroyDescriptorUpdateTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const15006   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate    descriptorUpdateTemplate,
15007                                                                      const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
15008                                                                      Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
15009   {
15010     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15011     d.vkDestroyDescriptorUpdateTemplateKHR( static_cast<VkDevice>( m_device ),
15012                                             static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
15013                                             reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
15014   }
15015 
15016 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15017   // wrapper function for command vkDestroyDescriptorUpdateTemplateKHR, see
15018   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDescriptorUpdateTemplateKHR.html
15019   template <typename Dispatch>
destroyDescriptorUpdateTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const15020   VULKAN_HPP_INLINE void Device::destroyDescriptorUpdateTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate            descriptorUpdateTemplate,
15021                                                                      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
15022                                                                      Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
15023   {
15024     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15025 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15026     VULKAN_HPP_ASSERT( d.vkDestroyDescriptorUpdateTemplateKHR &&
15027                        "Function <vkDestroyDescriptorUpdateTemplateKHR> requires <VK_KHR_descriptor_update_template> or <VK_VERSION_1_1>" );
15028 #  endif
15029 
15030     d.vkDestroyDescriptorUpdateTemplateKHR(
15031       m_device,
15032       static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
15033       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
15034   }
15035 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
15036 
15037   // wrapper function for command vkUpdateDescriptorSetWithTemplateKHR, see
15038   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkUpdateDescriptorSetWithTemplateKHR.html
15039   template <typename Dispatch>
updateDescriptorSetWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,const void * pData,Dispatch const & d) const15040   VULKAN_HPP_INLINE void Device::updateDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorSet            descriptorSet,
15041                                                                      VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,
15042                                                                      const void *                                   pData,
15043                                                                      Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
15044   {
15045     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15046     d.vkUpdateDescriptorSetWithTemplateKHR( static_cast<VkDevice>( m_device ),
15047                                             static_cast<VkDescriptorSet>( descriptorSet ),
15048                                             static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
15049                                             pData );
15050   }
15051 
15052 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15053   // wrapper function for command vkUpdateDescriptorSetWithTemplateKHR, see
15054   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkUpdateDescriptorSetWithTemplateKHR.html
15055   template <typename DataType, typename Dispatch>
updateDescriptorSetWithTemplateKHR(VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet,VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,DataType const & data,Dispatch const & d) const15056   VULKAN_HPP_INLINE void Device::updateDescriptorSetWithTemplateKHR( VULKAN_HPP_NAMESPACE::DescriptorSet            descriptorSet,
15057                                                                      VULKAN_HPP_NAMESPACE::DescriptorUpdateTemplate descriptorUpdateTemplate,
15058                                                                      DataType const &                               data,
15059                                                                      Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
15060   {
15061     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15062 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15063     VULKAN_HPP_ASSERT( d.vkUpdateDescriptorSetWithTemplateKHR &&
15064                        "Function <vkUpdateDescriptorSetWithTemplateKHR> requires <VK_KHR_descriptor_update_template> or <VK_VERSION_1_1>" );
15065 #  endif
15066 
15067     d.vkUpdateDescriptorSetWithTemplateKHR( m_device,
15068                                             static_cast<VkDescriptorSet>( descriptorSet ),
15069                                             static_cast<VkDescriptorUpdateTemplate>( descriptorUpdateTemplate ),
15070                                             reinterpret_cast<const void *>( &data ) );
15071   }
15072 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
15073 
15074   //=== VK_NV_clip_space_w_scaling ===
15075 
15076   // wrapper function for command vkCmdSetViewportWScalingNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetViewportWScalingNV.html
15077   template <typename Dispatch>
setViewportWScalingNV(uint32_t firstViewport,uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings,Dispatch const & d) const15078   VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingNV( uint32_t                                         firstViewport,
15079                                                                uint32_t                                         viewportCount,
15080                                                                const VULKAN_HPP_NAMESPACE::ViewportWScalingNV * pViewportWScalings,
15081                                                                Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
15082   {
15083     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15084     d.vkCmdSetViewportWScalingNV(
15085       static_cast<VkCommandBuffer>( m_commandBuffer ), firstViewport, viewportCount, reinterpret_cast<const VkViewportWScalingNV *>( pViewportWScalings ) );
15086   }
15087 
15088 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15089   // wrapper function for command vkCmdSetViewportWScalingNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetViewportWScalingNV.html
15090   template <typename Dispatch>
15091   VULKAN_HPP_INLINE void
setViewportWScalingNV(uint32_t firstViewport,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings,Dispatch const & d) const15092     CommandBuffer::setViewportWScalingNV( uint32_t                                                                                 firstViewport,
15093                                           VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportWScalingNV> const & viewportWScalings,
15094                                           Dispatch const &                                                                         d ) const VULKAN_HPP_NOEXCEPT
15095   {
15096     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15097 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15098     VULKAN_HPP_ASSERT( d.vkCmdSetViewportWScalingNV && "Function <vkCmdSetViewportWScalingNV> requires <VK_NV_clip_space_w_scaling>" );
15099 #  endif
15100 
15101     d.vkCmdSetViewportWScalingNV(
15102       m_commandBuffer, firstViewport, viewportWScalings.size(), reinterpret_cast<const VkViewportWScalingNV *>( viewportWScalings.data() ) );
15103   }
15104 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
15105 
15106   //=== VK_EXT_direct_mode_display ===
15107 
15108 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
15109   // wrapper function for command vkReleaseDisplayEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseDisplayEXT.html
15110   template <typename Dispatch>
releaseDisplayEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const15111   VULKAN_HPP_INLINE Result PhysicalDevice::releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
15112   {
15113     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15114     return static_cast<Result>( d.vkReleaseDisplayEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkDisplayKHR>( display ) ) );
15115   }
15116 #else
15117   // wrapper function for command vkReleaseDisplayEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseDisplayEXT.html
15118   template <typename Dispatch>
releaseDisplayEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const15119   VULKAN_HPP_INLINE void PhysicalDevice::releaseDisplayEXT( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
15120   {
15121     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15122 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15123     VULKAN_HPP_ASSERT( d.vkReleaseDisplayEXT && "Function <vkReleaseDisplayEXT> requires <VK_EXT_direct_mode_display>" );
15124 #  endif
15125 
15126     d.vkReleaseDisplayEXT( m_physicalDevice, static_cast<VkDisplayKHR>( display ) );
15127   }
15128 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15129 
15130 #if defined( VK_USE_PLATFORM_XLIB_XRANDR_EXT )
15131   //=== VK_EXT_acquire_xlib_display ===
15132 
15133   // wrapper function for command vkAcquireXlibDisplayEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireXlibDisplayEXT.html
15134   template <typename Dispatch>
acquireXlibDisplayEXT(Display * dpy,VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const15135   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::acquireXlibDisplayEXT( Display *                        dpy,
15136                                                                                        VULKAN_HPP_NAMESPACE::DisplayKHR display,
15137                                                                                        Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
15138   {
15139     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15140     return static_cast<Result>( d.vkAcquireXlibDisplayEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), dpy, static_cast<VkDisplayKHR>( display ) ) );
15141   }
15142 
15143 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15144   // wrapper function for command vkAcquireXlibDisplayEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireXlibDisplayEXT.html
15145   template <typename Dispatch>
15146   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
acquireXlibDisplayEXT(Display & dpy,VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const15147     PhysicalDevice::acquireXlibDisplayEXT( Display & dpy, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const
15148   {
15149     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15150 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15151     VULKAN_HPP_ASSERT( d.vkAcquireXlibDisplayEXT && "Function <vkAcquireXlibDisplayEXT> requires <VK_EXT_acquire_xlib_display>" );
15152 #    endif
15153 
15154     VULKAN_HPP_NAMESPACE::Result result =
15155       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAcquireXlibDisplayEXT( m_physicalDevice, &dpy, static_cast<VkDisplayKHR>( display ) ) );
15156     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireXlibDisplayEXT" );
15157 
15158     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
15159   }
15160 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
15161 
15162   // wrapper function for command vkGetRandROutputDisplayEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRandROutputDisplayEXT.html
15163   template <typename Dispatch>
getRandROutputDisplayEXT(Display * dpy,RROutput rrOutput,VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplay,Dispatch const & d) const15164   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getRandROutputDisplayEXT( Display *                          dpy,
15165                                                                                           RROutput                           rrOutput,
15166                                                                                           VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplay,
15167                                                                                           Dispatch const &                   d ) const VULKAN_HPP_NOEXCEPT
15168   {
15169     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15170     return static_cast<Result>(
15171       d.vkGetRandROutputDisplayEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), dpy, rrOutput, reinterpret_cast<VkDisplayKHR *>( pDisplay ) ) );
15172   }
15173 
15174 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15175   // wrapper function for command vkGetRandROutputDisplayEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRandROutputDisplayEXT.html
15176   template <typename Dispatch>
15177   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayKHR>::type
getRandROutputDisplayEXT(Display & dpy,RROutput rrOutput,Dispatch const & d) const15178                        PhysicalDevice::getRandROutputDisplayEXT( Display & dpy, RROutput rrOutput, Dispatch const & d ) const
15179   {
15180     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15181 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15182     VULKAN_HPP_ASSERT( d.vkGetRandROutputDisplayEXT && "Function <vkGetRandROutputDisplayEXT> requires <VK_EXT_acquire_xlib_display>" );
15183 #    endif
15184 
15185     VULKAN_HPP_NAMESPACE::DisplayKHR display;
15186     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
15187       d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
15188     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getRandROutputDisplayEXT" );
15189 
15190     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( display ) );
15191   }
15192 
15193 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
15194   // wrapper function for command vkGetRandROutputDisplayEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRandROutputDisplayEXT.html
15195   template <typename Dispatch>
15196   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayKHR, Dispatch>>::type
getRandROutputDisplayEXTUnique(Display & dpy,RROutput rrOutput,Dispatch const & d) const15197                        PhysicalDevice::getRandROutputDisplayEXTUnique( Display & dpy, RROutput rrOutput, Dispatch const & d ) const
15198   {
15199     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15200 #      if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15201     VULKAN_HPP_ASSERT( d.vkGetRandROutputDisplayEXT && "Function <vkGetRandROutputDisplayEXT> requires <VK_EXT_acquire_xlib_display>" );
15202 #      endif
15203 
15204     VULKAN_HPP_NAMESPACE::DisplayKHR display;
15205     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
15206       d.vkGetRandROutputDisplayEXT( m_physicalDevice, &dpy, rrOutput, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
15207     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getRandROutputDisplayEXTUnique" );
15208 
15209     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
15210       result, UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayKHR, Dispatch>( display, detail::ObjectRelease<PhysicalDevice, Dispatch>( *this, d ) ) );
15211   }
15212 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
15213 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
15214 #endif     /*VK_USE_PLATFORM_XLIB_XRANDR_EXT*/
15215 
15216   //=== VK_EXT_display_surface_counter ===
15217 
15218   // wrapper function for command vkGetPhysicalDeviceSurfaceCapabilities2EXT, see
15219   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceCapabilities2EXT.html
15220   template <typename Dispatch>
15221   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getSurfaceCapabilities2EXT(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT * pSurfaceCapabilities,Dispatch const & d) const15222     PhysicalDevice::getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR                surface,
15223                                                 VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT * pSurfaceCapabilities,
15224                                                 Dispatch const &                                d ) const VULKAN_HPP_NOEXCEPT
15225   {
15226     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15227     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT( static_cast<VkPhysicalDevice>( m_physicalDevice ),
15228                                                                               static_cast<VkSurfaceKHR>( surface ),
15229                                                                               reinterpret_cast<VkSurfaceCapabilities2EXT *>( pSurfaceCapabilities ) ) );
15230   }
15231 
15232 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15233   // wrapper function for command vkGetPhysicalDeviceSurfaceCapabilities2EXT, see
15234   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceCapabilities2EXT.html
15235   template <typename Dispatch>
15236   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT>::type
getSurfaceCapabilities2EXT(VULKAN_HPP_NAMESPACE::SurfaceKHR surface,Dispatch const & d) const15237                        PhysicalDevice::getSurfaceCapabilities2EXT( VULKAN_HPP_NAMESPACE::SurfaceKHR surface, Dispatch const & d ) const
15238   {
15239     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15240 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15241     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT &&
15242                        "Function <vkGetPhysicalDeviceSurfaceCapabilities2EXT> requires <VK_EXT_display_surface_counter>" );
15243 #  endif
15244 
15245     VULKAN_HPP_NAMESPACE::SurfaceCapabilities2EXT surfaceCapabilities;
15246     VULKAN_HPP_NAMESPACE::Result                  result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2EXT(
15247       m_physicalDevice, static_cast<VkSurfaceKHR>( surface ), reinterpret_cast<VkSurfaceCapabilities2EXT *>( &surfaceCapabilities ) ) );
15248     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2EXT" );
15249 
15250     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surfaceCapabilities ) );
15251   }
15252 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
15253 
15254   //=== VK_EXT_display_control ===
15255 
15256   // wrapper function for command vkDisplayPowerControlEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDisplayPowerControlEXT.html
15257   template <typename Dispatch>
displayPowerControlEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT * pDisplayPowerInfo,Dispatch const & d) const15258   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR                  display,
15259                                                                                 const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT * pDisplayPowerInfo,
15260                                                                                 Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
15261   {
15262     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15263     return static_cast<Result>( d.vkDisplayPowerControlEXT(
15264       static_cast<VkDevice>( m_device ), static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayPowerInfoEXT *>( pDisplayPowerInfo ) ) );
15265   }
15266 
15267 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15268   // wrapper function for command vkDisplayPowerControlEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDisplayPowerControlEXT.html
15269   template <typename Dispatch>
displayPowerControlEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT & displayPowerInfo,Dispatch const & d) const15270   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::displayPowerControlEXT( VULKAN_HPP_NAMESPACE::DisplayKHR                  display,
15271                                                                                          const VULKAN_HPP_NAMESPACE::DisplayPowerInfoEXT & displayPowerInfo,
15272                                                                                          Dispatch const &                                  d ) const
15273   {
15274     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15275 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15276     VULKAN_HPP_ASSERT( d.vkDisplayPowerControlEXT && "Function <vkDisplayPowerControlEXT> requires <VK_EXT_display_control>" );
15277 #  endif
15278 
15279     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
15280       d.vkDisplayPowerControlEXT( m_device, static_cast<VkDisplayKHR>( display ), reinterpret_cast<const VkDisplayPowerInfoEXT *>( &displayPowerInfo ) ) );
15281     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::displayPowerControlEXT" );
15282 
15283     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
15284   }
15285 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
15286 
15287   // wrapper function for command vkRegisterDeviceEventEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkRegisterDeviceEventEXT.html
15288   template <typename Dispatch>
registerEventEXT(const VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT * pDeviceEventInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Fence * pFence,Dispatch const & d) const15289   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::registerEventEXT( const VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT *  pDeviceEventInfo,
15290                                                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
15291                                                                           VULKAN_HPP_NAMESPACE::Fence *                     pFence,
15292                                                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
15293   {
15294     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15295     return static_cast<Result>( d.vkRegisterDeviceEventEXT( static_cast<VkDevice>( m_device ),
15296                                                             reinterpret_cast<const VkDeviceEventInfoEXT *>( pDeviceEventInfo ),
15297                                                             reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
15298                                                             reinterpret_cast<VkFence *>( pFence ) ) );
15299   }
15300 
15301 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15302   // wrapper function for command vkRegisterDeviceEventEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkRegisterDeviceEventEXT.html
15303   template <typename Dispatch>
15304   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Fence>::type
registerEventEXT(const VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT & deviceEventInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const15305                        Device::registerEventEXT( const VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT &          deviceEventInfo,
15306                               Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
15307                               Dispatch const &                                          d ) const
15308   {
15309     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15310 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15311     VULKAN_HPP_ASSERT( d.vkRegisterDeviceEventEXT && "Function <vkRegisterDeviceEventEXT> requires <VK_EXT_display_control>" );
15312 #  endif
15313 
15314     VULKAN_HPP_NAMESPACE::Fence  fence;
15315     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkRegisterDeviceEventEXT(
15316       m_device,
15317       reinterpret_cast<const VkDeviceEventInfoEXT *>( &deviceEventInfo ),
15318       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
15319       reinterpret_cast<VkFence *>( &fence ) ) );
15320     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::registerEventEXT" );
15321 
15322     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( fence ) );
15323   }
15324 
15325 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
15326   // wrapper function for command vkRegisterDeviceEventEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkRegisterDeviceEventEXT.html
15327   template <typename Dispatch>
15328   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Fence, Dispatch>>::type
registerEventEXTUnique(const VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT & deviceEventInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const15329                        Device::registerEventEXTUnique( const VULKAN_HPP_NAMESPACE::DeviceEventInfoEXT &          deviceEventInfo,
15330                                     Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
15331                                     Dispatch const &                                          d ) const
15332   {
15333     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15334 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15335     VULKAN_HPP_ASSERT( d.vkRegisterDeviceEventEXT && "Function <vkRegisterDeviceEventEXT> requires <VK_EXT_display_control>" );
15336 #    endif
15337 
15338     VULKAN_HPP_NAMESPACE::Fence  fence;
15339     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkRegisterDeviceEventEXT(
15340       m_device,
15341       reinterpret_cast<const VkDeviceEventInfoEXT *>( &deviceEventInfo ),
15342       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
15343       reinterpret_cast<VkFence *>( &fence ) ) );
15344     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::registerEventEXTUnique" );
15345 
15346     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
15347       result, UniqueHandle<VULKAN_HPP_NAMESPACE::Fence, Dispatch>( fence, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
15348   }
15349 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
15350 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
15351 
15352   // wrapper function for command vkRegisterDisplayEventEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkRegisterDisplayEventEXT.html
15353   template <typename Dispatch>
registerDisplayEventEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,const VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT * pDisplayEventInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Fence * pFence,Dispatch const & d) const15354   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR                  display,
15355                                                                                  const VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT * pDisplayEventInfo,
15356                                                                                  const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
15357                                                                                  VULKAN_HPP_NAMESPACE::Fence *                     pFence,
15358                                                                                  Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
15359   {
15360     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15361     return static_cast<Result>( d.vkRegisterDisplayEventEXT( static_cast<VkDevice>( m_device ),
15362                                                              static_cast<VkDisplayKHR>( display ),
15363                                                              reinterpret_cast<const VkDisplayEventInfoEXT *>( pDisplayEventInfo ),
15364                                                              reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
15365                                                              reinterpret_cast<VkFence *>( pFence ) ) );
15366   }
15367 
15368 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15369   // wrapper function for command vkRegisterDisplayEventEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkRegisterDisplayEventEXT.html
15370   template <typename Dispatch>
15371   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Fence>::type
registerDisplayEventEXT(VULKAN_HPP_NAMESPACE::DisplayKHR display,const VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT & displayEventInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const15372                        Device::registerDisplayEventEXT( VULKAN_HPP_NAMESPACE::DisplayKHR                          display,
15373                                      const VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT &         displayEventInfo,
15374                                      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
15375                                      Dispatch const &                                          d ) const
15376   {
15377     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15378 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15379     VULKAN_HPP_ASSERT( d.vkRegisterDisplayEventEXT && "Function <vkRegisterDisplayEventEXT> requires <VK_EXT_display_control>" );
15380 #  endif
15381 
15382     VULKAN_HPP_NAMESPACE::Fence  fence;
15383     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkRegisterDisplayEventEXT(
15384       m_device,
15385       static_cast<VkDisplayKHR>( display ),
15386       reinterpret_cast<const VkDisplayEventInfoEXT *>( &displayEventInfo ),
15387       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
15388       reinterpret_cast<VkFence *>( &fence ) ) );
15389     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::registerDisplayEventEXT" );
15390 
15391     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( fence ) );
15392   }
15393 
15394 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
15395   // wrapper function for command vkRegisterDisplayEventEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkRegisterDisplayEventEXT.html
15396   template <typename Dispatch>
15397   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::Fence, Dispatch>>::type
registerDisplayEventEXTUnique(VULKAN_HPP_NAMESPACE::DisplayKHR display,const VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT & displayEventInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const15398                        Device::registerDisplayEventEXTUnique( VULKAN_HPP_NAMESPACE::DisplayKHR                          display,
15399                                            const VULKAN_HPP_NAMESPACE::DisplayEventInfoEXT &         displayEventInfo,
15400                                            Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
15401                                            Dispatch const &                                          d ) const
15402   {
15403     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15404 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15405     VULKAN_HPP_ASSERT( d.vkRegisterDisplayEventEXT && "Function <vkRegisterDisplayEventEXT> requires <VK_EXT_display_control>" );
15406 #    endif
15407 
15408     VULKAN_HPP_NAMESPACE::Fence  fence;
15409     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkRegisterDisplayEventEXT(
15410       m_device,
15411       static_cast<VkDisplayKHR>( display ),
15412       reinterpret_cast<const VkDisplayEventInfoEXT *>( &displayEventInfo ),
15413       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
15414       reinterpret_cast<VkFence *>( &fence ) ) );
15415     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::registerDisplayEventEXTUnique" );
15416 
15417     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
15418       result, UniqueHandle<VULKAN_HPP_NAMESPACE::Fence, Dispatch>( fence, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
15419   }
15420 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
15421 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
15422 
15423   // wrapper function for command vkGetSwapchainCounterEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSwapchainCounterEXT.html
15424   template <typename Dispatch>
getSwapchainCounterEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter,uint64_t * pCounterValue,Dispatch const & d) const15425   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSwapchainCounterEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR              swapchain,
15426                                                                                 VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter,
15427                                                                                 uint64_t *                                      pCounterValue,
15428                                                                                 Dispatch const &                                d ) const VULKAN_HPP_NOEXCEPT
15429   {
15430     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15431     return static_cast<Result>( d.vkGetSwapchainCounterEXT(
15432       static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( swapchain ), static_cast<VkSurfaceCounterFlagBitsEXT>( counter ), pCounterValue ) );
15433   }
15434 
15435 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15436   // wrapper function for command vkGetSwapchainCounterEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSwapchainCounterEXT.html
15437   template <typename Dispatch>
getSwapchainCounterEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter,Dispatch const & d) const15438   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<uint64_t>::type Device::getSwapchainCounterEXT(
15439     VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, VULKAN_HPP_NAMESPACE::SurfaceCounterFlagBitsEXT counter, Dispatch const & d ) const
15440   {
15441     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15442 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15443     VULKAN_HPP_ASSERT( d.vkGetSwapchainCounterEXT && "Function <vkGetSwapchainCounterEXT> requires <VK_EXT_display_control>" );
15444 #  endif
15445 
15446     uint64_t                     counterValue;
15447     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
15448       d.vkGetSwapchainCounterEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ), static_cast<VkSurfaceCounterFlagBitsEXT>( counter ), &counterValue ) );
15449     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainCounterEXT" );
15450 
15451     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( counterValue ) );
15452   }
15453 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
15454 
15455   //=== VK_GOOGLE_display_timing ===
15456 
15457   // wrapper function for command vkGetRefreshCycleDurationGOOGLE, see
15458   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRefreshCycleDurationGOOGLE.html
15459   template <typename Dispatch>
15460   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getRefreshCycleDurationGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE * pDisplayTimingProperties,Dispatch const & d) const15461     Device::getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR                 swapchain,
15462                                            VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE * pDisplayTimingProperties,
15463                                            Dispatch const &                                   d ) const VULKAN_HPP_NOEXCEPT
15464   {
15465     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15466     return static_cast<Result>( d.vkGetRefreshCycleDurationGOOGLE( static_cast<VkDevice>( m_device ),
15467                                                                    static_cast<VkSwapchainKHR>( swapchain ),
15468                                                                    reinterpret_cast<VkRefreshCycleDurationGOOGLE *>( pDisplayTimingProperties ) ) );
15469   }
15470 
15471 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15472   // wrapper function for command vkGetRefreshCycleDurationGOOGLE, see
15473   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRefreshCycleDurationGOOGLE.html
15474   template <typename Dispatch>
15475   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE>::type
getRefreshCycleDurationGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const15476                        Device::getRefreshCycleDurationGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
15477   {
15478     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15479 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15480     VULKAN_HPP_ASSERT( d.vkGetRefreshCycleDurationGOOGLE && "Function <vkGetRefreshCycleDurationGOOGLE> requires <VK_GOOGLE_display_timing>" );
15481 #  endif
15482 
15483     VULKAN_HPP_NAMESPACE::RefreshCycleDurationGOOGLE displayTimingProperties;
15484     VULKAN_HPP_NAMESPACE::Result                     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetRefreshCycleDurationGOOGLE(
15485       m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkRefreshCycleDurationGOOGLE *>( &displayTimingProperties ) ) );
15486     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getRefreshCycleDurationGOOGLE" );
15487 
15488     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( displayTimingProperties ) );
15489   }
15490 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
15491 
15492   // wrapper function for command vkGetPastPresentationTimingGOOGLE, see
15493   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPastPresentationTimingGOOGLE.html
15494   template <typename Dispatch>
15495   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getPastPresentationTimingGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,uint32_t * pPresentationTimingCount,VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE * pPresentationTimings,Dispatch const & d) const15496     Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR                   swapchain,
15497                                              uint32_t *                                           pPresentationTimingCount,
15498                                              VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE * pPresentationTimings,
15499                                              Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
15500   {
15501     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15502     return static_cast<Result>( d.vkGetPastPresentationTimingGOOGLE( static_cast<VkDevice>( m_device ),
15503                                                                      static_cast<VkSwapchainKHR>( swapchain ),
15504                                                                      pPresentationTimingCount,
15505                                                                      reinterpret_cast<VkPastPresentationTimingGOOGLE *>( pPresentationTimings ) ) );
15506   }
15507 
15508 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15509   // wrapper function for command vkGetPastPresentationTimingGOOGLE, see
15510   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPastPresentationTimingGOOGLE.html
15511   template <
15512     typename PastPresentationTimingGOOGLEAllocator,
15513     typename Dispatch,
15514     typename std::enable_if<std::is_same<typename PastPresentationTimingGOOGLEAllocator::value_type, VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE>::value,
15515                             int>::type>
15516   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
15517     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE, PastPresentationTimingGOOGLEAllocator>>::type
getPastPresentationTimingGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const15518     Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
15519   {
15520     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15521 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15522     VULKAN_HPP_ASSERT( d.vkGetPastPresentationTimingGOOGLE && "Function <vkGetPastPresentationTimingGOOGLE> requires <VK_GOOGLE_display_timing>" );
15523 #  endif
15524 
15525     std::vector<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE, PastPresentationTimingGOOGLEAllocator> presentationTimings;
15526     uint32_t                                                                                               presentationTimingCount;
15527     VULKAN_HPP_NAMESPACE::Result                                                                           result;
15528     do
15529     {
15530       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
15531         d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, nullptr ) );
15532       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentationTimingCount )
15533       {
15534         presentationTimings.resize( presentationTimingCount );
15535         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
15536           d.vkGetPastPresentationTimingGOOGLE( m_device,
15537                                                static_cast<VkSwapchainKHR>( swapchain ),
15538                                                &presentationTimingCount,
15539                                                reinterpret_cast<VkPastPresentationTimingGOOGLE *>( presentationTimings.data() ) ) );
15540       }
15541     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
15542     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPastPresentationTimingGOOGLE" );
15543     VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() );
15544     if ( presentationTimingCount < presentationTimings.size() )
15545     {
15546       presentationTimings.resize( presentationTimingCount );
15547     }
15548     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( presentationTimings ) );
15549   }
15550 
15551   // wrapper function for command vkGetPastPresentationTimingGOOGLE, see
15552   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPastPresentationTimingGOOGLE.html
15553   template <
15554     typename PastPresentationTimingGOOGLEAllocator,
15555     typename Dispatch,
15556     typename std::enable_if<std::is_same<typename PastPresentationTimingGOOGLEAllocator::value_type, VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE>::value,
15557                             int>::type>
15558   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
15559     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE, PastPresentationTimingGOOGLEAllocator>>::type
getPastPresentationTimingGOOGLE(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,PastPresentationTimingGOOGLEAllocator & pastPresentationTimingGOOGLEAllocator,Dispatch const & d) const15560     Device::getPastPresentationTimingGOOGLE( VULKAN_HPP_NAMESPACE::SwapchainKHR      swapchain,
15561                                              PastPresentationTimingGOOGLEAllocator & pastPresentationTimingGOOGLEAllocator,
15562                                              Dispatch const &                        d ) const
15563   {
15564     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15565 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15566     VULKAN_HPP_ASSERT( d.vkGetPastPresentationTimingGOOGLE && "Function <vkGetPastPresentationTimingGOOGLE> requires <VK_GOOGLE_display_timing>" );
15567 #  endif
15568 
15569     std::vector<VULKAN_HPP_NAMESPACE::PastPresentationTimingGOOGLE, PastPresentationTimingGOOGLEAllocator> presentationTimings(
15570       pastPresentationTimingGOOGLEAllocator );
15571     uint32_t                     presentationTimingCount;
15572     VULKAN_HPP_NAMESPACE::Result result;
15573     do
15574     {
15575       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
15576         d.vkGetPastPresentationTimingGOOGLE( m_device, static_cast<VkSwapchainKHR>( swapchain ), &presentationTimingCount, nullptr ) );
15577       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentationTimingCount )
15578       {
15579         presentationTimings.resize( presentationTimingCount );
15580         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
15581           d.vkGetPastPresentationTimingGOOGLE( m_device,
15582                                                static_cast<VkSwapchainKHR>( swapchain ),
15583                                                &presentationTimingCount,
15584                                                reinterpret_cast<VkPastPresentationTimingGOOGLE *>( presentationTimings.data() ) ) );
15585       }
15586     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
15587     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPastPresentationTimingGOOGLE" );
15588     VULKAN_HPP_ASSERT( presentationTimingCount <= presentationTimings.size() );
15589     if ( presentationTimingCount < presentationTimings.size() )
15590     {
15591       presentationTimings.resize( presentationTimingCount );
15592     }
15593     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( presentationTimings ) );
15594   }
15595 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
15596 
15597   //=== VK_EXT_discard_rectangles ===
15598 
15599   // wrapper function for command vkCmdSetDiscardRectangleEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDiscardRectangleEXT.html
15600   template <typename Dispatch>
setDiscardRectangleEXT(uint32_t firstDiscardRectangle,uint32_t discardRectangleCount,const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles,Dispatch const & d) const15601   VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEXT( uint32_t                             firstDiscardRectangle,
15602                                                                 uint32_t                             discardRectangleCount,
15603                                                                 const VULKAN_HPP_NAMESPACE::Rect2D * pDiscardRectangles,
15604                                                                 Dispatch const &                     d ) const VULKAN_HPP_NOEXCEPT
15605   {
15606     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15607     d.vkCmdSetDiscardRectangleEXT(
15608       static_cast<VkCommandBuffer>( m_commandBuffer ), firstDiscardRectangle, discardRectangleCount, reinterpret_cast<const VkRect2D *>( pDiscardRectangles ) );
15609   }
15610 
15611 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15612   // wrapper function for command vkCmdSetDiscardRectangleEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDiscardRectangleEXT.html
15613   template <typename Dispatch>
setDiscardRectangleEXT(uint32_t firstDiscardRectangle,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles,Dispatch const & d) const15614   VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEXT( uint32_t firstDiscardRectangle,
15615                                                                 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & discardRectangles,
15616                                                                 Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
15617   {
15618     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15619 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15620     VULKAN_HPP_ASSERT( d.vkCmdSetDiscardRectangleEXT && "Function <vkCmdSetDiscardRectangleEXT> requires <VK_EXT_discard_rectangles>" );
15621 #  endif
15622 
15623     d.vkCmdSetDiscardRectangleEXT(
15624       m_commandBuffer, firstDiscardRectangle, discardRectangles.size(), reinterpret_cast<const VkRect2D *>( discardRectangles.data() ) );
15625   }
15626 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
15627 
15628   // wrapper function for command vkCmdSetDiscardRectangleEnableEXT, see
15629   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDiscardRectangleEnableEXT.html
15630   template <typename Dispatch>
setDiscardRectangleEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 discardRectangleEnable,Dispatch const & d) const15631   VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 discardRectangleEnable,
15632                                                                       Dispatch const &             d ) const VULKAN_HPP_NOEXCEPT
15633   {
15634     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15635     d.vkCmdSetDiscardRectangleEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( discardRectangleEnable ) );
15636   }
15637 
15638   // wrapper function for command vkCmdSetDiscardRectangleModeEXT, see
15639   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDiscardRectangleModeEXT.html
15640   template <typename Dispatch>
setDiscardRectangleModeEXT(VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode,Dispatch const & d) const15641   VULKAN_HPP_INLINE void CommandBuffer::setDiscardRectangleModeEXT( VULKAN_HPP_NAMESPACE::DiscardRectangleModeEXT discardRectangleMode,
15642                                                                     Dispatch const &                              d ) const VULKAN_HPP_NOEXCEPT
15643   {
15644     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15645     d.vkCmdSetDiscardRectangleModeEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkDiscardRectangleModeEXT>( discardRectangleMode ) );
15646   }
15647 
15648   //=== VK_EXT_hdr_metadata ===
15649 
15650   // wrapper function for command vkSetHdrMetadataEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetHdrMetadataEXT.html
15651   template <typename Dispatch>
setHdrMetadataEXT(uint32_t swapchainCount,const VULKAN_HPP_NAMESPACE::SwapchainKHR * pSwapchains,const VULKAN_HPP_NAMESPACE::HdrMetadataEXT * pMetadata,Dispatch const & d) const15652   VULKAN_HPP_INLINE void Device::setHdrMetadataEXT( uint32_t                                     swapchainCount,
15653                                                     const VULKAN_HPP_NAMESPACE::SwapchainKHR *   pSwapchains,
15654                                                     const VULKAN_HPP_NAMESPACE::HdrMetadataEXT * pMetadata,
15655                                                     Dispatch const &                             d ) const VULKAN_HPP_NOEXCEPT
15656   {
15657     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15658     d.vkSetHdrMetadataEXT( static_cast<VkDevice>( m_device ),
15659                            swapchainCount,
15660                            reinterpret_cast<const VkSwapchainKHR *>( pSwapchains ),
15661                            reinterpret_cast<const VkHdrMetadataEXT *>( pMetadata ) );
15662   }
15663 
15664 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15665   // wrapper function for command vkSetHdrMetadataEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetHdrMetadataEXT.html
15666   template <typename Dispatch>
setHdrMetadataEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const & swapchains,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::HdrMetadataEXT> const & metadata,Dispatch const & d) const15667   VULKAN_HPP_INLINE void Device::setHdrMetadataEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SwapchainKHR> const &   swapchains,
15668                                                     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::HdrMetadataEXT> const & metadata,
15669                                                     Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
15670   {
15671     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15672 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15673     VULKAN_HPP_ASSERT( d.vkSetHdrMetadataEXT && "Function <vkSetHdrMetadataEXT> requires <VK_EXT_hdr_metadata>" );
15674 #  endif
15675 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
15676     VULKAN_HPP_ASSERT( swapchains.size() == metadata.size() );
15677 #  else
15678     if ( swapchains.size() != metadata.size() )
15679     {
15680       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::setHdrMetadataEXT: swapchains.size() != metadata.size()" );
15681     }
15682 #  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
15683 
15684     d.vkSetHdrMetadataEXT( m_device,
15685                            swapchains.size(),
15686                            reinterpret_cast<const VkSwapchainKHR *>( swapchains.data() ),
15687                            reinterpret_cast<const VkHdrMetadataEXT *>( metadata.data() ) );
15688   }
15689 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
15690 
15691   //=== VK_KHR_create_renderpass2 ===
15692 
15693   // wrapper function for command vkCreateRenderPass2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRenderPass2KHR.html
15694   template <typename Dispatch>
createRenderPass2KHR(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::RenderPass * pRenderPass,Dispatch const & d) const15695   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 * pCreateInfo,
15696                                                                               const VULKAN_HPP_NAMESPACE::AllocationCallbacks *   pAllocator,
15697                                                                               VULKAN_HPP_NAMESPACE::RenderPass *                  pRenderPass,
15698                                                                               Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
15699   {
15700     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15701     return static_cast<Result>( d.vkCreateRenderPass2KHR( static_cast<VkDevice>( m_device ),
15702                                                           reinterpret_cast<const VkRenderPassCreateInfo2 *>( pCreateInfo ),
15703                                                           reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
15704                                                           reinterpret_cast<VkRenderPass *>( pRenderPass ) ) );
15705   }
15706 
15707 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15708   // wrapper function for command vkCreateRenderPass2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRenderPass2KHR.html
15709   template <typename Dispatch>
15710   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::RenderPass>::type
createRenderPass2KHR(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const15711                        Device::createRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 &       createInfo,
15712                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
15713                                   Dispatch const &                                          d ) const
15714   {
15715     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15716 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15717     VULKAN_HPP_ASSERT( d.vkCreateRenderPass2KHR && "Function <vkCreateRenderPass2KHR> requires <VK_KHR_create_renderpass2> or <VK_VERSION_1_2>" );
15718 #  endif
15719 
15720     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
15721     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
15722       d.vkCreateRenderPass2KHR( m_device,
15723                                 reinterpret_cast<const VkRenderPassCreateInfo2 *>( &createInfo ),
15724                                 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
15725                                 reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
15726     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2KHR" );
15727 
15728     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( renderPass ) );
15729   }
15730 
15731 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
15732   // wrapper function for command vkCreateRenderPass2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRenderPass2KHR.html
15733   template <typename Dispatch>
15734   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>>::type
createRenderPass2KHRUnique(const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const15735                        Device::createRenderPass2KHRUnique( const VULKAN_HPP_NAMESPACE::RenderPassCreateInfo2 &       createInfo,
15736                                         Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
15737                                         Dispatch const &                                          d ) const
15738   {
15739     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15740 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15741     VULKAN_HPP_ASSERT( d.vkCreateRenderPass2KHR && "Function <vkCreateRenderPass2KHR> requires <VK_KHR_create_renderpass2> or <VK_VERSION_1_2>" );
15742 #    endif
15743 
15744     VULKAN_HPP_NAMESPACE::RenderPass renderPass;
15745     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
15746       d.vkCreateRenderPass2KHR( m_device,
15747                                 reinterpret_cast<const VkRenderPassCreateInfo2 *>( &createInfo ),
15748                                 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
15749                                 reinterpret_cast<VkRenderPass *>( &renderPass ) ) );
15750     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createRenderPass2KHRUnique" );
15751 
15752     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
15753       result, UniqueHandle<VULKAN_HPP_NAMESPACE::RenderPass, Dispatch>( renderPass, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
15754   }
15755 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
15756 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
15757 
15758   // wrapper function for command vkCmdBeginRenderPass2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginRenderPass2KHR.html
15759   template <typename Dispatch>
beginRenderPass2KHR(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin,const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,Dispatch const & d) const15760   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo * pRenderPassBegin,
15761                                                              const VULKAN_HPP_NAMESPACE::SubpassBeginInfo *    pSubpassBeginInfo,
15762                                                              Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
15763   {
15764     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15765     d.vkCmdBeginRenderPass2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
15766                                 reinterpret_cast<const VkRenderPassBeginInfo *>( pRenderPassBegin ),
15767                                 reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ) );
15768   }
15769 
15770 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15771   // wrapper function for command vkCmdBeginRenderPass2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginRenderPass2KHR.html
15772   template <typename Dispatch>
beginRenderPass2KHR(const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin,const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo,Dispatch const & d) const15773   VULKAN_HPP_INLINE void CommandBuffer::beginRenderPass2KHR( const VULKAN_HPP_NAMESPACE::RenderPassBeginInfo & renderPassBegin,
15774                                                              const VULKAN_HPP_NAMESPACE::SubpassBeginInfo &    subpassBeginInfo,
15775                                                              Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
15776   {
15777     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15778 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15779     VULKAN_HPP_ASSERT( d.vkCmdBeginRenderPass2KHR && "Function <vkCmdBeginRenderPass2KHR> requires <VK_KHR_create_renderpass2> or <VK_VERSION_1_2>" );
15780 #  endif
15781 
15782     d.vkCmdBeginRenderPass2KHR(
15783       m_commandBuffer, reinterpret_cast<const VkRenderPassBeginInfo *>( &renderPassBegin ), reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ) );
15784   }
15785 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
15786 
15787   // wrapper function for command vkCmdNextSubpass2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdNextSubpass2KHR.html
15788   template <typename Dispatch>
nextSubpass2KHR(const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const15789   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo * pSubpassBeginInfo,
15790                                                          const VULKAN_HPP_NAMESPACE::SubpassEndInfo *   pSubpassEndInfo,
15791                                                          Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
15792   {
15793     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15794     d.vkCmdNextSubpass2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
15795                             reinterpret_cast<const VkSubpassBeginInfo *>( pSubpassBeginInfo ),
15796                             reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
15797   }
15798 
15799 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15800   // wrapper function for command vkCmdNextSubpass2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdNextSubpass2KHR.html
15801   template <typename Dispatch>
nextSubpass2KHR(const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo,const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo,Dispatch const & d) const15802   VULKAN_HPP_INLINE void CommandBuffer::nextSubpass2KHR( const VULKAN_HPP_NAMESPACE::SubpassBeginInfo & subpassBeginInfo,
15803                                                          const VULKAN_HPP_NAMESPACE::SubpassEndInfo &   subpassEndInfo,
15804                                                          Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
15805   {
15806     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15807 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15808     VULKAN_HPP_ASSERT( d.vkCmdNextSubpass2KHR && "Function <vkCmdNextSubpass2KHR> requires <VK_KHR_create_renderpass2> or <VK_VERSION_1_2>" );
15809 #  endif
15810 
15811     d.vkCmdNextSubpass2KHR(
15812       m_commandBuffer, reinterpret_cast<const VkSubpassBeginInfo *>( &subpassBeginInfo ), reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
15813   }
15814 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
15815 
15816   // wrapper function for command vkCmdEndRenderPass2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndRenderPass2KHR.html
15817   template <typename Dispatch>
endRenderPass2KHR(const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,Dispatch const & d) const15818   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo * pSubpassEndInfo,
15819                                                            Dispatch const &                             d ) const VULKAN_HPP_NOEXCEPT
15820   {
15821     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15822     d.vkCmdEndRenderPass2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkSubpassEndInfo *>( pSubpassEndInfo ) );
15823   }
15824 
15825 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15826   // wrapper function for command vkCmdEndRenderPass2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndRenderPass2KHR.html
15827   template <typename Dispatch>
endRenderPass2KHR(const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo,Dispatch const & d) const15828   VULKAN_HPP_INLINE void CommandBuffer::endRenderPass2KHR( const VULKAN_HPP_NAMESPACE::SubpassEndInfo & subpassEndInfo,
15829                                                            Dispatch const &                             d ) const VULKAN_HPP_NOEXCEPT
15830   {
15831     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15832 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15833     VULKAN_HPP_ASSERT( d.vkCmdEndRenderPass2KHR && "Function <vkCmdEndRenderPass2KHR> requires <VK_KHR_create_renderpass2> or <VK_VERSION_1_2>" );
15834 #  endif
15835 
15836     d.vkCmdEndRenderPass2KHR( m_commandBuffer, reinterpret_cast<const VkSubpassEndInfo *>( &subpassEndInfo ) );
15837   }
15838 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
15839 
15840   //=== VK_KHR_shared_presentable_image ===
15841 
15842 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
15843   // wrapper function for command vkGetSwapchainStatusKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSwapchainStatusKHR.html
15844   template <typename Dispatch>
getSwapchainStatusKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const15845   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,
15846                                                                                Dispatch const &                   d ) const VULKAN_HPP_NOEXCEPT
15847   {
15848     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15849     return static_cast<Result>( d.vkGetSwapchainStatusKHR( static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( swapchain ) ) );
15850   }
15851 #else
15852   // wrapper function for command vkGetSwapchainStatusKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSwapchainStatusKHR.html
15853   template <typename Dispatch>
getSwapchainStatusKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const15854   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::getSwapchainStatusKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,
15855                                                                                                      Dispatch const &                   d ) const
15856   {
15857     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15858 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15859     VULKAN_HPP_ASSERT( d.vkGetSwapchainStatusKHR && "Function <vkGetSwapchainStatusKHR> requires <VK_KHR_shared_presentable_image>" );
15860 #  endif
15861 
15862     VULKAN_HPP_NAMESPACE::Result result =
15863       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetSwapchainStatusKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
15864     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
15865                                                VULKAN_HPP_NAMESPACE_STRING "::Device::getSwapchainStatusKHR",
15866                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } );
15867 
15868     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
15869   }
15870 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
15871 
15872   //=== VK_KHR_external_fence_capabilities ===
15873 
15874   // wrapper function for command vkGetPhysicalDeviceExternalFencePropertiesKHR, see
15875   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalFencePropertiesKHR.html
15876   template <typename Dispatch>
getExternalFencePropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo * pExternalFenceInfo,VULKAN_HPP_NAMESPACE::ExternalFenceProperties * pExternalFenceProperties,Dispatch const & d) const15877   VULKAN_HPP_INLINE void PhysicalDevice::getExternalFencePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo * pExternalFenceInfo,
15878                                                                         VULKAN_HPP_NAMESPACE::ExternalFenceProperties *               pExternalFenceProperties,
15879                                                                         Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
15880   {
15881     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15882     d.vkGetPhysicalDeviceExternalFencePropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
15883                                                      reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( pExternalFenceInfo ),
15884                                                      reinterpret_cast<VkExternalFenceProperties *>( pExternalFenceProperties ) );
15885   }
15886 
15887 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15888   // wrapper function for command vkGetPhysicalDeviceExternalFencePropertiesKHR, see
15889   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceExternalFencePropertiesKHR.html
15890   template <typename Dispatch>
15891   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExternalFenceProperties
getExternalFencePropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo & externalFenceInfo,Dispatch const & d) const15892     PhysicalDevice::getExternalFencePropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceExternalFenceInfo & externalFenceInfo,
15893                                                    Dispatch const &                                              d ) const VULKAN_HPP_NOEXCEPT
15894   {
15895     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15896 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15897     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceExternalFencePropertiesKHR &&
15898                        "Function <vkGetPhysicalDeviceExternalFencePropertiesKHR> requires <VK_KHR_external_fence_capabilities> or <VK_VERSION_1_1>" );
15899 #  endif
15900 
15901     VULKAN_HPP_NAMESPACE::ExternalFenceProperties externalFenceProperties;
15902     d.vkGetPhysicalDeviceExternalFencePropertiesKHR( m_physicalDevice,
15903                                                      reinterpret_cast<const VkPhysicalDeviceExternalFenceInfo *>( &externalFenceInfo ),
15904                                                      reinterpret_cast<VkExternalFenceProperties *>( &externalFenceProperties ) );
15905 
15906     return externalFenceProperties;
15907   }
15908 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
15909 
15910 #if defined( VK_USE_PLATFORM_WIN32_KHR )
15911   //=== VK_KHR_external_fence_win32 ===
15912 
15913   // wrapper function for command vkImportFenceWin32HandleKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportFenceWin32HandleKHR.html
15914   template <typename Dispatch>
importFenceWin32HandleKHR(const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo,Dispatch const & d) const15915   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importFenceWin32HandleKHR(
15916     const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR * pImportFenceWin32HandleInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
15917   {
15918     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15919     return static_cast<Result>( d.vkImportFenceWin32HandleKHR( static_cast<VkDevice>( m_device ),
15920                                                                reinterpret_cast<const VkImportFenceWin32HandleInfoKHR *>( pImportFenceWin32HandleInfo ) ) );
15921   }
15922 
15923 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15924   // wrapper function for command vkImportFenceWin32HandleKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportFenceWin32HandleKHR.html
15925   template <typename Dispatch>
15926   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
importFenceWin32HandleKHR(const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo,Dispatch const & d) const15927     Device::importFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::ImportFenceWin32HandleInfoKHR & importFenceWin32HandleInfo, Dispatch const & d ) const
15928   {
15929     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15930 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15931     VULKAN_HPP_ASSERT( d.vkImportFenceWin32HandleKHR && "Function <vkImportFenceWin32HandleKHR> requires <VK_KHR_external_fence_win32>" );
15932 #    endif
15933 
15934     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
15935       d.vkImportFenceWin32HandleKHR( m_device, reinterpret_cast<const VkImportFenceWin32HandleInfoKHR *>( &importFenceWin32HandleInfo ) ) );
15936     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceWin32HandleKHR" );
15937 
15938     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
15939   }
15940 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
15941 
15942   // wrapper function for command vkGetFenceWin32HandleKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFenceWin32HandleKHR.html
15943   template <typename Dispatch>
getFenceWin32HandleKHR(const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,HANDLE * pHandle,Dispatch const & d) const15944   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR * pGetWin32HandleInfo,
15945                                                                                 HANDLE *                                                 pHandle,
15946                                                                                 Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
15947   {
15948     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15949     return static_cast<Result>(
15950       d.vkGetFenceWin32HandleKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkFenceGetWin32HandleInfoKHR *>( pGetWin32HandleInfo ), pHandle ) );
15951   }
15952 
15953 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15954   // wrapper function for command vkGetFenceWin32HandleKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFenceWin32HandleKHR.html
15955   template <typename Dispatch>
15956   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<HANDLE>::type
getFenceWin32HandleKHR(const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR & getWin32HandleInfo,Dispatch const & d) const15957                        Device::getFenceWin32HandleKHR( const VULKAN_HPP_NAMESPACE::FenceGetWin32HandleInfoKHR & getWin32HandleInfo, Dispatch const & d ) const
15958   {
15959     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15960 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15961     VULKAN_HPP_ASSERT( d.vkGetFenceWin32HandleKHR && "Function <vkGetFenceWin32HandleKHR> requires <VK_KHR_external_fence_win32>" );
15962 #    endif
15963 
15964     HANDLE                       handle;
15965     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
15966       d.vkGetFenceWin32HandleKHR( m_device, reinterpret_cast<const VkFenceGetWin32HandleInfoKHR *>( &getWin32HandleInfo ), &handle ) );
15967     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceWin32HandleKHR" );
15968 
15969     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( handle ) );
15970   }
15971 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
15972 #endif   /*VK_USE_PLATFORM_WIN32_KHR*/
15973 
15974   //=== VK_KHR_external_fence_fd ===
15975 
15976   // wrapper function for command vkImportFenceFdKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportFenceFdKHR.html
15977   template <typename Dispatch>
importFenceFdKHR(const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR * pImportFenceFdInfo,Dispatch const & d) const15978   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR * pImportFenceFdInfo,
15979                                                                           Dispatch const &                                   d ) const VULKAN_HPP_NOEXCEPT
15980   {
15981     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15982     return static_cast<Result>(
15983       d.vkImportFenceFdKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImportFenceFdInfoKHR *>( pImportFenceFdInfo ) ) );
15984   }
15985 
15986 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
15987   // wrapper function for command vkImportFenceFdKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportFenceFdKHR.html
15988   template <typename Dispatch>
15989   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
importFenceFdKHR(const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR & importFenceFdInfo,Dispatch const & d) const15990     Device::importFenceFdKHR( const VULKAN_HPP_NAMESPACE::ImportFenceFdInfoKHR & importFenceFdInfo, Dispatch const & d ) const
15991   {
15992     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
15993 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
15994     VULKAN_HPP_ASSERT( d.vkImportFenceFdKHR && "Function <vkImportFenceFdKHR> requires <VK_KHR_external_fence_fd>" );
15995 #  endif
15996 
15997     VULKAN_HPP_NAMESPACE::Result result =
15998       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkImportFenceFdKHR( m_device, reinterpret_cast<const VkImportFenceFdInfoKHR *>( &importFenceFdInfo ) ) );
15999     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importFenceFdKHR" );
16000 
16001     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
16002   }
16003 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
16004 
16005   // wrapper function for command vkGetFenceFdKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFenceFdKHR.html
16006   template <typename Dispatch>
getFenceFdKHR(const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR * pGetFdInfo,int * pFd,Dispatch const & d) const16007   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFenceFdKHR( const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR * pGetFdInfo,
16008                                                                        int *                                           pFd,
16009                                                                        Dispatch const &                                d ) const VULKAN_HPP_NOEXCEPT
16010   {
16011     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16012     return static_cast<Result>( d.vkGetFenceFdKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkFenceGetFdInfoKHR *>( pGetFdInfo ), pFd ) );
16013   }
16014 
16015 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16016   // wrapper function for command vkGetFenceFdKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFenceFdKHR.html
16017   template <typename Dispatch>
getFenceFdKHR(const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR & getFdInfo,Dispatch const & d) const16018   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<int>::type Device::getFenceFdKHR( const VULKAN_HPP_NAMESPACE::FenceGetFdInfoKHR & getFdInfo,
16019                                                                                                     Dispatch const &                                d ) const
16020   {
16021     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16022 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
16023     VULKAN_HPP_ASSERT( d.vkGetFenceFdKHR && "Function <vkGetFenceFdKHR> requires <VK_KHR_external_fence_fd>" );
16024 #  endif
16025 
16026     int                          fd;
16027     VULKAN_HPP_NAMESPACE::Result result =
16028       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetFenceFdKHR( m_device, reinterpret_cast<const VkFenceGetFdInfoKHR *>( &getFdInfo ), &fd ) );
16029     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getFenceFdKHR" );
16030 
16031     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( fd ) );
16032   }
16033 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
16034 
16035   //=== VK_KHR_performance_query ===
16036 
16037   // wrapper function for command vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, see
16038   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR.html
16039   template <typename Dispatch>
16040   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex,uint32_t * pCounterCount,VULKAN_HPP_NAMESPACE::PerformanceCounterKHR * pCounters,VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR * pCounterDescriptions,Dispatch const & d) const16041     PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t                                                 queueFamilyIndex,
16042                                                                      uint32_t *                                               pCounterCount,
16043                                                                      VULKAN_HPP_NAMESPACE::PerformanceCounterKHR *            pCounters,
16044                                                                      VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR * pCounterDescriptions,
16045                                                                      Dispatch const &                                         d ) const VULKAN_HPP_NOEXCEPT
16046   {
16047     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16048     return static_cast<Result>(
16049       d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
16050                                                                          queueFamilyIndex,
16051                                                                          pCounterCount,
16052                                                                          reinterpret_cast<VkPerformanceCounterKHR *>( pCounters ),
16053                                                                          reinterpret_cast<VkPerformanceCounterDescriptionKHR *>( pCounterDescriptions ) ) );
16054   }
16055 
16056 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16057   // wrapper function for command vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, see
16058   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR.html
16059   template <typename PerformanceCounterKHRAllocator,
16060             typename PerformanceCounterDescriptionKHRAllocator,
16061             typename Dispatch,
16062             typename std::enable_if<
16063               std::is_same<typename PerformanceCounterKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::PerformanceCounterKHR>::value &&
16064                 std::is_same<typename PerformanceCounterDescriptionKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR>::value,
16065               int>::type>
16066   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
16067     typename ResultValueType<std::pair<std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR, PerformanceCounterKHRAllocator>,
16068                                        std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator>>>::type
enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex,Dispatch const & d) const16069     PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t queueFamilyIndex, Dispatch const & d ) const
16070   {
16071     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16072 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
16073     VULKAN_HPP_ASSERT( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR &&
16074                        "Function <vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR> requires <VK_KHR_performance_query>" );
16075 #  endif
16076 
16077     std::pair<std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR, PerformanceCounterKHRAllocator>,
16078               std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator>>
16079                                                                                                                      data_;
16080     std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR, PerformanceCounterKHRAllocator> &                       counters            = data_.first;
16081     std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator> & counterDescriptions = data_.second;
16082     uint32_t                                                                                                         counterCount;
16083     VULKAN_HPP_NAMESPACE::Result                                                                                     result;
16084     do
16085     {
16086       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
16087         d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, nullptr, nullptr ) );
16088       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && counterCount )
16089       {
16090         counters.resize( counterCount );
16091         counterDescriptions.resize( counterCount );
16092         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
16093           m_physicalDevice,
16094           queueFamilyIndex,
16095           &counterCount,
16096           reinterpret_cast<VkPerformanceCounterKHR *>( counters.data() ),
16097           reinterpret_cast<VkPerformanceCounterDescriptionKHR *>( counterDescriptions.data() ) ) );
16098       }
16099     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
16100     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
16101     VULKAN_HPP_ASSERT( counterCount <= counters.size() );
16102     if ( counterCount < counters.size() )
16103     {
16104       counters.resize( counterCount );
16105       counterDescriptions.resize( counterCount );
16106     }
16107     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data_ ) );
16108   }
16109 
16110   // wrapper function for command vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR, see
16111   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR.html
16112   template <typename PerformanceCounterKHRAllocator,
16113             typename PerformanceCounterDescriptionKHRAllocator,
16114             typename Dispatch,
16115             typename std::enable_if<
16116               std::is_same<typename PerformanceCounterKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::PerformanceCounterKHR>::value &&
16117                 std::is_same<typename PerformanceCounterDescriptionKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR>::value,
16118               int>::type>
16119   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
16120     typename ResultValueType<std::pair<std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR, PerformanceCounterKHRAllocator>,
16121                                        std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator>>>::type
enumerateQueueFamilyPerformanceQueryCountersKHR(uint32_t queueFamilyIndex,PerformanceCounterKHRAllocator & performanceCounterKHRAllocator,PerformanceCounterDescriptionKHRAllocator & performanceCounterDescriptionKHRAllocator,Dispatch const & d) const16122     PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR( uint32_t                                    queueFamilyIndex,
16123                                                                      PerformanceCounterKHRAllocator &            performanceCounterKHRAllocator,
16124                                                                      PerformanceCounterDescriptionKHRAllocator & performanceCounterDescriptionKHRAllocator,
16125                                                                      Dispatch const &                            d ) const
16126   {
16127     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16128 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
16129     VULKAN_HPP_ASSERT( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR &&
16130                        "Function <vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR> requires <VK_KHR_performance_query>" );
16131 #  endif
16132 
16133     std::pair<std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR, PerformanceCounterKHRAllocator>,
16134               std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator>>
16135       data_(
16136         std::piecewise_construct, std::forward_as_tuple( performanceCounterKHRAllocator ), std::forward_as_tuple( performanceCounterDescriptionKHRAllocator ) );
16137     std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterKHR, PerformanceCounterKHRAllocator> &                       counters            = data_.first;
16138     std::vector<VULKAN_HPP_NAMESPACE::PerformanceCounterDescriptionKHR, PerformanceCounterDescriptionKHRAllocator> & counterDescriptions = data_.second;
16139     uint32_t                                                                                                         counterCount;
16140     VULKAN_HPP_NAMESPACE::Result                                                                                     result;
16141     do
16142     {
16143       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
16144         d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR( m_physicalDevice, queueFamilyIndex, &counterCount, nullptr, nullptr ) );
16145       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && counterCount )
16146       {
16147         counters.resize( counterCount );
16148         counterDescriptions.resize( counterCount );
16149         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkEnumeratePhysicalDeviceQueueFamilyPerformanceQueryCountersKHR(
16150           m_physicalDevice,
16151           queueFamilyIndex,
16152           &counterCount,
16153           reinterpret_cast<VkPerformanceCounterKHR *>( counters.data() ),
16154           reinterpret_cast<VkPerformanceCounterDescriptionKHR *>( counterDescriptions.data() ) ) );
16155       }
16156     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
16157     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::enumerateQueueFamilyPerformanceQueryCountersKHR" );
16158     VULKAN_HPP_ASSERT( counterCount <= counters.size() );
16159     if ( counterCount < counters.size() )
16160     {
16161       counters.resize( counterCount );
16162       counterDescriptions.resize( counterCount );
16163     }
16164     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data_ ) );
16165   }
16166 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
16167 
16168   // wrapper function for command vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, see
16169   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR.html
16170   template <typename Dispatch>
16171   VULKAN_HPP_INLINE void
getQueueFamilyPerformanceQueryPassesKHR(const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,uint32_t * pNumPasses,Dispatch const & d) const16172     PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR( const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR * pPerformanceQueryCreateInfo,
16173                                                              uint32_t *                                                      pNumPasses,
16174                                                              Dispatch const &                                                d ) const VULKAN_HPP_NOEXCEPT
16175   {
16176     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16177     d.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
16178                                                                reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR *>( pPerformanceQueryCreateInfo ),
16179                                                                pNumPasses );
16180   }
16181 
16182 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16183   // wrapper function for command vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR, see
16184   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR.html
16185   template <typename Dispatch>
getQueueFamilyPerformanceQueryPassesKHR(const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo,Dispatch const & d) const16186   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint32_t PhysicalDevice::getQueueFamilyPerformanceQueryPassesKHR(
16187     const VULKAN_HPP_NAMESPACE::QueryPoolPerformanceCreateInfoKHR & performanceQueryCreateInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
16188   {
16189     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16190 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
16191     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR &&
16192                        "Function <vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR> requires <VK_KHR_performance_query>" );
16193 #  endif
16194 
16195     uint32_t numPasses;
16196     d.vkGetPhysicalDeviceQueueFamilyPerformanceQueryPassesKHR(
16197       m_physicalDevice, reinterpret_cast<const VkQueryPoolPerformanceCreateInfoKHR *>( &performanceQueryCreateInfo ), &numPasses );
16198 
16199     return numPasses;
16200   }
16201 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
16202 
16203   // wrapper function for command vkAcquireProfilingLockKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireProfilingLockKHR.html
16204   template <typename Dispatch>
acquireProfilingLockKHR(const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR * pInfo,Dispatch const & d) const16205   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR * pInfo,
16206                                                                                  Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
16207   {
16208     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16209     return static_cast<Result>(
16210       d.vkAcquireProfilingLockKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkAcquireProfilingLockInfoKHR *>( pInfo ) ) );
16211   }
16212 
16213 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16214   // wrapper function for command vkAcquireProfilingLockKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireProfilingLockKHR.html
16215   template <typename Dispatch>
16216   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
acquireProfilingLockKHR(const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR & info,Dispatch const & d) const16217     Device::acquireProfilingLockKHR( const VULKAN_HPP_NAMESPACE::AcquireProfilingLockInfoKHR & info, Dispatch const & d ) const
16218   {
16219     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16220 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
16221     VULKAN_HPP_ASSERT( d.vkAcquireProfilingLockKHR && "Function <vkAcquireProfilingLockKHR> requires <VK_KHR_performance_query>" );
16222 #  endif
16223 
16224     VULKAN_HPP_NAMESPACE::Result result =
16225       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAcquireProfilingLockKHR( m_device, reinterpret_cast<const VkAcquireProfilingLockInfoKHR *>( &info ) ) );
16226     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireProfilingLockKHR" );
16227 
16228     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
16229   }
16230 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
16231 
16232   // wrapper function for command vkReleaseProfilingLockKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseProfilingLockKHR.html
16233   template <typename Dispatch>
releaseProfilingLockKHR(Dispatch const & d) const16234   VULKAN_HPP_INLINE void Device::releaseProfilingLockKHR( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
16235   {
16236     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16237     d.vkReleaseProfilingLockKHR( static_cast<VkDevice>( m_device ) );
16238   }
16239 
16240   //=== VK_KHR_get_surface_capabilities2 ===
16241 
16242   // wrapper function for command vkGetPhysicalDeviceSurfaceCapabilities2KHR, see
16243   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceCapabilities2KHR.html
16244   template <typename Dispatch>
16245   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getSurfaceCapabilities2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR * pSurfaceCapabilities,Dispatch const & d) const16246     PhysicalDevice::getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,
16247                                                 VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR *             pSurfaceCapabilities,
16248                                                 Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
16249   {
16250     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16251     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
16252                                                                               reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( pSurfaceInfo ),
16253                                                                               reinterpret_cast<VkSurfaceCapabilities2KHR *>( pSurfaceCapabilities ) ) );
16254   }
16255 
16256 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16257   // wrapper function for command vkGetPhysicalDeviceSurfaceCapabilities2KHR, see
16258   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceCapabilities2KHR.html
16259   template <typename Dispatch>
16260   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR>::type
getSurfaceCapabilities2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const16261     PhysicalDevice::getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const
16262   {
16263     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16264 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
16265     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR &&
16266                        "Function <vkGetPhysicalDeviceSurfaceCapabilities2KHR> requires <VK_KHR_get_surface_capabilities2>" );
16267 #  endif
16268 
16269     VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR surfaceCapabilities;
16270     VULKAN_HPP_NAMESPACE::Result                  result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
16271       d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice,
16272                                                     reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
16273                                                     reinterpret_cast<VkSurfaceCapabilities2KHR *>( &surfaceCapabilities ) ) );
16274     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" );
16275 
16276     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surfaceCapabilities ) );
16277   }
16278 
16279   // wrapper function for command vkGetPhysicalDeviceSurfaceCapabilities2KHR, see
16280   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceCapabilities2KHR.html
16281   template <typename X, typename Y, typename... Z, typename Dispatch>
16282   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>>::type
getSurfaceCapabilities2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const16283     PhysicalDevice::getSurfaceCapabilities2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const
16284   {
16285     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16286 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
16287     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceSurfaceCapabilities2KHR &&
16288                        "Function <vkGetPhysicalDeviceSurfaceCapabilities2KHR> requires <VK_KHR_get_surface_capabilities2>" );
16289 #  endif
16290 
16291     StructureChain<X, Y, Z...>                      structureChain;
16292     VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR & surfaceCapabilities = structureChain.template get<VULKAN_HPP_NAMESPACE::SurfaceCapabilities2KHR>();
16293     VULKAN_HPP_NAMESPACE::Result                    result              = static_cast<VULKAN_HPP_NAMESPACE::Result>(
16294       d.vkGetPhysicalDeviceSurfaceCapabilities2KHR( m_physicalDevice,
16295                                                     reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
16296                                                     reinterpret_cast<VkSurfaceCapabilities2KHR *>( &surfaceCapabilities ) ) );
16297     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceCapabilities2KHR" );
16298 
16299     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( structureChain ) );
16300   }
16301 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
16302 
16303   // wrapper function for command vkGetPhysicalDeviceSurfaceFormats2KHR, see
16304   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceFormats2KHR.html
16305   template <typename Dispatch>
getSurfaceFormats2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pSurfaceFormatCount,VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR * pSurfaceFormats,Dispatch const & d) const16306   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,
16307                                                                                        uint32_t *                                pSurfaceFormatCount,
16308                                                                                        VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR * pSurfaceFormats,
16309                                                                                        Dispatch const &                          d ) const VULKAN_HPP_NOEXCEPT
16310   {
16311     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16312     return static_cast<Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
16313                                                                          reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( pSurfaceInfo ),
16314                                                                          pSurfaceFormatCount,
16315                                                                          reinterpret_cast<VkSurfaceFormat2KHR *>( pSurfaceFormats ) ) );
16316   }
16317 
16318 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16319   // wrapper function for command vkGetPhysicalDeviceSurfaceFormats2KHR, see
16320   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceFormats2KHR.html
16321   template <typename SurfaceFormat2KHRAllocator,
16322             typename Dispatch,
16323             typename std::enable_if<std::is_same<typename SurfaceFormat2KHRAllocator::value_type, VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR>::value, int>::type>
16324   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR, SurfaceFormat2KHRAllocator>>::type
getSurfaceFormats2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const16325     PhysicalDevice::getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const
16326   {
16327     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16328 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
16329     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceSurfaceFormats2KHR &&
16330                        "Function <vkGetPhysicalDeviceSurfaceFormats2KHR> requires <VK_KHR_get_surface_capabilities2>" );
16331 #  endif
16332 
16333     std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR, SurfaceFormat2KHRAllocator> surfaceFormats;
16334     uint32_t                                                                         surfaceFormatCount;
16335     VULKAN_HPP_NAMESPACE::Result                                                     result;
16336     do
16337     {
16338       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR(
16339         m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &surfaceFormatCount, nullptr ) );
16340       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && surfaceFormatCount )
16341       {
16342         surfaceFormats.resize( surfaceFormatCount );
16343         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
16344           d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice,
16345                                                    reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
16346                                                    &surfaceFormatCount,
16347                                                    reinterpret_cast<VkSurfaceFormat2KHR *>( surfaceFormats.data() ) ) );
16348       }
16349     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
16350     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" );
16351     VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
16352     if ( surfaceFormatCount < surfaceFormats.size() )
16353     {
16354       surfaceFormats.resize( surfaceFormatCount );
16355     }
16356     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surfaceFormats ) );
16357   }
16358 
16359   // wrapper function for command vkGetPhysicalDeviceSurfaceFormats2KHR, see
16360   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceFormats2KHR.html
16361   template <typename SurfaceFormat2KHRAllocator,
16362             typename Dispatch,
16363             typename std::enable_if<std::is_same<typename SurfaceFormat2KHRAllocator::value_type, VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR>::value, int>::type>
16364   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR, SurfaceFormat2KHRAllocator>>::type
getSurfaceFormats2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,SurfaceFormat2KHRAllocator & surfaceFormat2KHRAllocator,Dispatch const & d) const16365                        PhysicalDevice::getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,
16366                                            SurfaceFormat2KHRAllocator &                                surfaceFormat2KHRAllocator,
16367                                            Dispatch const &                                            d ) const
16368   {
16369     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16370 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
16371     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceSurfaceFormats2KHR &&
16372                        "Function <vkGetPhysicalDeviceSurfaceFormats2KHR> requires <VK_KHR_get_surface_capabilities2>" );
16373 #  endif
16374 
16375     std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR, SurfaceFormat2KHRAllocator> surfaceFormats( surfaceFormat2KHRAllocator );
16376     uint32_t                                                                         surfaceFormatCount;
16377     VULKAN_HPP_NAMESPACE::Result                                                     result;
16378     do
16379     {
16380       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR(
16381         m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &surfaceFormatCount, nullptr ) );
16382       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && surfaceFormatCount )
16383       {
16384         surfaceFormats.resize( surfaceFormatCount );
16385         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
16386           d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice,
16387                                                    reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
16388                                                    &surfaceFormatCount,
16389                                                    reinterpret_cast<VkSurfaceFormat2KHR *>( surfaceFormats.data() ) ) );
16390       }
16391     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
16392     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" );
16393     VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
16394     if ( surfaceFormatCount < surfaceFormats.size() )
16395     {
16396       surfaceFormats.resize( surfaceFormatCount );
16397     }
16398     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surfaceFormats ) );
16399   }
16400 
16401   // wrapper function for command vkGetPhysicalDeviceSurfaceFormats2KHR, see
16402   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceFormats2KHR.html
16403   template <typename StructureChain,
16404             typename StructureChainAllocator,
16405             typename Dispatch,
16406             typename std::enable_if<std::is_same<typename StructureChainAllocator::value_type, StructureChain>::value, int>::type>
16407   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<StructureChain, StructureChainAllocator>>::type
getSurfaceFormats2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const16408     PhysicalDevice::getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const
16409   {
16410     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16411 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
16412     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceSurfaceFormats2KHR &&
16413                        "Function <vkGetPhysicalDeviceSurfaceFormats2KHR> requires <VK_KHR_get_surface_capabilities2>" );
16414 #  endif
16415 
16416     std::vector<StructureChain, StructureChainAllocator> structureChains;
16417     std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR> surfaceFormats;
16418     uint32_t                                             surfaceFormatCount;
16419     VULKAN_HPP_NAMESPACE::Result                         result;
16420     do
16421     {
16422       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR(
16423         m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &surfaceFormatCount, nullptr ) );
16424       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && surfaceFormatCount )
16425       {
16426         structureChains.resize( surfaceFormatCount );
16427         surfaceFormats.resize( surfaceFormatCount );
16428         for ( uint32_t i = 0; i < surfaceFormatCount; i++ )
16429         {
16430           surfaceFormats[i].pNext = structureChains[i].template get<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR>().pNext;
16431         }
16432         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
16433           d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice,
16434                                                    reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
16435                                                    &surfaceFormatCount,
16436                                                    reinterpret_cast<VkSurfaceFormat2KHR *>( surfaceFormats.data() ) ) );
16437       }
16438     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
16439     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" );
16440     VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
16441     if ( surfaceFormatCount < surfaceFormats.size() )
16442     {
16443       structureChains.resize( surfaceFormatCount );
16444     }
16445     for ( uint32_t i = 0; i < surfaceFormatCount; i++ )
16446     {
16447       structureChains[i].template get<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR>() = surfaceFormats[i];
16448     }
16449     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( structureChains ) );
16450   }
16451 
16452   // wrapper function for command vkGetPhysicalDeviceSurfaceFormats2KHR, see
16453   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfaceFormats2KHR.html
16454   template <typename StructureChain,
16455             typename StructureChainAllocator,
16456             typename Dispatch,
16457             typename std::enable_if<std::is_same<typename StructureChainAllocator::value_type, StructureChain>::value, int>::type>
16458   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<StructureChain, StructureChainAllocator>>::type
getSurfaceFormats2KHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,StructureChainAllocator & structureChainAllocator,Dispatch const & d) const16459                        PhysicalDevice::getSurfaceFormats2KHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,
16460                                            StructureChainAllocator &                                   structureChainAllocator,
16461                                            Dispatch const &                                            d ) const
16462   {
16463     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16464 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
16465     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceSurfaceFormats2KHR &&
16466                        "Function <vkGetPhysicalDeviceSurfaceFormats2KHR> requires <VK_KHR_get_surface_capabilities2>" );
16467 #  endif
16468 
16469     std::vector<StructureChain, StructureChainAllocator> structureChains( structureChainAllocator );
16470     std::vector<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR> surfaceFormats;
16471     uint32_t                                             surfaceFormatCount;
16472     VULKAN_HPP_NAMESPACE::Result                         result;
16473     do
16474     {
16475       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfaceFormats2KHR(
16476         m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &surfaceFormatCount, nullptr ) );
16477       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && surfaceFormatCount )
16478       {
16479         structureChains.resize( surfaceFormatCount );
16480         surfaceFormats.resize( surfaceFormatCount );
16481         for ( uint32_t i = 0; i < surfaceFormatCount; i++ )
16482         {
16483           surfaceFormats[i].pNext = structureChains[i].template get<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR>().pNext;
16484         }
16485         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
16486           d.vkGetPhysicalDeviceSurfaceFormats2KHR( m_physicalDevice,
16487                                                    reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
16488                                                    &surfaceFormatCount,
16489                                                    reinterpret_cast<VkSurfaceFormat2KHR *>( surfaceFormats.data() ) ) );
16490       }
16491     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
16492     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfaceFormats2KHR" );
16493     VULKAN_HPP_ASSERT( surfaceFormatCount <= surfaceFormats.size() );
16494     if ( surfaceFormatCount < surfaceFormats.size() )
16495     {
16496       structureChains.resize( surfaceFormatCount );
16497     }
16498     for ( uint32_t i = 0; i < surfaceFormatCount; i++ )
16499     {
16500       structureChains[i].template get<VULKAN_HPP_NAMESPACE::SurfaceFormat2KHR>() = surfaceFormats[i];
16501     }
16502     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( structureChains ) );
16503   }
16504 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
16505 
16506   //=== VK_KHR_get_display_properties2 ===
16507 
16508   // wrapper function for command vkGetPhysicalDeviceDisplayProperties2KHR, see
16509   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayProperties2KHR.html
16510   template <typename Dispatch>
getDisplayProperties2KHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayProperties2KHR * pProperties,Dispatch const & d) const16511   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayProperties2KHR( uint32_t *                                    pPropertyCount,
16512                                                                                           VULKAN_HPP_NAMESPACE::DisplayProperties2KHR * pProperties,
16513                                                                                           Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
16514   {
16515     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16516     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR(
16517       static_cast<VkPhysicalDevice>( m_physicalDevice ), pPropertyCount, reinterpret_cast<VkDisplayProperties2KHR *>( pProperties ) ) );
16518   }
16519 
16520 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16521   // wrapper function for command vkGetPhysicalDeviceDisplayProperties2KHR, see
16522   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayProperties2KHR.html
16523   template <
16524     typename DisplayProperties2KHRAllocator,
16525     typename Dispatch,
16526     typename std::enable_if<std::is_same<typename DisplayProperties2KHRAllocator::value_type, VULKAN_HPP_NAMESPACE::DisplayProperties2KHR>::value, int>::type>
16527   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
16528     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR, DisplayProperties2KHRAllocator>>::type
getDisplayProperties2KHR(Dispatch const & d) const16529     PhysicalDevice::getDisplayProperties2KHR( Dispatch const & d ) const
16530   {
16531     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16532 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
16533     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceDisplayProperties2KHR &&
16534                        "Function <vkGetPhysicalDeviceDisplayProperties2KHR> requires <VK_KHR_get_display_properties2>" );
16535 #  endif
16536 
16537     std::vector<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR, DisplayProperties2KHRAllocator> properties;
16538     uint32_t                                                                                 propertyCount;
16539     VULKAN_HPP_NAMESPACE::Result                                                             result;
16540     do
16541     {
16542       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
16543       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
16544       {
16545         properties.resize( propertyCount );
16546         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
16547           d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayProperties2KHR *>( properties.data() ) ) );
16548       }
16549     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
16550     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayProperties2KHR" );
16551     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
16552     if ( propertyCount < properties.size() )
16553     {
16554       properties.resize( propertyCount );
16555     }
16556     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
16557   }
16558 
16559   // wrapper function for command vkGetPhysicalDeviceDisplayProperties2KHR, see
16560   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayProperties2KHR.html
16561   template <
16562     typename DisplayProperties2KHRAllocator,
16563     typename Dispatch,
16564     typename std::enable_if<std::is_same<typename DisplayProperties2KHRAllocator::value_type, VULKAN_HPP_NAMESPACE::DisplayProperties2KHR>::value, int>::type>
16565   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
16566     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR, DisplayProperties2KHRAllocator>>::type
getDisplayProperties2KHR(DisplayProperties2KHRAllocator & displayProperties2KHRAllocator,Dispatch const & d) const16567     PhysicalDevice::getDisplayProperties2KHR( DisplayProperties2KHRAllocator & displayProperties2KHRAllocator, Dispatch const & d ) const
16568   {
16569     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16570 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
16571     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceDisplayProperties2KHR &&
16572                        "Function <vkGetPhysicalDeviceDisplayProperties2KHR> requires <VK_KHR_get_display_properties2>" );
16573 #  endif
16574 
16575     std::vector<VULKAN_HPP_NAMESPACE::DisplayProperties2KHR, DisplayProperties2KHRAllocator> properties( displayProperties2KHRAllocator );
16576     uint32_t                                                                                 propertyCount;
16577     VULKAN_HPP_NAMESPACE::Result                                                             result;
16578     do
16579     {
16580       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
16581       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
16582       {
16583         properties.resize( propertyCount );
16584         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
16585           d.vkGetPhysicalDeviceDisplayProperties2KHR( m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayProperties2KHR *>( properties.data() ) ) );
16586       }
16587     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
16588     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayProperties2KHR" );
16589     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
16590     if ( propertyCount < properties.size() )
16591     {
16592       properties.resize( propertyCount );
16593     }
16594     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
16595   }
16596 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
16597 
16598   // wrapper function for command vkGetPhysicalDeviceDisplayPlaneProperties2KHR, see
16599   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayPlaneProperties2KHR.html
16600   template <typename Dispatch>
getDisplayPlaneProperties2KHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR * pProperties,Dispatch const & d) const16601   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayPlaneProperties2KHR( uint32_t * pPropertyCount,
16602                                                                                                VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR * pProperties,
16603                                                                                                Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
16604   {
16605     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16606     return static_cast<Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
16607       static_cast<VkPhysicalDevice>( m_physicalDevice ), pPropertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR *>( pProperties ) ) );
16608   }
16609 
16610 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16611   // wrapper function for command vkGetPhysicalDeviceDisplayPlaneProperties2KHR, see
16612   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayPlaneProperties2KHR.html
16613   template <
16614     typename DisplayPlaneProperties2KHRAllocator,
16615     typename Dispatch,
16616     typename std::enable_if<std::is_same<typename DisplayPlaneProperties2KHRAllocator::value_type, VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR>::value,
16617                             int>::type>
16618   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
16619     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR, DisplayPlaneProperties2KHRAllocator>>::type
getDisplayPlaneProperties2KHR(Dispatch const & d) const16620     PhysicalDevice::getDisplayPlaneProperties2KHR( Dispatch const & d ) const
16621   {
16622     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16623 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
16624     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR &&
16625                        "Function <vkGetPhysicalDeviceDisplayPlaneProperties2KHR> requires <VK_KHR_get_display_properties2>" );
16626 #  endif
16627 
16628     std::vector<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR, DisplayPlaneProperties2KHRAllocator> properties;
16629     uint32_t                                                                                           propertyCount;
16630     VULKAN_HPP_NAMESPACE::Result                                                                       result;
16631     do
16632     {
16633       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
16634       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
16635       {
16636         properties.resize( propertyCount );
16637         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
16638           m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR *>( properties.data() ) ) );
16639       }
16640     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
16641     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneProperties2KHR" );
16642     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
16643     if ( propertyCount < properties.size() )
16644     {
16645       properties.resize( propertyCount );
16646     }
16647     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
16648   }
16649 
16650   // wrapper function for command vkGetPhysicalDeviceDisplayPlaneProperties2KHR, see
16651   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDisplayPlaneProperties2KHR.html
16652   template <
16653     typename DisplayPlaneProperties2KHRAllocator,
16654     typename Dispatch,
16655     typename std::enable_if<std::is_same<typename DisplayPlaneProperties2KHRAllocator::value_type, VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR>::value,
16656                             int>::type>
16657   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
16658     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR, DisplayPlaneProperties2KHRAllocator>>::type
getDisplayPlaneProperties2KHR(DisplayPlaneProperties2KHRAllocator & displayPlaneProperties2KHRAllocator,Dispatch const & d) const16659     PhysicalDevice::getDisplayPlaneProperties2KHR( DisplayPlaneProperties2KHRAllocator & displayPlaneProperties2KHRAllocator, Dispatch const & d ) const
16660   {
16661     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16662 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
16663     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR &&
16664                        "Function <vkGetPhysicalDeviceDisplayPlaneProperties2KHR> requires <VK_KHR_get_display_properties2>" );
16665 #  endif
16666 
16667     std::vector<VULKAN_HPP_NAMESPACE::DisplayPlaneProperties2KHR, DisplayPlaneProperties2KHRAllocator> properties( displayPlaneProperties2KHRAllocator );
16668     uint32_t                                                                                           propertyCount;
16669     VULKAN_HPP_NAMESPACE::Result                                                                       result;
16670     do
16671     {
16672       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR( m_physicalDevice, &propertyCount, nullptr ) );
16673       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
16674       {
16675         properties.resize( propertyCount );
16676         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceDisplayPlaneProperties2KHR(
16677           m_physicalDevice, &propertyCount, reinterpret_cast<VkDisplayPlaneProperties2KHR *>( properties.data() ) ) );
16678       }
16679     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
16680     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneProperties2KHR" );
16681     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
16682     if ( propertyCount < properties.size() )
16683     {
16684       properties.resize( propertyCount );
16685     }
16686     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
16687   }
16688 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
16689 
16690   // wrapper function for command vkGetDisplayModeProperties2KHR, see
16691   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayModeProperties2KHR.html
16692   template <typename Dispatch>
getDisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR * pProperties,Dispatch const & d) const16693   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR                  display,
16694                                                                                               uint32_t *                                        pPropertyCount,
16695                                                                                               VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR * pProperties,
16696                                                                                               Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
16697   {
16698     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16699     return static_cast<Result>( d.vkGetDisplayModeProperties2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
16700                                                                   static_cast<VkDisplayKHR>( display ),
16701                                                                   pPropertyCount,
16702                                                                   reinterpret_cast<VkDisplayModeProperties2KHR *>( pProperties ) ) );
16703   }
16704 
16705 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16706   // wrapper function for command vkGetDisplayModeProperties2KHR, see
16707   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayModeProperties2KHR.html
16708   template <
16709     typename DisplayModeProperties2KHRAllocator,
16710     typename Dispatch,
16711     typename std::enable_if<std::is_same<typename DisplayModeProperties2KHRAllocator::value_type, VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR>::value,
16712                             int>::type>
16713   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
16714     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR, DisplayModeProperties2KHRAllocator>>::type
getDisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const16715     PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const
16716   {
16717     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16718 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
16719     VULKAN_HPP_ASSERT( d.vkGetDisplayModeProperties2KHR && "Function <vkGetDisplayModeProperties2KHR> requires <VK_KHR_get_display_properties2>" );
16720 #  endif
16721 
16722     std::vector<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR, DisplayModeProperties2KHRAllocator> properties;
16723     uint32_t                                                                                         propertyCount;
16724     VULKAN_HPP_NAMESPACE::Result                                                                     result;
16725     do
16726     {
16727       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
16728         d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
16729       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
16730       {
16731         properties.resize( propertyCount );
16732         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDisplayModeProperties2KHR(
16733           m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModeProperties2KHR *>( properties.data() ) ) );
16734       }
16735     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
16736     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayModeProperties2KHR" );
16737     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
16738     if ( propertyCount < properties.size() )
16739     {
16740       properties.resize( propertyCount );
16741     }
16742     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
16743   }
16744 
16745   // wrapper function for command vkGetDisplayModeProperties2KHR, see
16746   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayModeProperties2KHR.html
16747   template <
16748     typename DisplayModeProperties2KHRAllocator,
16749     typename Dispatch,
16750     typename std::enable_if<std::is_same<typename DisplayModeProperties2KHRAllocator::value_type, VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR>::value,
16751                             int>::type>
16752   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
16753     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR, DisplayModeProperties2KHRAllocator>>::type
getDisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,DisplayModeProperties2KHRAllocator & displayModeProperties2KHRAllocator,Dispatch const & d) const16754     PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR     display,
16755                                                   DisplayModeProperties2KHRAllocator & displayModeProperties2KHRAllocator,
16756                                                   Dispatch const &                     d ) const
16757   {
16758     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16759 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
16760     VULKAN_HPP_ASSERT( d.vkGetDisplayModeProperties2KHR && "Function <vkGetDisplayModeProperties2KHR> requires <VK_KHR_get_display_properties2>" );
16761 #  endif
16762 
16763     std::vector<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR, DisplayModeProperties2KHRAllocator> properties( displayModeProperties2KHRAllocator );
16764     uint32_t                                                                                         propertyCount;
16765     VULKAN_HPP_NAMESPACE::Result                                                                     result;
16766     do
16767     {
16768       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
16769         d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
16770       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
16771       {
16772         properties.resize( propertyCount );
16773         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDisplayModeProperties2KHR(
16774           m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModeProperties2KHR *>( properties.data() ) ) );
16775       }
16776     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
16777     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayModeProperties2KHR" );
16778     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
16779     if ( propertyCount < properties.size() )
16780     {
16781       properties.resize( propertyCount );
16782     }
16783     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
16784   }
16785 
16786   // wrapper function for command vkGetDisplayModeProperties2KHR, see
16787   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayModeProperties2KHR.html
16788   template <typename StructureChain,
16789             typename StructureChainAllocator,
16790             typename Dispatch,
16791             typename std::enable_if<std::is_same<typename StructureChainAllocator::value_type, StructureChain>::value, int>::type>
16792   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<StructureChain, StructureChainAllocator>>::type
getDisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const16793                        PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const
16794   {
16795     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16796 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
16797     VULKAN_HPP_ASSERT( d.vkGetDisplayModeProperties2KHR && "Function <vkGetDisplayModeProperties2KHR> requires <VK_KHR_get_display_properties2>" );
16798 #  endif
16799 
16800     std::vector<StructureChain, StructureChainAllocator>         structureChains;
16801     std::vector<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR> properties;
16802     uint32_t                                                     propertyCount;
16803     VULKAN_HPP_NAMESPACE::Result                                 result;
16804     do
16805     {
16806       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
16807         d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
16808       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
16809       {
16810         structureChains.resize( propertyCount );
16811         properties.resize( propertyCount );
16812         for ( uint32_t i = 0; i < propertyCount; i++ )
16813         {
16814           properties[i].pNext = structureChains[i].template get<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR>().pNext;
16815         }
16816         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDisplayModeProperties2KHR(
16817           m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModeProperties2KHR *>( properties.data() ) ) );
16818       }
16819     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
16820     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayModeProperties2KHR" );
16821     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
16822     if ( propertyCount < properties.size() )
16823     {
16824       structureChains.resize( propertyCount );
16825     }
16826     for ( uint32_t i = 0; i < propertyCount; i++ )
16827     {
16828       structureChains[i].template get<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR>() = properties[i];
16829     }
16830     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( structureChains ) );
16831   }
16832 
16833   // wrapper function for command vkGetDisplayModeProperties2KHR, see
16834   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayModeProperties2KHR.html
16835   template <typename StructureChain,
16836             typename StructureChainAllocator,
16837             typename Dispatch,
16838             typename std::enable_if<std::is_same<typename StructureChainAllocator::value_type, StructureChain>::value, int>::type>
16839   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<StructureChain, StructureChainAllocator>>::type
getDisplayModeProperties2KHR(VULKAN_HPP_NAMESPACE::DisplayKHR display,StructureChainAllocator & structureChainAllocator,Dispatch const & d) const16840                        PhysicalDevice::getDisplayModeProperties2KHR( VULKAN_HPP_NAMESPACE::DisplayKHR display,
16841                                                   StructureChainAllocator &        structureChainAllocator,
16842                                                   Dispatch const &                 d ) const
16843   {
16844     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16845 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
16846     VULKAN_HPP_ASSERT( d.vkGetDisplayModeProperties2KHR && "Function <vkGetDisplayModeProperties2KHR> requires <VK_KHR_get_display_properties2>" );
16847 #  endif
16848 
16849     std::vector<StructureChain, StructureChainAllocator>         structureChains( structureChainAllocator );
16850     std::vector<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR> properties;
16851     uint32_t                                                     propertyCount;
16852     VULKAN_HPP_NAMESPACE::Result                                 result;
16853     do
16854     {
16855       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
16856         d.vkGetDisplayModeProperties2KHR( m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, nullptr ) );
16857       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
16858       {
16859         structureChains.resize( propertyCount );
16860         properties.resize( propertyCount );
16861         for ( uint32_t i = 0; i < propertyCount; i++ )
16862         {
16863           properties[i].pNext = structureChains[i].template get<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR>().pNext;
16864         }
16865         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDisplayModeProperties2KHR(
16866           m_physicalDevice, static_cast<VkDisplayKHR>( display ), &propertyCount, reinterpret_cast<VkDisplayModeProperties2KHR *>( properties.data() ) ) );
16867       }
16868     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
16869     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayModeProperties2KHR" );
16870     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
16871     if ( propertyCount < properties.size() )
16872     {
16873       structureChains.resize( propertyCount );
16874     }
16875     for ( uint32_t i = 0; i < propertyCount; i++ )
16876     {
16877       structureChains[i].template get<VULKAN_HPP_NAMESPACE::DisplayModeProperties2KHR>() = properties[i];
16878     }
16879     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( structureChains ) );
16880   }
16881 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
16882 
16883   // wrapper function for command vkGetDisplayPlaneCapabilities2KHR, see
16884   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayPlaneCapabilities2KHR.html
16885   template <typename Dispatch>
16886   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getDisplayPlaneCapabilities2KHR(const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR * pDisplayPlaneInfo,VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR * pCapabilities,Dispatch const & d) const16887     PhysicalDevice::getDisplayPlaneCapabilities2KHR( const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR *   pDisplayPlaneInfo,
16888                                                      VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR * pCapabilities,
16889                                                      Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
16890   {
16891     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16892     return static_cast<Result>( d.vkGetDisplayPlaneCapabilities2KHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
16893                                                                      reinterpret_cast<const VkDisplayPlaneInfo2KHR *>( pDisplayPlaneInfo ),
16894                                                                      reinterpret_cast<VkDisplayPlaneCapabilities2KHR *>( pCapabilities ) ) );
16895   }
16896 
16897 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16898   // wrapper function for command vkGetDisplayPlaneCapabilities2KHR, see
16899   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDisplayPlaneCapabilities2KHR.html
16900   template <typename Dispatch>
16901   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR>::type
getDisplayPlaneCapabilities2KHR(const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR & displayPlaneInfo,Dispatch const & d) const16902     PhysicalDevice::getDisplayPlaneCapabilities2KHR( const VULKAN_HPP_NAMESPACE::DisplayPlaneInfo2KHR & displayPlaneInfo, Dispatch const & d ) const
16903   {
16904     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16905 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
16906     VULKAN_HPP_ASSERT( d.vkGetDisplayPlaneCapabilities2KHR && "Function <vkGetDisplayPlaneCapabilities2KHR> requires <VK_KHR_get_display_properties2>" );
16907 #  endif
16908 
16909     VULKAN_HPP_NAMESPACE::DisplayPlaneCapabilities2KHR capabilities;
16910     VULKAN_HPP_NAMESPACE::Result                       result =
16911       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDisplayPlaneCapabilities2KHR( m_physicalDevice,
16912                                                                                       reinterpret_cast<const VkDisplayPlaneInfo2KHR *>( &displayPlaneInfo ),
16913                                                                                       reinterpret_cast<VkDisplayPlaneCapabilities2KHR *>( &capabilities ) ) );
16914     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDisplayPlaneCapabilities2KHR" );
16915 
16916     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( capabilities ) );
16917   }
16918 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
16919 
16920 #if defined( VK_USE_PLATFORM_IOS_MVK )
16921   //=== VK_MVK_ios_surface ===
16922 
16923   // wrapper function for command vkCreateIOSSurfaceMVK, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIOSSurfaceMVK.html
16924   template <typename Dispatch>
createIOSSurfaceMVK(const VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const16925   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createIOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK * pCreateInfo,
16926                                                                                const VULKAN_HPP_NAMESPACE::AllocationCallbacks *     pAllocator,
16927                                                                                VULKAN_HPP_NAMESPACE::SurfaceKHR *                    pSurface,
16928                                                                                Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
16929   {
16930     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16931     return static_cast<Result>( d.vkCreateIOSSurfaceMVK( static_cast<VkInstance>( m_instance ),
16932                                                          reinterpret_cast<const VkIOSSurfaceCreateInfoMVK *>( pCreateInfo ),
16933                                                          reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
16934                                                          reinterpret_cast<VkSurfaceKHR *>( pSurface ) ) );
16935   }
16936 
16937 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
16938   // wrapper function for command vkCreateIOSSurfaceMVK, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIOSSurfaceMVK.html
16939   template <typename Dispatch>
16940   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type
createIOSSurfaceMVK(const VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const16941                        Instance::createIOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK &     createInfo,
16942                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
16943                                    Dispatch const &                                          d ) const
16944   {
16945     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16946 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
16947     VULKAN_HPP_ASSERT( d.vkCreateIOSSurfaceMVK && "Function <vkCreateIOSSurfaceMVK> requires <VK_MVK_ios_surface>" );
16948 #    endif
16949 
16950     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
16951     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
16952       d.vkCreateIOSSurfaceMVK( m_instance,
16953                                reinterpret_cast<const VkIOSSurfaceCreateInfoMVK *>( &createInfo ),
16954                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
16955                                reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
16956     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createIOSSurfaceMVK" );
16957 
16958     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surface ) );
16959   }
16960 
16961 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
16962   // wrapper function for command vkCreateIOSSurfaceMVK, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIOSSurfaceMVK.html
16963   template <typename Dispatch>
16964   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type
createIOSSurfaceMVKUnique(const VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const16965                        Instance::createIOSSurfaceMVKUnique( const VULKAN_HPP_NAMESPACE::IOSSurfaceCreateInfoMVK &     createInfo,
16966                                          Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
16967                                          Dispatch const &                                          d ) const
16968   {
16969     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
16970 #      if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
16971     VULKAN_HPP_ASSERT( d.vkCreateIOSSurfaceMVK && "Function <vkCreateIOSSurfaceMVK> requires <VK_MVK_ios_surface>" );
16972 #      endif
16973 
16974     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
16975     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
16976       d.vkCreateIOSSurfaceMVK( m_instance,
16977                                reinterpret_cast<const VkIOSSurfaceCreateInfoMVK *>( &createInfo ),
16978                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
16979                                reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
16980     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createIOSSurfaceMVKUnique" );
16981 
16982     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
16983       result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, detail::ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
16984   }
16985 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
16986 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
16987 #endif     /*VK_USE_PLATFORM_IOS_MVK*/
16988 
16989 #if defined( VK_USE_PLATFORM_MACOS_MVK )
16990   //=== VK_MVK_macos_surface ===
16991 
16992   // wrapper function for command vkCreateMacOSSurfaceMVK, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateMacOSSurfaceMVK.html
16993   template <typename Dispatch>
createMacOSSurfaceMVK(const VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const16994   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createMacOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK * pCreateInfo,
16995                                                                                  const VULKAN_HPP_NAMESPACE::AllocationCallbacks *       pAllocator,
16996                                                                                  VULKAN_HPP_NAMESPACE::SurfaceKHR *                      pSurface,
16997                                                                                  Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
16998   {
16999     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17000     return static_cast<Result>( d.vkCreateMacOSSurfaceMVK( static_cast<VkInstance>( m_instance ),
17001                                                            reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK *>( pCreateInfo ),
17002                                                            reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
17003                                                            reinterpret_cast<VkSurfaceKHR *>( pSurface ) ) );
17004   }
17005 
17006 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17007   // wrapper function for command vkCreateMacOSSurfaceMVK, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateMacOSSurfaceMVK.html
17008   template <typename Dispatch>
17009   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type
createMacOSSurfaceMVK(const VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const17010                        Instance::createMacOSSurfaceMVK( const VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK &   createInfo,
17011                                      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
17012                                      Dispatch const &                                          d ) const
17013   {
17014     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17015 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17016     VULKAN_HPP_ASSERT( d.vkCreateMacOSSurfaceMVK && "Function <vkCreateMacOSSurfaceMVK> requires <VK_MVK_macos_surface>" );
17017 #    endif
17018 
17019     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
17020     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
17021       d.vkCreateMacOSSurfaceMVK( m_instance,
17022                                  reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK *>( &createInfo ),
17023                                  reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
17024                                  reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
17025     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMacOSSurfaceMVK" );
17026 
17027     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surface ) );
17028   }
17029 
17030 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
17031   // wrapper function for command vkCreateMacOSSurfaceMVK, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateMacOSSurfaceMVK.html
17032   template <typename Dispatch>
17033   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type
createMacOSSurfaceMVKUnique(const VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const17034                        Instance::createMacOSSurfaceMVKUnique( const VULKAN_HPP_NAMESPACE::MacOSSurfaceCreateInfoMVK &   createInfo,
17035                                            Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
17036                                            Dispatch const &                                          d ) const
17037   {
17038     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17039 #      if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17040     VULKAN_HPP_ASSERT( d.vkCreateMacOSSurfaceMVK && "Function <vkCreateMacOSSurfaceMVK> requires <VK_MVK_macos_surface>" );
17041 #      endif
17042 
17043     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
17044     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
17045       d.vkCreateMacOSSurfaceMVK( m_instance,
17046                                  reinterpret_cast<const VkMacOSSurfaceCreateInfoMVK *>( &createInfo ),
17047                                  reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
17048                                  reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
17049     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMacOSSurfaceMVKUnique" );
17050 
17051     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
17052       result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, detail::ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
17053   }
17054 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
17055 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
17056 #endif     /*VK_USE_PLATFORM_MACOS_MVK*/
17057 
17058   //=== VK_EXT_debug_utils ===
17059 
17060   // wrapper function for command vkSetDebugUtilsObjectNameEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetDebugUtilsObjectNameEXT.html
17061   template <typename Dispatch>
setDebugUtilsObjectNameEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pNameInfo,Dispatch const & d) const17062   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT * pNameInfo,
17063                                                                                     Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
17064   {
17065     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17066     return static_cast<Result>(
17067       d.vkSetDebugUtilsObjectNameEXT( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT *>( pNameInfo ) ) );
17068   }
17069 
17070 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17071   // wrapper function for command vkSetDebugUtilsObjectNameEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetDebugUtilsObjectNameEXT.html
17072   template <typename Dispatch>
17073   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
setDebugUtilsObjectNameEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT & nameInfo,Dispatch const & d) const17074     Device::setDebugUtilsObjectNameEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectNameInfoEXT & nameInfo, Dispatch const & d ) const
17075   {
17076     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17077 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17078     VULKAN_HPP_ASSERT( d.vkSetDebugUtilsObjectNameEXT && "Function <vkSetDebugUtilsObjectNameEXT> requires <VK_EXT_debug_utils>" );
17079 #  endif
17080 
17081     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
17082       d.vkSetDebugUtilsObjectNameEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectNameInfoEXT *>( &nameInfo ) ) );
17083     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectNameEXT" );
17084 
17085     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
17086   }
17087 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
17088 
17089   // wrapper function for command vkSetDebugUtilsObjectTagEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetDebugUtilsObjectTagEXT.html
17090   template <typename Dispatch>
setDebugUtilsObjectTagEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT * pTagInfo,Dispatch const & d) const17091   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setDebugUtilsObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT * pTagInfo,
17092                                                                                    Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
17093   {
17094     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17095     return static_cast<Result>(
17096       d.vkSetDebugUtilsObjectTagEXT( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT *>( pTagInfo ) ) );
17097   }
17098 
17099 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17100   // wrapper function for command vkSetDebugUtilsObjectTagEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetDebugUtilsObjectTagEXT.html
17101   template <typename Dispatch>
17102   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
setDebugUtilsObjectTagEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT & tagInfo,Dispatch const & d) const17103     Device::setDebugUtilsObjectTagEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsObjectTagInfoEXT & tagInfo, Dispatch const & d ) const
17104   {
17105     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17106 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17107     VULKAN_HPP_ASSERT( d.vkSetDebugUtilsObjectTagEXT && "Function <vkSetDebugUtilsObjectTagEXT> requires <VK_EXT_debug_utils>" );
17108 #  endif
17109 
17110     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
17111       d.vkSetDebugUtilsObjectTagEXT( m_device, reinterpret_cast<const VkDebugUtilsObjectTagInfoEXT *>( &tagInfo ) ) );
17112     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setDebugUtilsObjectTagEXT" );
17113 
17114     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
17115   }
17116 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
17117 
17118   // wrapper function for command vkQueueBeginDebugUtilsLabelEXT, see
17119   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueBeginDebugUtilsLabelEXT.html
17120   template <typename Dispatch>
beginDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const17121   VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,
17122                                                          Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
17123   {
17124     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17125     d.vkQueueBeginDebugUtilsLabelEXT( static_cast<VkQueue>( m_queue ), reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
17126   }
17127 
17128 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17129   // wrapper function for command vkQueueBeginDebugUtilsLabelEXT, see
17130   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueBeginDebugUtilsLabelEXT.html
17131   template <typename Dispatch>
beginDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const17132   VULKAN_HPP_INLINE void Queue::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo,
17133                                                          Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
17134   {
17135     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17136 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17137     VULKAN_HPP_ASSERT( d.vkQueueBeginDebugUtilsLabelEXT && "Function <vkQueueBeginDebugUtilsLabelEXT> requires <VK_EXT_debug_utils>" );
17138 #  endif
17139 
17140     d.vkQueueBeginDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
17141   }
17142 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
17143 
17144   // wrapper function for command vkQueueEndDebugUtilsLabelEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueEndDebugUtilsLabelEXT.html
17145   template <typename Dispatch>
endDebugUtilsLabelEXT(Dispatch const & d) const17146   VULKAN_HPP_INLINE void Queue::endDebugUtilsLabelEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
17147   {
17148     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17149     d.vkQueueEndDebugUtilsLabelEXT( static_cast<VkQueue>( m_queue ) );
17150   }
17151 
17152   // wrapper function for command vkQueueInsertDebugUtilsLabelEXT, see
17153   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueInsertDebugUtilsLabelEXT.html
17154   template <typename Dispatch>
insertDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const17155   VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,
17156                                                           Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
17157   {
17158     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17159     d.vkQueueInsertDebugUtilsLabelEXT( static_cast<VkQueue>( m_queue ), reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
17160   }
17161 
17162 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17163   // wrapper function for command vkQueueInsertDebugUtilsLabelEXT, see
17164   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueInsertDebugUtilsLabelEXT.html
17165   template <typename Dispatch>
insertDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const17166   VULKAN_HPP_INLINE void Queue::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo,
17167                                                           Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
17168   {
17169     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17170 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17171     VULKAN_HPP_ASSERT( d.vkQueueInsertDebugUtilsLabelEXT && "Function <vkQueueInsertDebugUtilsLabelEXT> requires <VK_EXT_debug_utils>" );
17172 #  endif
17173 
17174     d.vkQueueInsertDebugUtilsLabelEXT( m_queue, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
17175   }
17176 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
17177 
17178   // wrapper function for command vkCmdBeginDebugUtilsLabelEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginDebugUtilsLabelEXT.html
17179   template <typename Dispatch>
beginDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const17180   VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,
17181                                                                  Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
17182   {
17183     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17184     d.vkCmdBeginDebugUtilsLabelEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
17185   }
17186 
17187 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17188   // wrapper function for command vkCmdBeginDebugUtilsLabelEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBeginDebugUtilsLabelEXT.html
17189   template <typename Dispatch>
beginDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const17190   VULKAN_HPP_INLINE void CommandBuffer::beginDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo,
17191                                                                  Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
17192   {
17193     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17194 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17195     VULKAN_HPP_ASSERT( d.vkCmdBeginDebugUtilsLabelEXT && "Function <vkCmdBeginDebugUtilsLabelEXT> requires <VK_EXT_debug_utils>" );
17196 #  endif
17197 
17198     d.vkCmdBeginDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
17199   }
17200 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
17201 
17202   // wrapper function for command vkCmdEndDebugUtilsLabelEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEndDebugUtilsLabelEXT.html
17203   template <typename Dispatch>
endDebugUtilsLabelEXT(Dispatch const & d) const17204   VULKAN_HPP_INLINE void CommandBuffer::endDebugUtilsLabelEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
17205   {
17206     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17207     d.vkCmdEndDebugUtilsLabelEXT( static_cast<VkCommandBuffer>( m_commandBuffer ) );
17208   }
17209 
17210   // wrapper function for command vkCmdInsertDebugUtilsLabelEXT, see
17211   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdInsertDebugUtilsLabelEXT.html
17212   template <typename Dispatch>
insertDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,Dispatch const & d) const17213   VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT * pLabelInfo,
17214                                                                   Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
17215   {
17216     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17217     d.vkCmdInsertDebugUtilsLabelEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkDebugUtilsLabelEXT *>( pLabelInfo ) );
17218   }
17219 
17220 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17221   // wrapper function for command vkCmdInsertDebugUtilsLabelEXT, see
17222   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdInsertDebugUtilsLabelEXT.html
17223   template <typename Dispatch>
insertDebugUtilsLabelEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo,Dispatch const & d) const17224   VULKAN_HPP_INLINE void CommandBuffer::insertDebugUtilsLabelEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsLabelEXT & labelInfo,
17225                                                                   Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
17226   {
17227     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17228 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17229     VULKAN_HPP_ASSERT( d.vkCmdInsertDebugUtilsLabelEXT && "Function <vkCmdInsertDebugUtilsLabelEXT> requires <VK_EXT_debug_utils>" );
17230 #  endif
17231 
17232     d.vkCmdInsertDebugUtilsLabelEXT( m_commandBuffer, reinterpret_cast<const VkDebugUtilsLabelEXT *>( &labelInfo ) );
17233   }
17234 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
17235 
17236   // wrapper function for command vkCreateDebugUtilsMessengerEXT, see
17237   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDebugUtilsMessengerEXT.html
17238   template <typename Dispatch>
17239   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
createDebugUtilsMessengerEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT * pMessenger,Dispatch const & d) const17240     Instance::createDebugUtilsMessengerEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT * pCreateInfo,
17241                                             const VULKAN_HPP_NAMESPACE::AllocationCallbacks *              pAllocator,
17242                                             VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT *                 pMessenger,
17243                                             Dispatch const &                                               d ) const VULKAN_HPP_NOEXCEPT
17244   {
17245     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17246     return static_cast<Result>( d.vkCreateDebugUtilsMessengerEXT( static_cast<VkInstance>( m_instance ),
17247                                                                   reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT *>( pCreateInfo ),
17248                                                                   reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
17249                                                                   reinterpret_cast<VkDebugUtilsMessengerEXT *>( pMessenger ) ) );
17250   }
17251 
17252 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17253   // wrapper function for command vkCreateDebugUtilsMessengerEXT, see
17254   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDebugUtilsMessengerEXT.html
17255   template <typename Dispatch>
17256   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT>::type
createDebugUtilsMessengerEXT(const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const17257                        Instance::createDebugUtilsMessengerEXT( const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT & createInfo,
17258                                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>      allocator,
17259                                             Dispatch const &                                               d ) const
17260   {
17261     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17262 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17263     VULKAN_HPP_ASSERT( d.vkCreateDebugUtilsMessengerEXT && "Function <vkCreateDebugUtilsMessengerEXT> requires <VK_EXT_debug_utils>" );
17264 #  endif
17265 
17266     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger;
17267     VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDebugUtilsMessengerEXT(
17268       m_instance,
17269       reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT *>( &createInfo ),
17270       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
17271       reinterpret_cast<VkDebugUtilsMessengerEXT *>( &messenger ) ) );
17272     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugUtilsMessengerEXT" );
17273 
17274     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( messenger ) );
17275   }
17276 
17277 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
17278   // wrapper function for command vkCreateDebugUtilsMessengerEXT, see
17279   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDebugUtilsMessengerEXT.html
17280   template <typename Dispatch>
17281   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT, Dispatch>>::type
createDebugUtilsMessengerEXTUnique(const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const17282                        Instance::createDebugUtilsMessengerEXTUnique( const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCreateInfoEXT & createInfo,
17283                                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>      allocator,
17284                                                   Dispatch const &                                               d ) const
17285   {
17286     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17287 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17288     VULKAN_HPP_ASSERT( d.vkCreateDebugUtilsMessengerEXT && "Function <vkCreateDebugUtilsMessengerEXT> requires <VK_EXT_debug_utils>" );
17289 #    endif
17290 
17291     VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger;
17292     VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDebugUtilsMessengerEXT(
17293       m_instance,
17294       reinterpret_cast<const VkDebugUtilsMessengerCreateInfoEXT *>( &createInfo ),
17295       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
17296       reinterpret_cast<VkDebugUtilsMessengerEXT *>( &messenger ) ) );
17297     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDebugUtilsMessengerEXTUnique" );
17298 
17299     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
17300       result,
17301       UniqueHandle<VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT, Dispatch>( messenger, detail::ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
17302   }
17303 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
17304 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
17305 
17306   // wrapper function for command vkDestroyDebugUtilsMessengerEXT, see
17307   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDebugUtilsMessengerEXT.html
17308   template <typename Dispatch>
destroyDebugUtilsMessengerEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const17309   VULKAN_HPP_INLINE void Instance::destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT      messenger,
17310                                                                   const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
17311                                                                   Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
17312   {
17313     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17314     d.vkDestroyDebugUtilsMessengerEXT( static_cast<VkInstance>( m_instance ),
17315                                        static_cast<VkDebugUtilsMessengerEXT>( messenger ),
17316                                        reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
17317   }
17318 
17319 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17320   // wrapper function for command vkDestroyDebugUtilsMessengerEXT, see
17321   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDebugUtilsMessengerEXT.html
17322   template <typename Dispatch>
destroyDebugUtilsMessengerEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const17323   VULKAN_HPP_INLINE void Instance::destroyDebugUtilsMessengerEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT              messenger,
17324                                                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
17325                                                                   Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
17326   {
17327     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17328 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17329     VULKAN_HPP_ASSERT( d.vkDestroyDebugUtilsMessengerEXT && "Function <vkDestroyDebugUtilsMessengerEXT> requires <VK_EXT_debug_utils>" );
17330 #  endif
17331 
17332     d.vkDestroyDebugUtilsMessengerEXT(
17333       m_instance,
17334       static_cast<VkDebugUtilsMessengerEXT>( messenger ),
17335       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
17336   }
17337 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
17338 
17339   // wrapper function for command vkDestroyDebugUtilsMessengerEXT, see
17340   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDebugUtilsMessengerEXT.html
17341   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const17342   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT      messenger,
17343                                             const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
17344                                             Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
17345   {
17346     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17347     d.vkDestroyDebugUtilsMessengerEXT( static_cast<VkInstance>( m_instance ),
17348                                        static_cast<VkDebugUtilsMessengerEXT>( messenger ),
17349                                        reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
17350   }
17351 
17352 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17353   // wrapper function for command vkDestroyDebugUtilsMessengerEXT, see
17354   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDebugUtilsMessengerEXT.html
17355   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT messenger,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const17356   VULKAN_HPP_INLINE void Instance::destroy( VULKAN_HPP_NAMESPACE::DebugUtilsMessengerEXT              messenger,
17357                                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
17358                                             Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
17359   {
17360     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17361 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17362     VULKAN_HPP_ASSERT( d.vkDestroyDebugUtilsMessengerEXT && "Function <vkDestroyDebugUtilsMessengerEXT> requires <VK_EXT_debug_utils>" );
17363 #  endif
17364 
17365     d.vkDestroyDebugUtilsMessengerEXT(
17366       m_instance,
17367       static_cast<VkDebugUtilsMessengerEXT>( messenger ),
17368       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
17369   }
17370 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
17371 
17372   // wrapper function for command vkSubmitDebugUtilsMessageEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSubmitDebugUtilsMessageEXT.html
17373   template <typename Dispatch>
submitDebugUtilsMessageEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes,const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT * pCallbackData,Dispatch const & d) const17374   VULKAN_HPP_INLINE void Instance::submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT       messageSeverity,
17375                                                                VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT              messageTypes,
17376                                                                const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT * pCallbackData,
17377                                                                Dispatch const &                                                 d ) const VULKAN_HPP_NOEXCEPT
17378   {
17379     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17380     d.vkSubmitDebugUtilsMessageEXT( static_cast<VkInstance>( m_instance ),
17381                                     static_cast<VkDebugUtilsMessageSeverityFlagBitsEXT>( messageSeverity ),
17382                                     static_cast<VkDebugUtilsMessageTypeFlagsEXT>( messageTypes ),
17383                                     reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT *>( pCallbackData ) );
17384   }
17385 
17386 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17387   // wrapper function for command vkSubmitDebugUtilsMessageEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSubmitDebugUtilsMessageEXT.html
17388   template <typename Dispatch>
submitDebugUtilsMessageEXT(VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT messageSeverity,VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT messageTypes,const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT & callbackData,Dispatch const & d) const17389   VULKAN_HPP_INLINE void Instance::submitDebugUtilsMessageEXT( VULKAN_HPP_NAMESPACE::DebugUtilsMessageSeverityFlagBitsEXT       messageSeverity,
17390                                                                VULKAN_HPP_NAMESPACE::DebugUtilsMessageTypeFlagsEXT              messageTypes,
17391                                                                const VULKAN_HPP_NAMESPACE::DebugUtilsMessengerCallbackDataEXT & callbackData,
17392                                                                Dispatch const &                                                 d ) const VULKAN_HPP_NOEXCEPT
17393   {
17394     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17395 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17396     VULKAN_HPP_ASSERT( d.vkSubmitDebugUtilsMessageEXT && "Function <vkSubmitDebugUtilsMessageEXT> requires <VK_EXT_debug_utils>" );
17397 #  endif
17398 
17399     d.vkSubmitDebugUtilsMessageEXT( m_instance,
17400                                     static_cast<VkDebugUtilsMessageSeverityFlagBitsEXT>( messageSeverity ),
17401                                     static_cast<VkDebugUtilsMessageTypeFlagsEXT>( messageTypes ),
17402                                     reinterpret_cast<const VkDebugUtilsMessengerCallbackDataEXT *>( &callbackData ) );
17403   }
17404 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
17405 
17406 #if defined( VK_USE_PLATFORM_ANDROID_KHR )
17407   //=== VK_ANDROID_external_memory_android_hardware_buffer ===
17408 
17409   // wrapper function for command vkGetAndroidHardwareBufferPropertiesANDROID, see
17410   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAndroidHardwareBufferPropertiesANDROID.html
17411   template <typename Dispatch>
17412   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer * buffer,VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID * pProperties,Dispatch const & d) const17413     Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer *                                 buffer,
17414                                                        VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID * pProperties,
17415                                                        Dispatch const &                                               d ) const VULKAN_HPP_NOEXCEPT
17416   {
17417     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17418     return static_cast<Result>( d.vkGetAndroidHardwareBufferPropertiesANDROID(
17419       static_cast<VkDevice>( m_device ), buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( pProperties ) ) );
17420   }
17421 
17422 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17423   // wrapper function for command vkGetAndroidHardwareBufferPropertiesANDROID, see
17424   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAndroidHardwareBufferPropertiesANDROID.html
17425   template <typename Dispatch>
17426   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID>::type
getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer & buffer,Dispatch const & d) const17427                        Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const & d ) const
17428   {
17429     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17430 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17431     VULKAN_HPP_ASSERT( d.vkGetAndroidHardwareBufferPropertiesANDROID &&
17432                        "Function <vkGetAndroidHardwareBufferPropertiesANDROID> requires <VK_ANDROID_external_memory_android_hardware_buffer>" );
17433 #    endif
17434 
17435     VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID properties;
17436     VULKAN_HPP_NAMESPACE::Result                                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
17437       d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, &buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( &properties ) ) );
17438     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" );
17439 
17440     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
17441   }
17442 
17443   // wrapper function for command vkGetAndroidHardwareBufferPropertiesANDROID, see
17444   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAndroidHardwareBufferPropertiesANDROID.html
17445   template <typename X, typename Y, typename... Z, typename Dispatch>
17446   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>>::type
getAndroidHardwareBufferPropertiesANDROID(const struct AHardwareBuffer & buffer,Dispatch const & d) const17447                        Device::getAndroidHardwareBufferPropertiesANDROID( const struct AHardwareBuffer & buffer, Dispatch const & d ) const
17448   {
17449     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17450 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17451     VULKAN_HPP_ASSERT( d.vkGetAndroidHardwareBufferPropertiesANDROID &&
17452                        "Function <vkGetAndroidHardwareBufferPropertiesANDROID> requires <VK_ANDROID_external_memory_android_hardware_buffer>" );
17453 #    endif
17454 
17455     StructureChain<X, Y, Z...>                                     structureChain;
17456     VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID & properties =
17457       structureChain.template get<VULKAN_HPP_NAMESPACE::AndroidHardwareBufferPropertiesANDROID>();
17458     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
17459       d.vkGetAndroidHardwareBufferPropertiesANDROID( m_device, &buffer, reinterpret_cast<VkAndroidHardwareBufferPropertiesANDROID *>( &properties ) ) );
17460     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAndroidHardwareBufferPropertiesANDROID" );
17461 
17462     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( structureChain ) );
17463   }
17464 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
17465 
17466   // wrapper function for command vkGetMemoryAndroidHardwareBufferANDROID, see
17467   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryAndroidHardwareBufferANDROID.html
17468   template <typename Dispatch>
17469   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getMemoryAndroidHardwareBufferANDROID(const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID * pInfo,struct AHardwareBuffer ** pBuffer,Dispatch const & d) const17470     Device::getMemoryAndroidHardwareBufferANDROID( const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID * pInfo,
17471                                                    struct AHardwareBuffer **                                               pBuffer,
17472                                                    Dispatch const &                                                        d ) const VULKAN_HPP_NOEXCEPT
17473   {
17474     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17475     return static_cast<Result>( d.vkGetMemoryAndroidHardwareBufferANDROID(
17476       static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID *>( pInfo ), pBuffer ) );
17477   }
17478 
17479 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17480   // wrapper function for command vkGetMemoryAndroidHardwareBufferANDROID, see
17481   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryAndroidHardwareBufferANDROID.html
17482   template <typename Dispatch>
17483   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<struct AHardwareBuffer *>::type
getMemoryAndroidHardwareBufferANDROID(const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID & info,Dispatch const & d) const17484     Device::getMemoryAndroidHardwareBufferANDROID( const VULKAN_HPP_NAMESPACE::MemoryGetAndroidHardwareBufferInfoANDROID & info, Dispatch const & d ) const
17485   {
17486     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17487 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17488     VULKAN_HPP_ASSERT( d.vkGetMemoryAndroidHardwareBufferANDROID &&
17489                        "Function <vkGetMemoryAndroidHardwareBufferANDROID> requires <VK_ANDROID_external_memory_android_hardware_buffer>" );
17490 #    endif
17491 
17492     struct AHardwareBuffer *     buffer;
17493     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
17494       d.vkGetMemoryAndroidHardwareBufferANDROID( m_device, reinterpret_cast<const VkMemoryGetAndroidHardwareBufferInfoANDROID *>( &info ), &buffer ) );
17495     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryAndroidHardwareBufferANDROID" );
17496 
17497     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( buffer ) );
17498   }
17499 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
17500 #endif   /*VK_USE_PLATFORM_ANDROID_KHR*/
17501 
17502 #if defined( VK_ENABLE_BETA_EXTENSIONS )
17503   //=== VK_AMDX_shader_enqueue ===
17504 
17505   // wrapper function for command vkCreateExecutionGraphPipelinesAMDX, see
17506   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateExecutionGraphPipelinesAMDX.html
17507   template <typename Dispatch>
17508   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
createExecutionGraphPipelinesAMDX(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,uint32_t createInfoCount,const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX * pCreateInfos,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Pipeline * pPipelines,Dispatch const & d) const17509     Device::createExecutionGraphPipelinesAMDX( VULKAN_HPP_NAMESPACE::PipelineCache                                pipelineCache,
17510                                                uint32_t                                                           createInfoCount,
17511                                                const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX * pCreateInfos,
17512                                                const VULKAN_HPP_NAMESPACE::AllocationCallbacks *                  pAllocator,
17513                                                VULKAN_HPP_NAMESPACE::Pipeline *                                   pPipelines,
17514                                                Dispatch const &                                                   d ) const VULKAN_HPP_NOEXCEPT
17515   {
17516     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17517     return static_cast<Result>( d.vkCreateExecutionGraphPipelinesAMDX( static_cast<VkDevice>( m_device ),
17518                                                                        static_cast<VkPipelineCache>( pipelineCache ),
17519                                                                        createInfoCount,
17520                                                                        reinterpret_cast<const VkExecutionGraphPipelineCreateInfoAMDX *>( pCreateInfos ),
17521                                                                        reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
17522                                                                        reinterpret_cast<VkPipeline *>( pPipelines ) ) );
17523   }
17524 
17525 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17526   // wrapper function for command vkCreateExecutionGraphPipelinesAMDX, see
17527   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateExecutionGraphPipelinesAMDX.html
17528   template <typename PipelineAllocator,
17529             typename Dispatch,
17530             typename std::enable_if<std::is_same<typename PipelineAllocator::value_type, VULKAN_HPP_NAMESPACE::Pipeline>::value, int>::type>
createExecutionGraphPipelinesAMDX(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const17531   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>> Device::createExecutionGraphPipelinesAMDX(
17532     VULKAN_HPP_NAMESPACE::PipelineCache                                                                        pipelineCache,
17533     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX> const & createInfos,
17534     Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                                  allocator,
17535     Dispatch const &                                                                                           d ) const
17536   {
17537     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17538 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17539     VULKAN_HPP_ASSERT( d.vkCreateExecutionGraphPipelinesAMDX && "Function <vkCreateExecutionGraphPipelinesAMDX> requires <VK_AMDX_shader_enqueue>" );
17540 #    endif
17541 
17542     std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator> pipelines( createInfos.size() );
17543     VULKAN_HPP_NAMESPACE::Result                                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateExecutionGraphPipelinesAMDX(
17544       m_device,
17545       static_cast<VkPipelineCache>( pipelineCache ),
17546       createInfos.size(),
17547       reinterpret_cast<const VkExecutionGraphPipelineCreateInfoAMDX *>( createInfos.data() ),
17548       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
17549       reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
17550     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
17551                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createExecutionGraphPipelinesAMDX",
17552                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
17553 
17554     return ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>( result, std::move( pipelines ) );
17555   }
17556 
17557   // wrapper function for command vkCreateExecutionGraphPipelinesAMDX, see
17558   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateExecutionGraphPipelinesAMDX.html
17559   template <typename PipelineAllocator,
17560             typename Dispatch,
17561             typename std::enable_if<std::is_same<typename PipelineAllocator::value_type, VULKAN_HPP_NAMESPACE::Pipeline>::value, int>::type>
createExecutionGraphPipelinesAMDX(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const17562   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>> Device::createExecutionGraphPipelinesAMDX(
17563     VULKAN_HPP_NAMESPACE::PipelineCache                                                                        pipelineCache,
17564     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX> const & createInfos,
17565     Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                                  allocator,
17566     PipelineAllocator &                                                                                        pipelineAllocator,
17567     Dispatch const &                                                                                           d ) const
17568   {
17569     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17570 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17571     VULKAN_HPP_ASSERT( d.vkCreateExecutionGraphPipelinesAMDX && "Function <vkCreateExecutionGraphPipelinesAMDX> requires <VK_AMDX_shader_enqueue>" );
17572 #    endif
17573 
17574     std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
17575     VULKAN_HPP_NAMESPACE::Result                                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateExecutionGraphPipelinesAMDX(
17576       m_device,
17577       static_cast<VkPipelineCache>( pipelineCache ),
17578       createInfos.size(),
17579       reinterpret_cast<const VkExecutionGraphPipelineCreateInfoAMDX *>( createInfos.data() ),
17580       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
17581       reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
17582     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
17583                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createExecutionGraphPipelinesAMDX",
17584                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
17585 
17586     return ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>( result, std::move( pipelines ) );
17587   }
17588 
17589   // wrapper function for command vkCreateExecutionGraphPipelinesAMDX, see
17590   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateExecutionGraphPipelinesAMDX.html
17591   template <typename Dispatch>
17592   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<VULKAN_HPP_NAMESPACE::Pipeline>
createExecutionGraphPipelineAMDX(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const17593                                          Device::createExecutionGraphPipelineAMDX( VULKAN_HPP_NAMESPACE::PipelineCache                                pipelineCache,
17594                                               const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX & createInfo,
17595                                               Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>          allocator,
17596                                               Dispatch const &                                                   d ) const
17597   {
17598     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17599 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17600     VULKAN_HPP_ASSERT( d.vkCreateExecutionGraphPipelinesAMDX && "Function <vkCreateExecutionGraphPipelinesAMDX> requires <VK_AMDX_shader_enqueue>" );
17601 #    endif
17602 
17603     VULKAN_HPP_NAMESPACE::Pipeline pipeline;
17604     VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateExecutionGraphPipelinesAMDX(
17605       m_device,
17606       static_cast<VkPipelineCache>( pipelineCache ),
17607       1,
17608       reinterpret_cast<const VkExecutionGraphPipelineCreateInfoAMDX *>( &createInfo ),
17609       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
17610       reinterpret_cast<VkPipeline *>( &pipeline ) ) );
17611     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
17612                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createExecutionGraphPipelineAMDX",
17613                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
17614 
17615     return ResultValue<VULKAN_HPP_NAMESPACE::Pipeline>( result, std::move( pipeline ) );
17616   }
17617 
17618 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
17619   // wrapper function for command vkCreateExecutionGraphPipelinesAMDX, see
17620   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateExecutionGraphPipelinesAMDX.html
17621   template <
17622     typename Dispatch,
17623     typename PipelineAllocator,
17624     typename std::enable_if<std::is_same<typename PipelineAllocator::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>::value, int>::type>
17625   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
createExecutionGraphPipelinesAMDXUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const17626                                          Device::createExecutionGraphPipelinesAMDXUnique(
17627       VULKAN_HPP_NAMESPACE::PipelineCache                                                                        pipelineCache,
17628       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX> const & createInfos,
17629       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                                  allocator,
17630       Dispatch const &                                                                                           d ) const
17631   {
17632     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17633 #      if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17634     VULKAN_HPP_ASSERT( d.vkCreateExecutionGraphPipelinesAMDX && "Function <vkCreateExecutionGraphPipelinesAMDX> requires <VK_AMDX_shader_enqueue>" );
17635 #      endif
17636 
17637     std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
17638     VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateExecutionGraphPipelinesAMDX(
17639       m_device,
17640       static_cast<VkPipelineCache>( pipelineCache ),
17641       createInfos.size(),
17642       reinterpret_cast<const VkExecutionGraphPipelineCreateInfoAMDX *>( createInfos.data() ),
17643       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
17644       reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
17645     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
17646                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createExecutionGraphPipelinesAMDXUnique",
17647                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
17648     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
17649     uniquePipelines.reserve( createInfos.size() );
17650     detail::ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
17651     for ( auto const & pipeline : pipelines )
17652     {
17653       uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipeline, deleter ) );
17654     }
17655     return ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>( result, std::move( uniquePipelines ) );
17656   }
17657 
17658   // wrapper function for command vkCreateExecutionGraphPipelinesAMDX, see
17659   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateExecutionGraphPipelinesAMDX.html
17660   template <
17661     typename Dispatch,
17662     typename PipelineAllocator,
17663     typename std::enable_if<std::is_same<typename PipelineAllocator::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>::value, int>::type>
17664   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
createExecutionGraphPipelinesAMDXUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const17665                                          Device::createExecutionGraphPipelinesAMDXUnique(
17666       VULKAN_HPP_NAMESPACE::PipelineCache                                                                        pipelineCache,
17667       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX> const & createInfos,
17668       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                                  allocator,
17669       PipelineAllocator &                                                                                        pipelineAllocator,
17670       Dispatch const &                                                                                           d ) const
17671   {
17672     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17673 #      if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17674     VULKAN_HPP_ASSERT( d.vkCreateExecutionGraphPipelinesAMDX && "Function <vkCreateExecutionGraphPipelinesAMDX> requires <VK_AMDX_shader_enqueue>" );
17675 #      endif
17676 
17677     std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
17678     VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateExecutionGraphPipelinesAMDX(
17679       m_device,
17680       static_cast<VkPipelineCache>( pipelineCache ),
17681       createInfos.size(),
17682       reinterpret_cast<const VkExecutionGraphPipelineCreateInfoAMDX *>( createInfos.data() ),
17683       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
17684       reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
17685     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
17686                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createExecutionGraphPipelinesAMDXUnique",
17687                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
17688     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
17689     uniquePipelines.reserve( createInfos.size() );
17690     detail::ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
17691     for ( auto const & pipeline : pipelines )
17692     {
17693       uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipeline, deleter ) );
17694     }
17695     return ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>( result, std::move( uniquePipelines ) );
17696   }
17697 
17698   // wrapper function for command vkCreateExecutionGraphPipelinesAMDX, see
17699   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateExecutionGraphPipelinesAMDX.html
17700   template <typename Dispatch>
17701   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>
createExecutionGraphPipelineAMDXUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const17702                                          Device::createExecutionGraphPipelineAMDXUnique( VULKAN_HPP_NAMESPACE::PipelineCache                                pipelineCache,
17703                                                     const VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineCreateInfoAMDX & createInfo,
17704                                                     Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>          allocator,
17705                                                     Dispatch const &                                                   d ) const
17706   {
17707     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17708 #      if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17709     VULKAN_HPP_ASSERT( d.vkCreateExecutionGraphPipelinesAMDX && "Function <vkCreateExecutionGraphPipelinesAMDX> requires <VK_AMDX_shader_enqueue>" );
17710 #      endif
17711 
17712     VULKAN_HPP_NAMESPACE::Pipeline pipeline;
17713     VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateExecutionGraphPipelinesAMDX(
17714       m_device,
17715       static_cast<VkPipelineCache>( pipelineCache ),
17716       1,
17717       reinterpret_cast<const VkExecutionGraphPipelineCreateInfoAMDX *>( &createInfo ),
17718       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
17719       reinterpret_cast<VkPipeline *>( &pipeline ) ) );
17720     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
17721                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createExecutionGraphPipelineAMDXUnique",
17722                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
17723 
17724     return ResultValue<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>(
17725       result, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>( pipeline, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
17726   }
17727 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
17728 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
17729 
17730   // wrapper function for command vkGetExecutionGraphPipelineScratchSizeAMDX, see
17731   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetExecutionGraphPipelineScratchSizeAMDX.html
17732   template <typename Dispatch>
17733   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getExecutionGraphPipelineScratchSizeAMDX(VULKAN_HPP_NAMESPACE::Pipeline executionGraph,VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX * pSizeInfo,Dispatch const & d) const17734     Device::getExecutionGraphPipelineScratchSizeAMDX( VULKAN_HPP_NAMESPACE::Pipeline                                executionGraph,
17735                                                       VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX * pSizeInfo,
17736                                                       Dispatch const &                                              d ) const VULKAN_HPP_NOEXCEPT
17737   {
17738     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17739     return static_cast<Result>( d.vkGetExecutionGraphPipelineScratchSizeAMDX( static_cast<VkDevice>( m_device ),
17740                                                                               static_cast<VkPipeline>( executionGraph ),
17741                                                                               reinterpret_cast<VkExecutionGraphPipelineScratchSizeAMDX *>( pSizeInfo ) ) );
17742   }
17743 
17744 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17745   // wrapper function for command vkGetExecutionGraphPipelineScratchSizeAMDX, see
17746   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetExecutionGraphPipelineScratchSizeAMDX.html
17747   template <typename Dispatch>
17748   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX>::type
getExecutionGraphPipelineScratchSizeAMDX(VULKAN_HPP_NAMESPACE::Pipeline executionGraph,Dispatch const & d) const17749                        Device::getExecutionGraphPipelineScratchSizeAMDX( VULKAN_HPP_NAMESPACE::Pipeline executionGraph, Dispatch const & d ) const
17750   {
17751     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17752 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17753     VULKAN_HPP_ASSERT( d.vkGetExecutionGraphPipelineScratchSizeAMDX &&
17754                        "Function <vkGetExecutionGraphPipelineScratchSizeAMDX> requires <VK_AMDX_shader_enqueue>" );
17755 #    endif
17756 
17757     VULKAN_HPP_NAMESPACE::ExecutionGraphPipelineScratchSizeAMDX sizeInfo;
17758     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetExecutionGraphPipelineScratchSizeAMDX(
17759       m_device, static_cast<VkPipeline>( executionGraph ), reinterpret_cast<VkExecutionGraphPipelineScratchSizeAMDX *>( &sizeInfo ) ) );
17760     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getExecutionGraphPipelineScratchSizeAMDX" );
17761 
17762     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( sizeInfo ) );
17763   }
17764 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
17765 
17766   // wrapper function for command vkGetExecutionGraphPipelineNodeIndexAMDX, see
17767   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetExecutionGraphPipelineNodeIndexAMDX.html
17768   template <typename Dispatch>
17769   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getExecutionGraphPipelineNodeIndexAMDX(VULKAN_HPP_NAMESPACE::Pipeline executionGraph,const VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX * pNodeInfo,uint32_t * pNodeIndex,Dispatch const & d) const17770     Device::getExecutionGraphPipelineNodeIndexAMDX( VULKAN_HPP_NAMESPACE::Pipeline                                      executionGraph,
17771                                                     const VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX * pNodeInfo,
17772                                                     uint32_t *                                                          pNodeIndex,
17773                                                     Dispatch const &                                                    d ) const VULKAN_HPP_NOEXCEPT
17774   {
17775     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17776     return static_cast<Result>( d.vkGetExecutionGraphPipelineNodeIndexAMDX( static_cast<VkDevice>( m_device ),
17777                                                                             static_cast<VkPipeline>( executionGraph ),
17778                                                                             reinterpret_cast<const VkPipelineShaderStageNodeCreateInfoAMDX *>( pNodeInfo ),
17779                                                                             pNodeIndex ) );
17780   }
17781 
17782 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17783   // wrapper function for command vkGetExecutionGraphPipelineNodeIndexAMDX, see
17784   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetExecutionGraphPipelineNodeIndexAMDX.html
17785   template <typename Dispatch>
getExecutionGraphPipelineNodeIndexAMDX(VULKAN_HPP_NAMESPACE::Pipeline executionGraph,const VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX & nodeInfo,Dispatch const & d) const17786   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<uint32_t>::type Device::getExecutionGraphPipelineNodeIndexAMDX(
17787     VULKAN_HPP_NAMESPACE::Pipeline executionGraph, const VULKAN_HPP_NAMESPACE::PipelineShaderStageNodeCreateInfoAMDX & nodeInfo, Dispatch const & d ) const
17788   {
17789     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17790 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17791     VULKAN_HPP_ASSERT( d.vkGetExecutionGraphPipelineNodeIndexAMDX && "Function <vkGetExecutionGraphPipelineNodeIndexAMDX> requires <VK_AMDX_shader_enqueue>" );
17792 #    endif
17793 
17794     uint32_t                     nodeIndex;
17795     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetExecutionGraphPipelineNodeIndexAMDX(
17796       m_device, static_cast<VkPipeline>( executionGraph ), reinterpret_cast<const VkPipelineShaderStageNodeCreateInfoAMDX *>( &nodeInfo ), &nodeIndex ) );
17797     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getExecutionGraphPipelineNodeIndexAMDX" );
17798 
17799     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( nodeIndex ) );
17800   }
17801 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
17802 
17803   // wrapper function for command vkCmdInitializeGraphScratchMemoryAMDX, see
17804   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdInitializeGraphScratchMemoryAMDX.html
17805   template <typename Dispatch>
initializeGraphScratchMemoryAMDX(VULKAN_HPP_NAMESPACE::Pipeline executionGraph,VULKAN_HPP_NAMESPACE::DeviceAddress scratch,VULKAN_HPP_NAMESPACE::DeviceSize scratchSize,Dispatch const & d) const17806   VULKAN_HPP_INLINE void CommandBuffer::initializeGraphScratchMemoryAMDX( VULKAN_HPP_NAMESPACE::Pipeline      executionGraph,
17807                                                                           VULKAN_HPP_NAMESPACE::DeviceAddress scratch,
17808                                                                           VULKAN_HPP_NAMESPACE::DeviceSize    scratchSize,
17809                                                                           Dispatch const &                    d ) const VULKAN_HPP_NOEXCEPT
17810   {
17811     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17812     d.vkCmdInitializeGraphScratchMemoryAMDX( static_cast<VkCommandBuffer>( m_commandBuffer ),
17813                                              static_cast<VkPipeline>( executionGraph ),
17814                                              static_cast<VkDeviceAddress>( scratch ),
17815                                              static_cast<VkDeviceSize>( scratchSize ) );
17816   }
17817 
17818   // wrapper function for command vkCmdDispatchGraphAMDX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDispatchGraphAMDX.html
17819   template <typename Dispatch>
dispatchGraphAMDX(VULKAN_HPP_NAMESPACE::DeviceAddress scratch,VULKAN_HPP_NAMESPACE::DeviceSize scratchSize,const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX * pCountInfo,Dispatch const & d) const17820   VULKAN_HPP_INLINE void CommandBuffer::dispatchGraphAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress                      scratch,
17821                                                            VULKAN_HPP_NAMESPACE::DeviceSize                         scratchSize,
17822                                                            const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX * pCountInfo,
17823                                                            Dispatch const &                                         d ) const VULKAN_HPP_NOEXCEPT
17824   {
17825     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17826     d.vkCmdDispatchGraphAMDX( static_cast<VkCommandBuffer>( m_commandBuffer ),
17827                               static_cast<VkDeviceAddress>( scratch ),
17828                               static_cast<VkDeviceSize>( scratchSize ),
17829                               reinterpret_cast<const VkDispatchGraphCountInfoAMDX *>( pCountInfo ) );
17830   }
17831 
17832 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17833   // wrapper function for command vkCmdDispatchGraphAMDX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDispatchGraphAMDX.html
17834   template <typename Dispatch>
dispatchGraphAMDX(VULKAN_HPP_NAMESPACE::DeviceAddress scratch,VULKAN_HPP_NAMESPACE::DeviceSize scratchSize,const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX & countInfo,Dispatch const & d) const17835   VULKAN_HPP_INLINE void CommandBuffer::dispatchGraphAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress                      scratch,
17836                                                            VULKAN_HPP_NAMESPACE::DeviceSize                         scratchSize,
17837                                                            const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX & countInfo,
17838                                                            Dispatch const &                                         d ) const VULKAN_HPP_NOEXCEPT
17839   {
17840     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17841 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17842     VULKAN_HPP_ASSERT( d.vkCmdDispatchGraphAMDX && "Function <vkCmdDispatchGraphAMDX> requires <VK_AMDX_shader_enqueue>" );
17843 #    endif
17844 
17845     d.vkCmdDispatchGraphAMDX( m_commandBuffer,
17846                               static_cast<VkDeviceAddress>( scratch ),
17847                               static_cast<VkDeviceSize>( scratchSize ),
17848                               reinterpret_cast<const VkDispatchGraphCountInfoAMDX *>( &countInfo ) );
17849   }
17850 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
17851 
17852   // wrapper function for command vkCmdDispatchGraphIndirectAMDX, see
17853   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDispatchGraphIndirectAMDX.html
17854   template <typename Dispatch>
dispatchGraphIndirectAMDX(VULKAN_HPP_NAMESPACE::DeviceAddress scratch,VULKAN_HPP_NAMESPACE::DeviceSize scratchSize,const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX * pCountInfo,Dispatch const & d) const17855   VULKAN_HPP_INLINE void CommandBuffer::dispatchGraphIndirectAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress                      scratch,
17856                                                                    VULKAN_HPP_NAMESPACE::DeviceSize                         scratchSize,
17857                                                                    const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX * pCountInfo,
17858                                                                    Dispatch const &                                         d ) const VULKAN_HPP_NOEXCEPT
17859   {
17860     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17861     d.vkCmdDispatchGraphIndirectAMDX( static_cast<VkCommandBuffer>( m_commandBuffer ),
17862                                       static_cast<VkDeviceAddress>( scratch ),
17863                                       static_cast<VkDeviceSize>( scratchSize ),
17864                                       reinterpret_cast<const VkDispatchGraphCountInfoAMDX *>( pCountInfo ) );
17865   }
17866 
17867 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17868   // wrapper function for command vkCmdDispatchGraphIndirectAMDX, see
17869   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDispatchGraphIndirectAMDX.html
17870   template <typename Dispatch>
dispatchGraphIndirectAMDX(VULKAN_HPP_NAMESPACE::DeviceAddress scratch,VULKAN_HPP_NAMESPACE::DeviceSize scratchSize,const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX & countInfo,Dispatch const & d) const17871   VULKAN_HPP_INLINE void CommandBuffer::dispatchGraphIndirectAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress                      scratch,
17872                                                                    VULKAN_HPP_NAMESPACE::DeviceSize                         scratchSize,
17873                                                                    const VULKAN_HPP_NAMESPACE::DispatchGraphCountInfoAMDX & countInfo,
17874                                                                    Dispatch const &                                         d ) const VULKAN_HPP_NOEXCEPT
17875   {
17876     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17877 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17878     VULKAN_HPP_ASSERT( d.vkCmdDispatchGraphIndirectAMDX && "Function <vkCmdDispatchGraphIndirectAMDX> requires <VK_AMDX_shader_enqueue>" );
17879 #    endif
17880 
17881     d.vkCmdDispatchGraphIndirectAMDX( m_commandBuffer,
17882                                       static_cast<VkDeviceAddress>( scratch ),
17883                                       static_cast<VkDeviceSize>( scratchSize ),
17884                                       reinterpret_cast<const VkDispatchGraphCountInfoAMDX *>( &countInfo ) );
17885   }
17886 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
17887 
17888   // wrapper function for command vkCmdDispatchGraphIndirectCountAMDX, see
17889   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDispatchGraphIndirectCountAMDX.html
17890   template <typename Dispatch>
dispatchGraphIndirectCountAMDX(VULKAN_HPP_NAMESPACE::DeviceAddress scratch,VULKAN_HPP_NAMESPACE::DeviceSize scratchSize,VULKAN_HPP_NAMESPACE::DeviceAddress countInfo,Dispatch const & d) const17891   VULKAN_HPP_INLINE void CommandBuffer::dispatchGraphIndirectCountAMDX( VULKAN_HPP_NAMESPACE::DeviceAddress scratch,
17892                                                                         VULKAN_HPP_NAMESPACE::DeviceSize    scratchSize,
17893                                                                         VULKAN_HPP_NAMESPACE::DeviceAddress countInfo,
17894                                                                         Dispatch const &                    d ) const VULKAN_HPP_NOEXCEPT
17895   {
17896     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17897     d.vkCmdDispatchGraphIndirectCountAMDX( static_cast<VkCommandBuffer>( m_commandBuffer ),
17898                                            static_cast<VkDeviceAddress>( scratch ),
17899                                            static_cast<VkDeviceSize>( scratchSize ),
17900                                            static_cast<VkDeviceAddress>( countInfo ) );
17901   }
17902 #endif /*VK_ENABLE_BETA_EXTENSIONS*/
17903 
17904   //=== VK_EXT_sample_locations ===
17905 
17906   // wrapper function for command vkCmdSetSampleLocationsEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetSampleLocationsEXT.html
17907   template <typename Dispatch>
setSampleLocationsEXT(const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT * pSampleLocationsInfo,Dispatch const & d) const17908   VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT * pSampleLocationsInfo,
17909                                                                Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
17910   {
17911     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17912     d.vkCmdSetSampleLocationsEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkSampleLocationsInfoEXT *>( pSampleLocationsInfo ) );
17913   }
17914 
17915 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17916   // wrapper function for command vkCmdSetSampleLocationsEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetSampleLocationsEXT.html
17917   template <typename Dispatch>
setSampleLocationsEXT(const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT & sampleLocationsInfo,Dispatch const & d) const17918   VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEXT( const VULKAN_HPP_NAMESPACE::SampleLocationsInfoEXT & sampleLocationsInfo,
17919                                                                Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
17920   {
17921     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17922 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17923     VULKAN_HPP_ASSERT( d.vkCmdSetSampleLocationsEXT && "Function <vkCmdSetSampleLocationsEXT> requires <VK_EXT_sample_locations>" );
17924 #  endif
17925 
17926     d.vkCmdSetSampleLocationsEXT( m_commandBuffer, reinterpret_cast<const VkSampleLocationsInfoEXT *>( &sampleLocationsInfo ) );
17927   }
17928 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
17929 
17930   // wrapper function for command vkGetPhysicalDeviceMultisamplePropertiesEXT, see
17931   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceMultisamplePropertiesEXT.html
17932   template <typename Dispatch>
getMultisamplePropertiesEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT * pMultisampleProperties,Dispatch const & d) const17933   VULKAN_HPP_INLINE void PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits        samples,
17934                                                                       VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT * pMultisampleProperties,
17935                                                                       Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
17936   {
17937     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17938     d.vkGetPhysicalDeviceMultisamplePropertiesEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ),
17939                                                    static_cast<VkSampleCountFlagBits>( samples ),
17940                                                    reinterpret_cast<VkMultisamplePropertiesEXT *>( pMultisampleProperties ) );
17941   }
17942 
17943 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17944   // wrapper function for command vkGetPhysicalDeviceMultisamplePropertiesEXT, see
17945   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceMultisamplePropertiesEXT.html
17946   template <typename Dispatch>
17947   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT
getMultisamplePropertiesEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,Dispatch const & d) const17948     PhysicalDevice::getMultisamplePropertiesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
17949   {
17950     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17951 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17952     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceMultisamplePropertiesEXT &&
17953                        "Function <vkGetPhysicalDeviceMultisamplePropertiesEXT> requires <VK_EXT_sample_locations>" );
17954 #  endif
17955 
17956     VULKAN_HPP_NAMESPACE::MultisamplePropertiesEXT multisampleProperties;
17957     d.vkGetPhysicalDeviceMultisamplePropertiesEXT(
17958       m_physicalDevice, static_cast<VkSampleCountFlagBits>( samples ), reinterpret_cast<VkMultisamplePropertiesEXT *>( &multisampleProperties ) );
17959 
17960     return multisampleProperties;
17961   }
17962 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
17963 
17964   //=== VK_KHR_get_memory_requirements2 ===
17965 
17966   // wrapper function for command vkGetImageMemoryRequirements2KHR, see
17967   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageMemoryRequirements2KHR.html
17968   template <typename Dispatch>
getImageMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const17969   VULKAN_HPP_INLINE void Device::getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 * pInfo,
17970                                                                  VULKAN_HPP_NAMESPACE::MemoryRequirements2 *                pMemoryRequirements,
17971                                                                  Dispatch const &                                           d ) const VULKAN_HPP_NOEXCEPT
17972   {
17973     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17974     d.vkGetImageMemoryRequirements2KHR( static_cast<VkDevice>( m_device ),
17975                                         reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( pInfo ),
17976                                         reinterpret_cast<VkMemoryRequirements2 *>( pMemoryRequirements ) );
17977   }
17978 
17979 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
17980   // wrapper function for command vkGetImageMemoryRequirements2KHR, see
17981   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageMemoryRequirements2KHR.html
17982   template <typename Dispatch>
17983   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
getImageMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const17984     Device::getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
17985   {
17986     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
17987 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
17988     VULKAN_HPP_ASSERT( d.vkGetImageMemoryRequirements2KHR &&
17989                        "Function <vkGetImageMemoryRequirements2KHR> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" );
17990 #  endif
17991 
17992     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
17993     d.vkGetImageMemoryRequirements2KHR(
17994       m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
17995 
17996     return memoryRequirements;
17997   }
17998 
17999   // wrapper function for command vkGetImageMemoryRequirements2KHR, see
18000   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageMemoryRequirements2KHR.html
18001   template <typename X, typename Y, typename... Z, typename Dispatch>
18002   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getImageMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info,Dispatch const & d) const18003     Device::getImageMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
18004   {
18005     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18006 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18007     VULKAN_HPP_ASSERT( d.vkGetImageMemoryRequirements2KHR &&
18008                        "Function <vkGetImageMemoryRequirements2KHR> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" );
18009 #  endif
18010 
18011     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
18012     VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
18013     d.vkGetImageMemoryRequirements2KHR(
18014       m_device, reinterpret_cast<const VkImageMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
18015 
18016     return structureChain;
18017   }
18018 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
18019 
18020   // wrapper function for command vkGetBufferMemoryRequirements2KHR, see
18021   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferMemoryRequirements2KHR.html
18022   template <typename Dispatch>
getBufferMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const18023   VULKAN_HPP_INLINE void Device::getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 * pInfo,
18024                                                                   VULKAN_HPP_NAMESPACE::MemoryRequirements2 *                 pMemoryRequirements,
18025                                                                   Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
18026   {
18027     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18028     d.vkGetBufferMemoryRequirements2KHR( static_cast<VkDevice>( m_device ),
18029                                          reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( pInfo ),
18030                                          reinterpret_cast<VkMemoryRequirements2 *>( pMemoryRequirements ) );
18031   }
18032 
18033 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18034   // wrapper function for command vkGetBufferMemoryRequirements2KHR, see
18035   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferMemoryRequirements2KHR.html
18036   template <typename Dispatch>
18037   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
getBufferMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const18038     Device::getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
18039   {
18040     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18041 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18042     VULKAN_HPP_ASSERT( d.vkGetBufferMemoryRequirements2KHR &&
18043                        "Function <vkGetBufferMemoryRequirements2KHR> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" );
18044 #  endif
18045 
18046     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
18047     d.vkGetBufferMemoryRequirements2KHR(
18048       m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
18049 
18050     return memoryRequirements;
18051   }
18052 
18053   // wrapper function for command vkGetBufferMemoryRequirements2KHR, see
18054   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferMemoryRequirements2KHR.html
18055   template <typename X, typename Y, typename... Z, typename Dispatch>
18056   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getBufferMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info,Dispatch const & d) const18057     Device::getBufferMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::BufferMemoryRequirementsInfo2 & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
18058   {
18059     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18060 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18061     VULKAN_HPP_ASSERT( d.vkGetBufferMemoryRequirements2KHR &&
18062                        "Function <vkGetBufferMemoryRequirements2KHR> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" );
18063 #  endif
18064 
18065     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
18066     VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
18067     d.vkGetBufferMemoryRequirements2KHR(
18068       m_device, reinterpret_cast<const VkBufferMemoryRequirementsInfo2 *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
18069 
18070     return structureChain;
18071   }
18072 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
18073 
18074   // wrapper function for command vkGetImageSparseMemoryRequirements2KHR, see
18075   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSparseMemoryRequirements2KHR.html
18076   template <typename Dispatch>
getImageSparseMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 * pInfo,uint32_t * pSparseMemoryRequirementCount,VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 * pSparseMemoryRequirements,Dispatch const & d) const18077   VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 * pInfo,
18078                                                                        uint32_t *                                             pSparseMemoryRequirementCount,
18079                                                                        VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 * pSparseMemoryRequirements,
18080                                                                        Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
18081   {
18082     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18083     d.vkGetImageSparseMemoryRequirements2KHR( static_cast<VkDevice>( m_device ),
18084                                               reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( pInfo ),
18085                                               pSparseMemoryRequirementCount,
18086                                               reinterpret_cast<VkSparseImageMemoryRequirements2 *>( pSparseMemoryRequirements ) );
18087   }
18088 
18089 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18090   // wrapper function for command vkGetImageSparseMemoryRequirements2KHR, see
18091   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSparseMemoryRequirements2KHR.html
18092   template <typename SparseImageMemoryRequirements2Allocator,
18093             typename Dispatch,
18094             typename std::enable_if<
18095               std::is_same<typename SparseImageMemoryRequirements2Allocator::value_type, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>::value,
18096               int>::type>
18097   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator>
getImageSparseMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info,Dispatch const & d) const18098     Device::getImageSparseMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info, Dispatch const & d ) const
18099   {
18100     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18101 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18102     VULKAN_HPP_ASSERT( d.vkGetImageSparseMemoryRequirements2KHR &&
18103                        "Function <vkGetImageSparseMemoryRequirements2KHR> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" );
18104 #  endif
18105 
18106     std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements;
18107     uint32_t                                                                                                   sparseMemoryRequirementCount;
18108     d.vkGetImageSparseMemoryRequirements2KHR(
18109       m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, nullptr );
18110     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
18111     d.vkGetImageSparseMemoryRequirements2KHR( m_device,
18112                                               reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ),
18113                                               &sparseMemoryRequirementCount,
18114                                               reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
18115 
18116     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
18117     if ( sparseMemoryRequirementCount < sparseMemoryRequirements.size() )
18118     {
18119       sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
18120     }
18121     return sparseMemoryRequirements;
18122   }
18123 
18124   // wrapper function for command vkGetImageSparseMemoryRequirements2KHR, see
18125   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSparseMemoryRequirements2KHR.html
18126   template <typename SparseImageMemoryRequirements2Allocator,
18127             typename Dispatch,
18128             typename std::enable_if<
18129               std::is_same<typename SparseImageMemoryRequirements2Allocator::value_type, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>::value,
18130               int>::type>
18131   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator>
getImageSparseMemoryRequirements2KHR(const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info,SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator,Dispatch const & d) const18132                                          Device::getImageSparseMemoryRequirements2KHR( const VULKAN_HPP_NAMESPACE::ImageSparseMemoryRequirementsInfo2 & info,
18133                                                   SparseImageMemoryRequirements2Allocator &                        sparseImageMemoryRequirements2Allocator,
18134                                                   Dispatch const &                                                 d ) const
18135   {
18136     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18137 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18138     VULKAN_HPP_ASSERT( d.vkGetImageSparseMemoryRequirements2KHR &&
18139                        "Function <vkGetImageSparseMemoryRequirements2KHR> requires <VK_KHR_get_memory_requirements2> or <VK_VERSION_1_1>" );
18140 #  endif
18141 
18142     std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements(
18143       sparseImageMemoryRequirements2Allocator );
18144     uint32_t sparseMemoryRequirementCount;
18145     d.vkGetImageSparseMemoryRequirements2KHR(
18146       m_device, reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ), &sparseMemoryRequirementCount, nullptr );
18147     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
18148     d.vkGetImageSparseMemoryRequirements2KHR( m_device,
18149                                               reinterpret_cast<const VkImageSparseMemoryRequirementsInfo2 *>( &info ),
18150                                               &sparseMemoryRequirementCount,
18151                                               reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
18152 
18153     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
18154     if ( sparseMemoryRequirementCount < sparseMemoryRequirements.size() )
18155     {
18156       sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
18157     }
18158     return sparseMemoryRequirements;
18159   }
18160 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
18161 
18162   //=== VK_KHR_acceleration_structure ===
18163 
18164   // wrapper function for command vkCreateAccelerationStructureKHR, see
18165   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateAccelerationStructureKHR.html
18166   template <typename Dispatch>
18167   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
createAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructure,Dispatch const & d) const18168     Device::createAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR * pCreateInfo,
18169                                             const VULKAN_HPP_NAMESPACE::AllocationCallbacks *                pAllocator,
18170                                             VULKAN_HPP_NAMESPACE::AccelerationStructureKHR *                 pAccelerationStructure,
18171                                             Dispatch const &                                                 d ) const VULKAN_HPP_NOEXCEPT
18172   {
18173     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18174     return static_cast<Result>( d.vkCreateAccelerationStructureKHR( static_cast<VkDevice>( m_device ),
18175                                                                     reinterpret_cast<const VkAccelerationStructureCreateInfoKHR *>( pCreateInfo ),
18176                                                                     reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
18177                                                                     reinterpret_cast<VkAccelerationStructureKHR *>( pAccelerationStructure ) ) );
18178   }
18179 
18180 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18181   // wrapper function for command vkCreateAccelerationStructureKHR, see
18182   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateAccelerationStructureKHR.html
18183   template <typename Dispatch>
18184   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR>::type
createAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const18185                        Device::createAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR & createInfo,
18186                                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>        allocator,
18187                                             Dispatch const &                                                 d ) const
18188   {
18189     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18190 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18191     VULKAN_HPP_ASSERT( d.vkCreateAccelerationStructureKHR && "Function <vkCreateAccelerationStructureKHR> requires <VK_KHR_acceleration_structure>" );
18192 #  endif
18193 
18194     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure;
18195     VULKAN_HPP_NAMESPACE::Result                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateAccelerationStructureKHR(
18196       m_device,
18197       reinterpret_cast<const VkAccelerationStructureCreateInfoKHR *>( &createInfo ),
18198       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
18199       reinterpret_cast<VkAccelerationStructureKHR *>( &accelerationStructure ) ) );
18200     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureKHR" );
18201 
18202     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( accelerationStructure ) );
18203   }
18204 
18205 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
18206   // wrapper function for command vkCreateAccelerationStructureKHR, see
18207   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateAccelerationStructureKHR.html
18208   template <typename Dispatch>
18209   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR, Dispatch>>::type
createAccelerationStructureKHRUnique(const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const18210                        Device::createAccelerationStructureKHRUnique( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoKHR & createInfo,
18211                                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>        allocator,
18212                                                   Dispatch const &                                                 d ) const
18213   {
18214     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18215 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18216     VULKAN_HPP_ASSERT( d.vkCreateAccelerationStructureKHR && "Function <vkCreateAccelerationStructureKHR> requires <VK_KHR_acceleration_structure>" );
18217 #    endif
18218 
18219     VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure;
18220     VULKAN_HPP_NAMESPACE::Result                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateAccelerationStructureKHR(
18221       m_device,
18222       reinterpret_cast<const VkAccelerationStructureCreateInfoKHR *>( &createInfo ),
18223       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
18224       reinterpret_cast<VkAccelerationStructureKHR *>( &accelerationStructure ) ) );
18225     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureKHRUnique" );
18226 
18227     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result,
18228                                                                 UniqueHandle<VULKAN_HPP_NAMESPACE::AccelerationStructureKHR, Dispatch>(
18229                                                                   accelerationStructure, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
18230   }
18231 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
18232 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
18233 
18234   // wrapper function for command vkDestroyAccelerationStructureKHR, see
18235   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyAccelerationStructureKHR.html
18236   template <typename Dispatch>
destroyAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const18237   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR    accelerationStructure,
18238                                                                   const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
18239                                                                   Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
18240   {
18241     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18242     d.vkDestroyAccelerationStructureKHR( static_cast<VkDevice>( m_device ),
18243                                          static_cast<VkAccelerationStructureKHR>( accelerationStructure ),
18244                                          reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
18245   }
18246 
18247 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18248   // wrapper function for command vkDestroyAccelerationStructureKHR, see
18249   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyAccelerationStructureKHR.html
18250   template <typename Dispatch>
destroyAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const18251   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR            accelerationStructure,
18252                                                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
18253                                                                   Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
18254   {
18255     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18256 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18257     VULKAN_HPP_ASSERT( d.vkDestroyAccelerationStructureKHR && "Function <vkDestroyAccelerationStructureKHR> requires <VK_KHR_acceleration_structure>" );
18258 #  endif
18259 
18260     d.vkDestroyAccelerationStructureKHR(
18261       m_device,
18262       static_cast<VkAccelerationStructureKHR>( accelerationStructure ),
18263       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
18264   }
18265 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
18266 
18267   // wrapper function for command vkDestroyAccelerationStructureKHR, see
18268   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyAccelerationStructureKHR.html
18269   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const18270   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR    accelerationStructure,
18271                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
18272                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
18273   {
18274     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18275     d.vkDestroyAccelerationStructureKHR( static_cast<VkDevice>( m_device ),
18276                                          static_cast<VkAccelerationStructureKHR>( accelerationStructure ),
18277                                          reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
18278   }
18279 
18280 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18281   // wrapper function for command vkDestroyAccelerationStructureKHR, see
18282   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyAccelerationStructureKHR.html
18283   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::AccelerationStructureKHR accelerationStructure,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const18284   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureKHR            accelerationStructure,
18285                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
18286                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
18287   {
18288     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18289 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18290     VULKAN_HPP_ASSERT( d.vkDestroyAccelerationStructureKHR && "Function <vkDestroyAccelerationStructureKHR> requires <VK_KHR_acceleration_structure>" );
18291 #  endif
18292 
18293     d.vkDestroyAccelerationStructureKHR(
18294       m_device,
18295       static_cast<VkAccelerationStructureKHR>( accelerationStructure ),
18296       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
18297   }
18298 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
18299 
18300   // wrapper function for command vkCmdBuildAccelerationStructuresKHR, see
18301   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBuildAccelerationStructuresKHR.html
18302   template <typename Dispatch>
18303   VULKAN_HPP_INLINE void
buildAccelerationStructuresKHR(uint32_t infoCount,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pInfos,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos,Dispatch const & d) const18304     CommandBuffer::buildAccelerationStructuresKHR( uint32_t                                                                     infoCount,
18305                                                    const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR *      pInfos,
18306                                                    const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos,
18307                                                    Dispatch const &                                                             d ) const VULKAN_HPP_NOEXCEPT
18308   {
18309     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18310     d.vkCmdBuildAccelerationStructuresKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
18311                                            infoCount,
18312                                            reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( pInfos ),
18313                                            reinterpret_cast<const VkAccelerationStructureBuildRangeInfoKHR * const *>( ppBuildRangeInfos ) );
18314   }
18315 
18316 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18317   // wrapper function for command vkCmdBuildAccelerationStructuresKHR, see
18318   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBuildAccelerationStructuresKHR.html
18319   template <typename Dispatch>
buildAccelerationStructuresKHR(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const> const & pBuildRangeInfos,Dispatch const & d) const18320   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresKHR(
18321     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const &      infos,
18322     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const> const & pBuildRangeInfos,
18323     Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
18324   {
18325     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18326 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18327     VULKAN_HPP_ASSERT( d.vkCmdBuildAccelerationStructuresKHR && "Function <vkCmdBuildAccelerationStructuresKHR> requires <VK_KHR_acceleration_structure>" );
18328 #  endif
18329 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
18330     VULKAN_HPP_ASSERT( infos.size() == pBuildRangeInfos.size() );
18331 #  else
18332     if ( infos.size() != pBuildRangeInfos.size() )
18333     {
18334       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresKHR: infos.size() != pBuildRangeInfos.size()" );
18335     }
18336 #  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
18337 
18338     d.vkCmdBuildAccelerationStructuresKHR( m_commandBuffer,
18339                                            infos.size(),
18340                                            reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( infos.data() ),
18341                                            reinterpret_cast<const VkAccelerationStructureBuildRangeInfoKHR * const *>( pBuildRangeInfos.data() ) );
18342   }
18343 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
18344 
18345   // wrapper function for command vkCmdBuildAccelerationStructuresIndirectKHR, see
18346   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBuildAccelerationStructuresIndirectKHR.html
18347   template <typename Dispatch>
buildAccelerationStructuresIndirectKHR(uint32_t infoCount,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pInfos,const VULKAN_HPP_NAMESPACE::DeviceAddress * pIndirectDeviceAddresses,const uint32_t * pIndirectStrides,const uint32_t * const * ppMaxPrimitiveCounts,Dispatch const & d) const18348   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresIndirectKHR( uint32_t infoCount,
18349                                                                                 const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pInfos,
18350                                                                                 const VULKAN_HPP_NAMESPACE::DeviceAddress * pIndirectDeviceAddresses,
18351                                                                                 const uint32_t *                            pIndirectStrides,
18352                                                                                 const uint32_t * const *                    ppMaxPrimitiveCounts,
18353                                                                                 Dispatch const &                            d ) const VULKAN_HPP_NOEXCEPT
18354   {
18355     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18356     d.vkCmdBuildAccelerationStructuresIndirectKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
18357                                                    infoCount,
18358                                                    reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( pInfos ),
18359                                                    reinterpret_cast<const VkDeviceAddress *>( pIndirectDeviceAddresses ),
18360                                                    pIndirectStrides,
18361                                                    ppMaxPrimitiveCounts );
18362   }
18363 
18364 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18365   // wrapper function for command vkCmdBuildAccelerationStructuresIndirectKHR, see
18366   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBuildAccelerationStructuresIndirectKHR.html
18367   template <typename Dispatch>
buildAccelerationStructuresIndirectKHR(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceAddress> const & indirectDeviceAddresses,VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t> const & indirectStrides,VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t * const> const & pMaxPrimitiveCounts,Dispatch const & d) const18368   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructuresIndirectKHR(
18369     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos,
18370     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceAddress> const &                             indirectDeviceAddresses,
18371     VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t> const &                                                        indirectStrides,
18372     VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t * const> const &                                                pMaxPrimitiveCounts,
18373     Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
18374   {
18375     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18376 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18377     VULKAN_HPP_ASSERT( d.vkCmdBuildAccelerationStructuresIndirectKHR &&
18378                        "Function <vkCmdBuildAccelerationStructuresIndirectKHR> requires <VK_KHR_acceleration_structure>" );
18379 #  endif
18380 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
18381     VULKAN_HPP_ASSERT( infos.size() == indirectDeviceAddresses.size() );
18382     VULKAN_HPP_ASSERT( infos.size() == indirectStrides.size() );
18383     VULKAN_HPP_ASSERT( infos.size() == pMaxPrimitiveCounts.size() );
18384 #  else
18385     if ( infos.size() != indirectDeviceAddresses.size() )
18386     {
18387       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != indirectDeviceAddresses.size()" );
18388     }
18389     if ( infos.size() != indirectStrides.size() )
18390     {
18391       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != indirectStrides.size()" );
18392     }
18393     if ( infos.size() != pMaxPrimitiveCounts.size() )
18394     {
18395       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::buildAccelerationStructuresIndirectKHR: infos.size() != pMaxPrimitiveCounts.size()" );
18396     }
18397 #  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
18398 
18399     d.vkCmdBuildAccelerationStructuresIndirectKHR( m_commandBuffer,
18400                                                    infos.size(),
18401                                                    reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( infos.data() ),
18402                                                    reinterpret_cast<const VkDeviceAddress *>( indirectDeviceAddresses.data() ),
18403                                                    indirectStrides.data(),
18404                                                    pMaxPrimitiveCounts.data() );
18405   }
18406 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
18407 
18408   // wrapper function for command vkBuildAccelerationStructuresKHR, see
18409   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkBuildAccelerationStructuresKHR.html
18410   template <typename Dispatch>
18411   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
buildAccelerationStructuresKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,uint32_t infoCount,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pInfos,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos,Dispatch const & d) const18412     Device::buildAccelerationStructuresKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                                   deferredOperation,
18413                                             uint32_t                                                                     infoCount,
18414                                             const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR *      pInfos,
18415                                             const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const * ppBuildRangeInfos,
18416                                             Dispatch const &                                                             d ) const VULKAN_HPP_NOEXCEPT
18417   {
18418     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18419     return static_cast<Result>(
18420       d.vkBuildAccelerationStructuresKHR( static_cast<VkDevice>( m_device ),
18421                                           static_cast<VkDeferredOperationKHR>( deferredOperation ),
18422                                           infoCount,
18423                                           reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( pInfos ),
18424                                           reinterpret_cast<const VkAccelerationStructureBuildRangeInfoKHR * const *>( ppBuildRangeInfos ) ) );
18425   }
18426 
18427 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18428   // wrapper function for command vkBuildAccelerationStructuresKHR, see
18429   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkBuildAccelerationStructuresKHR.html
18430   template <typename Dispatch>
buildAccelerationStructuresKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const & infos,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const> const & pBuildRangeInfos,Dispatch const & d) const18431   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::buildAccelerationStructuresKHR(
18432     VULKAN_HPP_NAMESPACE::DeferredOperationKHR                                                                           deferredOperation,
18433     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR> const &      infos,
18434     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildRangeInfoKHR * const> const & pBuildRangeInfos,
18435     Dispatch const &                                                                                                     d ) const
18436   {
18437     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18438 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18439     VULKAN_HPP_ASSERT( d.vkBuildAccelerationStructuresKHR && "Function <vkBuildAccelerationStructuresKHR> requires <VK_KHR_acceleration_structure>" );
18440 #  endif
18441 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
18442     VULKAN_HPP_ASSERT( infos.size() == pBuildRangeInfos.size() );
18443 #  else
18444     if ( infos.size() != pBuildRangeInfos.size() )
18445     {
18446       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructuresKHR: infos.size() != pBuildRangeInfos.size()" );
18447     }
18448 #  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
18449 
18450     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
18451       d.vkBuildAccelerationStructuresKHR( m_device,
18452                                           static_cast<VkDeferredOperationKHR>( deferredOperation ),
18453                                           infos.size(),
18454                                           reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( infos.data() ),
18455                                           reinterpret_cast<const VkAccelerationStructureBuildRangeInfoKHR * const *>( pBuildRangeInfos.data() ) ) );
18456     VULKAN_HPP_NAMESPACE::detail::resultCheck(
18457       result,
18458       VULKAN_HPP_NAMESPACE_STRING "::Device::buildAccelerationStructuresKHR",
18459       { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
18460 
18461     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
18462   }
18463 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
18464 
18465   // wrapper function for command vkCopyAccelerationStructureKHR, see
18466   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyAccelerationStructureKHR.html
18467   template <typename Dispatch>
copyAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const18468   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,
18469                                                                                       const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR * pInfo,
18470                                                                                       Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
18471   {
18472     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18473     return static_cast<Result>( d.vkCopyAccelerationStructureKHR( static_cast<VkDevice>( m_device ),
18474                                                                   static_cast<VkDeferredOperationKHR>( deferredOperation ),
18475                                                                   reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( pInfo ) ) );
18476   }
18477 
18478 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18479   // wrapper function for command vkCopyAccelerationStructureKHR, see
18480   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyAccelerationStructureKHR.html
18481   template <typename Dispatch>
18482   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result
copyAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR & info,Dispatch const & d) const18483                                          Device::copyAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                     deferredOperation,
18484                                           const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR & info,
18485                                           Dispatch const &                                               d ) const
18486   {
18487     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18488 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18489     VULKAN_HPP_ASSERT( d.vkCopyAccelerationStructureKHR && "Function <vkCopyAccelerationStructureKHR> requires <VK_KHR_acceleration_structure>" );
18490 #  endif
18491 
18492     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCopyAccelerationStructureKHR(
18493       m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( &info ) ) );
18494     VULKAN_HPP_NAMESPACE::detail::resultCheck(
18495       result,
18496       VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureKHR",
18497       { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
18498 
18499     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
18500   }
18501 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
18502 
18503   // wrapper function for command vkCopyAccelerationStructureToMemoryKHR, see
18504   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyAccelerationStructureToMemoryKHR.html
18505   template <typename Dispatch>
18506   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
copyAccelerationStructureToMemoryKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR * pInfo,Dispatch const & d) const18507     Device::copyAccelerationStructureToMemoryKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                             deferredOperation,
18508                                                   const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR * pInfo,
18509                                                   Dispatch const &                                                       d ) const VULKAN_HPP_NOEXCEPT
18510   {
18511     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18512     return static_cast<Result>( d.vkCopyAccelerationStructureToMemoryKHR( static_cast<VkDevice>( m_device ),
18513                                                                           static_cast<VkDeferredOperationKHR>( deferredOperation ),
18514                                                                           reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( pInfo ) ) );
18515   }
18516 
18517 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18518   // wrapper function for command vkCopyAccelerationStructureToMemoryKHR, see
18519   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyAccelerationStructureToMemoryKHR.html
18520   template <typename Dispatch>
18521   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result
copyAccelerationStructureToMemoryKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR & info,Dispatch const & d) const18522                                          Device::copyAccelerationStructureToMemoryKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                             deferredOperation,
18523                                                   const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR & info,
18524                                                   Dispatch const &                                                       d ) const
18525   {
18526     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18527 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18528     VULKAN_HPP_ASSERT( d.vkCopyAccelerationStructureToMemoryKHR &&
18529                        "Function <vkCopyAccelerationStructureToMemoryKHR> requires <VK_KHR_acceleration_structure>" );
18530 #  endif
18531 
18532     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCopyAccelerationStructureToMemoryKHR(
18533       m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( &info ) ) );
18534     VULKAN_HPP_NAMESPACE::detail::resultCheck(
18535       result,
18536       VULKAN_HPP_NAMESPACE_STRING "::Device::copyAccelerationStructureToMemoryKHR",
18537       { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
18538 
18539     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
18540   }
18541 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
18542 
18543   // wrapper function for command vkCopyMemoryToAccelerationStructureKHR, see
18544   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyMemoryToAccelerationStructureKHR.html
18545   template <typename Dispatch>
18546   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
copyMemoryToAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const18547     Device::copyMemoryToAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                             deferredOperation,
18548                                                   const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR * pInfo,
18549                                                   Dispatch const &                                                       d ) const VULKAN_HPP_NOEXCEPT
18550   {
18551     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18552     return static_cast<Result>( d.vkCopyMemoryToAccelerationStructureKHR( static_cast<VkDevice>( m_device ),
18553                                                                           static_cast<VkDeferredOperationKHR>( deferredOperation ),
18554                                                                           reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( pInfo ) ) );
18555   }
18556 
18557 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18558   // wrapper function for command vkCopyMemoryToAccelerationStructureKHR, see
18559   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyMemoryToAccelerationStructureKHR.html
18560   template <typename Dispatch>
18561   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result
copyMemoryToAccelerationStructureKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR & info,Dispatch const & d) const18562                                          Device::copyMemoryToAccelerationStructureKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                             deferredOperation,
18563                                                   const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR & info,
18564                                                   Dispatch const &                                                       d ) const
18565   {
18566     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18567 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18568     VULKAN_HPP_ASSERT( d.vkCopyMemoryToAccelerationStructureKHR &&
18569                        "Function <vkCopyMemoryToAccelerationStructureKHR> requires <VK_KHR_acceleration_structure>" );
18570 #  endif
18571 
18572     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCopyMemoryToAccelerationStructureKHR(
18573       m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( &info ) ) );
18574     VULKAN_HPP_NAMESPACE::detail::resultCheck(
18575       result,
18576       VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToAccelerationStructureKHR",
18577       { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
18578 
18579     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
18580   }
18581 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
18582 
18583   // wrapper function for command vkWriteAccelerationStructuresPropertiesKHR, see
18584   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkWriteAccelerationStructuresPropertiesKHR.html
18585   template <typename Dispatch>
18586   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
writeAccelerationStructuresPropertiesKHR(uint32_t accelerationStructureCount,const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,size_t dataSize,void * pData,size_t stride,Dispatch const & d) const18587     Device::writeAccelerationStructuresPropertiesKHR( uint32_t                                               accelerationStructureCount,
18588                                                       const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures,
18589                                                       VULKAN_HPP_NAMESPACE::QueryType                        queryType,
18590                                                       size_t                                                 dataSize,
18591                                                       void *                                                 pData,
18592                                                       size_t                                                 stride,
18593                                                       Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
18594   {
18595     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18596     return static_cast<Result>( d.vkWriteAccelerationStructuresPropertiesKHR( static_cast<VkDevice>( m_device ),
18597                                                                               accelerationStructureCount,
18598                                                                               reinterpret_cast<const VkAccelerationStructureKHR *>( pAccelerationStructures ),
18599                                                                               static_cast<VkQueryType>( queryType ),
18600                                                                               dataSize,
18601                                                                               pData,
18602                                                                               stride ) );
18603   }
18604 
18605 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18606   // wrapper function for command vkWriteAccelerationStructuresPropertiesKHR, see
18607   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkWriteAccelerationStructuresPropertiesKHR.html
18608   template <typename DataType,
18609             typename DataTypeAllocator,
18610             typename Dispatch,
18611             typename std::enable_if<std::is_same<typename DataTypeAllocator::value_type, DataType>::value, int>::type>
18612   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DataType, DataTypeAllocator>>::type
writeAccelerationStructuresPropertiesKHR(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,size_t dataSize,size_t stride,Dispatch const & d) const18613                        Device::writeAccelerationStructuresPropertiesKHR(
18614       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures,
18615       VULKAN_HPP_NAMESPACE::QueryType                                                                queryType,
18616       size_t                                                                                         dataSize,
18617       size_t                                                                                         stride,
18618       Dispatch const &                                                                               d ) const
18619   {
18620     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18621 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18622     VULKAN_HPP_ASSERT( d.vkWriteAccelerationStructuresPropertiesKHR &&
18623                        "Function <vkWriteAccelerationStructuresPropertiesKHR> requires <VK_KHR_acceleration_structure>" );
18624 #  endif
18625 
18626     VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
18627     std::vector<DataType, DataTypeAllocator> data( dataSize / sizeof( DataType ) );
18628     VULKAN_HPP_NAMESPACE::Result             result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
18629       d.vkWriteAccelerationStructuresPropertiesKHR( m_device,
18630                                                     accelerationStructures.size(),
18631                                                     reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ),
18632                                                     static_cast<VkQueryType>( queryType ),
18633                                                     data.size() * sizeof( DataType ),
18634                                                     reinterpret_cast<void *>( data.data() ),
18635                                                     stride ) );
18636     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertiesKHR" );
18637 
18638     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) );
18639   }
18640 
18641   // wrapper function for command vkWriteAccelerationStructuresPropertiesKHR, see
18642   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkWriteAccelerationStructuresPropertiesKHR.html
18643   template <typename DataType, typename Dispatch>
writeAccelerationStructuresPropertyKHR(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,size_t stride,Dispatch const & d) const18644   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<DataType>::type Device::writeAccelerationStructuresPropertyKHR(
18645     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures,
18646     VULKAN_HPP_NAMESPACE::QueryType                                                                queryType,
18647     size_t                                                                                         stride,
18648     Dispatch const &                                                                               d ) const
18649   {
18650     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18651 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18652     VULKAN_HPP_ASSERT( d.vkWriteAccelerationStructuresPropertiesKHR &&
18653                        "Function <vkWriteAccelerationStructuresPropertiesKHR> requires <VK_KHR_acceleration_structure>" );
18654 #  endif
18655 
18656     DataType                     data;
18657     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
18658       d.vkWriteAccelerationStructuresPropertiesKHR( m_device,
18659                                                     accelerationStructures.size(),
18660                                                     reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ),
18661                                                     static_cast<VkQueryType>( queryType ),
18662                                                     sizeof( DataType ),
18663                                                     reinterpret_cast<void *>( &data ),
18664                                                     stride ) );
18665     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeAccelerationStructuresPropertyKHR" );
18666 
18667     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) );
18668   }
18669 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
18670 
18671   // wrapper function for command vkCmdCopyAccelerationStructureKHR, see
18672   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyAccelerationStructureKHR.html
18673   template <typename Dispatch>
copyAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const18674   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR * pInfo,
18675                                                                       Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
18676   {
18677     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18678     d.vkCmdCopyAccelerationStructureKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
18679                                          reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( pInfo ) );
18680   }
18681 
18682 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18683   // wrapper function for command vkCmdCopyAccelerationStructureKHR, see
18684   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyAccelerationStructureKHR.html
18685   template <typename Dispatch>
copyAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR & info,Dispatch const & d) const18686   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureInfoKHR & info,
18687                                                                       Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
18688   {
18689     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18690 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18691     VULKAN_HPP_ASSERT( d.vkCmdCopyAccelerationStructureKHR && "Function <vkCmdCopyAccelerationStructureKHR> requires <VK_KHR_acceleration_structure>" );
18692 #  endif
18693 
18694     d.vkCmdCopyAccelerationStructureKHR( m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureInfoKHR *>( &info ) );
18695   }
18696 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
18697 
18698   // wrapper function for command vkCmdCopyAccelerationStructureToMemoryKHR, see
18699   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyAccelerationStructureToMemoryKHR.html
18700   template <typename Dispatch>
copyAccelerationStructureToMemoryKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR * pInfo,Dispatch const & d) const18701   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR * pInfo,
18702                                                                               Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
18703   {
18704     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18705     d.vkCmdCopyAccelerationStructureToMemoryKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
18706                                                  reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( pInfo ) );
18707   }
18708 
18709 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18710   // wrapper function for command vkCmdCopyAccelerationStructureToMemoryKHR, see
18711   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyAccelerationStructureToMemoryKHR.html
18712   template <typename Dispatch>
copyAccelerationStructureToMemoryKHR(const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR & info,Dispatch const & d) const18713   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureToMemoryKHR( const VULKAN_HPP_NAMESPACE::CopyAccelerationStructureToMemoryInfoKHR & info,
18714                                                                               Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
18715   {
18716     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18717 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18718     VULKAN_HPP_ASSERT( d.vkCmdCopyAccelerationStructureToMemoryKHR &&
18719                        "Function <vkCmdCopyAccelerationStructureToMemoryKHR> requires <VK_KHR_acceleration_structure>" );
18720 #  endif
18721 
18722     d.vkCmdCopyAccelerationStructureToMemoryKHR( m_commandBuffer, reinterpret_cast<const VkCopyAccelerationStructureToMemoryInfoKHR *>( &info ) );
18723   }
18724 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
18725 
18726   // wrapper function for command vkCmdCopyMemoryToAccelerationStructureKHR, see
18727   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryToAccelerationStructureKHR.html
18728   template <typename Dispatch>
copyMemoryToAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR * pInfo,Dispatch const & d) const18729   VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR * pInfo,
18730                                                                               Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
18731   {
18732     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18733     d.vkCmdCopyMemoryToAccelerationStructureKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
18734                                                  reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( pInfo ) );
18735   }
18736 
18737 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18738   // wrapper function for command vkCmdCopyMemoryToAccelerationStructureKHR, see
18739   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryToAccelerationStructureKHR.html
18740   template <typename Dispatch>
copyMemoryToAccelerationStructureKHR(const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR & info,Dispatch const & d) const18741   VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToAccelerationStructureKHR( const VULKAN_HPP_NAMESPACE::CopyMemoryToAccelerationStructureInfoKHR & info,
18742                                                                               Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
18743   {
18744     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18745 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18746     VULKAN_HPP_ASSERT( d.vkCmdCopyMemoryToAccelerationStructureKHR &&
18747                        "Function <vkCmdCopyMemoryToAccelerationStructureKHR> requires <VK_KHR_acceleration_structure>" );
18748 #  endif
18749 
18750     d.vkCmdCopyMemoryToAccelerationStructureKHR( m_commandBuffer, reinterpret_cast<const VkCopyMemoryToAccelerationStructureInfoKHR *>( &info ) );
18751   }
18752 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
18753 
18754   // wrapper function for command vkGetAccelerationStructureDeviceAddressKHR, see
18755   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureDeviceAddressKHR.html
18756   template <typename Dispatch>
getAccelerationStructureAddressKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR * pInfo,Dispatch const & d) const18757   VULKAN_HPP_INLINE DeviceAddress Device::getAccelerationStructureAddressKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR * pInfo,
18758                                                                               Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
18759   {
18760     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18761     return static_cast<DeviceAddress>( d.vkGetAccelerationStructureDeviceAddressKHR(
18762       static_cast<VkDevice>( m_device ), reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR *>( pInfo ) ) );
18763   }
18764 
18765 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18766   // wrapper function for command vkGetAccelerationStructureDeviceAddressKHR, see
18767   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureDeviceAddressKHR.html
18768   template <typename Dispatch>
18769   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress
getAccelerationStructureAddressKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR & info,Dispatch const & d) const18770                     Device::getAccelerationStructureAddressKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureDeviceAddressInfoKHR & info,
18771                                                 Dispatch const &                                                        d ) const VULKAN_HPP_NOEXCEPT
18772   {
18773     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18774 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18775     VULKAN_HPP_ASSERT( d.vkGetAccelerationStructureDeviceAddressKHR &&
18776                        "Function <vkGetAccelerationStructureDeviceAddressKHR> requires <VK_KHR_acceleration_structure>" );
18777 #  endif
18778 
18779     VkDeviceAddress result =
18780       d.vkGetAccelerationStructureDeviceAddressKHR( m_device, reinterpret_cast<const VkAccelerationStructureDeviceAddressInfoKHR *>( &info ) );
18781 
18782     return static_cast<VULKAN_HPP_NAMESPACE::DeviceAddress>( result );
18783   }
18784 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
18785 
18786   // wrapper function for command vkCmdWriteAccelerationStructuresPropertiesKHR, see
18787   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWriteAccelerationStructuresPropertiesKHR.html
18788   template <typename Dispatch>
18789   VULKAN_HPP_INLINE void
writeAccelerationStructuresPropertiesKHR(uint32_t accelerationStructureCount,const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,Dispatch const & d) const18790     CommandBuffer::writeAccelerationStructuresPropertiesKHR( uint32_t                                               accelerationStructureCount,
18791                                                              const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR * pAccelerationStructures,
18792                                                              VULKAN_HPP_NAMESPACE::QueryType                        queryType,
18793                                                              VULKAN_HPP_NAMESPACE::QueryPool                        queryPool,
18794                                                              uint32_t                                               firstQuery,
18795                                                              Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
18796   {
18797     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18798     d.vkCmdWriteAccelerationStructuresPropertiesKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
18799                                                      accelerationStructureCount,
18800                                                      reinterpret_cast<const VkAccelerationStructureKHR *>( pAccelerationStructures ),
18801                                                      static_cast<VkQueryType>( queryType ),
18802                                                      static_cast<VkQueryPool>( queryPool ),
18803                                                      firstQuery );
18804   }
18805 
18806 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18807   // wrapper function for command vkCmdWriteAccelerationStructuresPropertiesKHR, see
18808   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWriteAccelerationStructuresPropertiesKHR.html
18809   template <typename Dispatch>
writeAccelerationStructuresPropertiesKHR(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,Dispatch const & d) const18810   VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesKHR(
18811     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureKHR> const & accelerationStructures,
18812     VULKAN_HPP_NAMESPACE::QueryType                                                                queryType,
18813     VULKAN_HPP_NAMESPACE::QueryPool                                                                queryPool,
18814     uint32_t                                                                                       firstQuery,
18815     Dispatch const &                                                                               d ) const VULKAN_HPP_NOEXCEPT
18816   {
18817     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18818 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18819     VULKAN_HPP_ASSERT( d.vkCmdWriteAccelerationStructuresPropertiesKHR &&
18820                        "Function <vkCmdWriteAccelerationStructuresPropertiesKHR> requires <VK_KHR_acceleration_structure>" );
18821 #  endif
18822 
18823     d.vkCmdWriteAccelerationStructuresPropertiesKHR( m_commandBuffer,
18824                                                      accelerationStructures.size(),
18825                                                      reinterpret_cast<const VkAccelerationStructureKHR *>( accelerationStructures.data() ),
18826                                                      static_cast<VkQueryType>( queryType ),
18827                                                      static_cast<VkQueryPool>( queryPool ),
18828                                                      firstQuery );
18829   }
18830 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
18831 
18832   // wrapper function for command vkGetDeviceAccelerationStructureCompatibilityKHR, see
18833   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceAccelerationStructureCompatibilityKHR.html
18834   template <typename Dispatch>
getAccelerationStructureCompatibilityKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR * pVersionInfo,VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR * pCompatibility,Dispatch const & d) const18835   VULKAN_HPP_INLINE void Device::getAccelerationStructureCompatibilityKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR * pVersionInfo,
18836                                                                            VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR *     pCompatibility,
18837                                                                            Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
18838   {
18839     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18840     d.vkGetDeviceAccelerationStructureCompatibilityKHR( static_cast<VkDevice>( m_device ),
18841                                                         reinterpret_cast<const VkAccelerationStructureVersionInfoKHR *>( pVersionInfo ),
18842                                                         reinterpret_cast<VkAccelerationStructureCompatibilityKHR *>( pCompatibility ) );
18843   }
18844 
18845 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18846   // wrapper function for command vkGetDeviceAccelerationStructureCompatibilityKHR, see
18847   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceAccelerationStructureCompatibilityKHR.html
18848   template <typename Dispatch>
18849   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR
getAccelerationStructureCompatibilityKHR(const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR & versionInfo,Dispatch const & d) const18850     Device::getAccelerationStructureCompatibilityKHR( const VULKAN_HPP_NAMESPACE::AccelerationStructureVersionInfoKHR & versionInfo,
18851                                                       Dispatch const &                                                  d ) const VULKAN_HPP_NOEXCEPT
18852   {
18853     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18854 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18855     VULKAN_HPP_ASSERT( d.vkGetDeviceAccelerationStructureCompatibilityKHR &&
18856                        "Function <vkGetDeviceAccelerationStructureCompatibilityKHR> requires <VK_KHR_acceleration_structure>" );
18857 #  endif
18858 
18859     VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR compatibility;
18860     d.vkGetDeviceAccelerationStructureCompatibilityKHR( m_device,
18861                                                         reinterpret_cast<const VkAccelerationStructureVersionInfoKHR *>( &versionInfo ),
18862                                                         reinterpret_cast<VkAccelerationStructureCompatibilityKHR *>( &compatibility ) );
18863 
18864     return compatibility;
18865   }
18866 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
18867 
18868   // wrapper function for command vkGetAccelerationStructureBuildSizesKHR, see
18869   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureBuildSizesKHR.html
18870   template <typename Dispatch>
getAccelerationStructureBuildSizesKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pBuildInfo,const uint32_t * pMaxPrimitiveCounts,VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR * pSizeInfo,Dispatch const & d) const18871   VULKAN_HPP_INLINE void Device::getAccelerationStructureBuildSizesKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR                 buildType,
18872                                                                         const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR * pBuildInfo,
18873                                                                         const uint32_t *                                               pMaxPrimitiveCounts,
18874                                                                         VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR * pSizeInfo,
18875                                                                         Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
18876   {
18877     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18878     d.vkGetAccelerationStructureBuildSizesKHR( static_cast<VkDevice>( m_device ),
18879                                                static_cast<VkAccelerationStructureBuildTypeKHR>( buildType ),
18880                                                reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( pBuildInfo ),
18881                                                pMaxPrimitiveCounts,
18882                                                reinterpret_cast<VkAccelerationStructureBuildSizesInfoKHR *>( pSizeInfo ) );
18883   }
18884 
18885 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18886   // wrapper function for command vkGetAccelerationStructureBuildSizesKHR, see
18887   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureBuildSizesKHR.html
18888   template <typename Dispatch>
18889   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR
getAccelerationStructureBuildSizesKHR(VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType,const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR & buildInfo,VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t> const & maxPrimitiveCounts,Dispatch const & d) const18890                                          Device::getAccelerationStructureBuildSizesKHR( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR                 buildType,
18891                                                    const VULKAN_HPP_NAMESPACE::AccelerationStructureBuildGeometryInfoKHR & buildInfo,
18892                                                    VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t> const &                maxPrimitiveCounts,
18893                                                    Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
18894   {
18895     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18896 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18897     VULKAN_HPP_ASSERT( d.vkGetAccelerationStructureBuildSizesKHR &&
18898                        "Function <vkGetAccelerationStructureBuildSizesKHR> requires <VK_KHR_acceleration_structure>" );
18899 #  endif
18900 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
18901     VULKAN_HPP_ASSERT( maxPrimitiveCounts.size() == buildInfo.geometryCount );
18902 #  else
18903     if ( maxPrimitiveCounts.size() != buildInfo.geometryCount )
18904     {
18905       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureBuildSizesKHR: maxPrimitiveCounts.size() != buildInfo.geometryCount" );
18906     }
18907 #  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
18908 
18909     VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR sizeInfo;
18910     d.vkGetAccelerationStructureBuildSizesKHR( m_device,
18911                                                static_cast<VkAccelerationStructureBuildTypeKHR>( buildType ),
18912                                                reinterpret_cast<const VkAccelerationStructureBuildGeometryInfoKHR *>( &buildInfo ),
18913                                                maxPrimitiveCounts.data(),
18914                                                reinterpret_cast<VkAccelerationStructureBuildSizesInfoKHR *>( &sizeInfo ) );
18915 
18916     return sizeInfo;
18917   }
18918 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
18919 
18920   //=== VK_KHR_ray_tracing_pipeline ===
18921 
18922   // wrapper function for command vkCmdTraceRaysKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdTraceRaysKHR.html
18923   template <typename Dispatch>
traceRaysKHR(const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pMissShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pHitShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pCallableShaderBindingTable,uint32_t width,uint32_t height,uint32_t depth,Dispatch const & d) const18924   VULKAN_HPP_INLINE void CommandBuffer::traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,
18925                                                       const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pMissShaderBindingTable,
18926                                                       const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pHitShaderBindingTable,
18927                                                       const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pCallableShaderBindingTable,
18928                                                       uint32_t                                                    width,
18929                                                       uint32_t                                                    height,
18930                                                       uint32_t                                                    depth,
18931                                                       Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
18932   {
18933     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18934     d.vkCmdTraceRaysKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
18935                          reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pRaygenShaderBindingTable ),
18936                          reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pMissShaderBindingTable ),
18937                          reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pHitShaderBindingTable ),
18938                          reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pCallableShaderBindingTable ),
18939                          width,
18940                          height,
18941                          depth );
18942   }
18943 
18944 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18945   // wrapper function for command vkCmdTraceRaysKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdTraceRaysKHR.html
18946   template <typename Dispatch>
traceRaysKHR(const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable,uint32_t width,uint32_t height,uint32_t depth,Dispatch const & d) const18947   VULKAN_HPP_INLINE void CommandBuffer::traceRaysKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable,
18948                                                       const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable,
18949                                                       const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable,
18950                                                       const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable,
18951                                                       uint32_t                                                    width,
18952                                                       uint32_t                                                    height,
18953                                                       uint32_t                                                    depth,
18954                                                       Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
18955   {
18956     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18957 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
18958     VULKAN_HPP_ASSERT( d.vkCmdTraceRaysKHR && "Function <vkCmdTraceRaysKHR> requires <VK_KHR_ray_tracing_pipeline>" );
18959 #  endif
18960 
18961     d.vkCmdTraceRaysKHR( m_commandBuffer,
18962                          reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &raygenShaderBindingTable ),
18963                          reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &missShaderBindingTable ),
18964                          reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &hitShaderBindingTable ),
18965                          reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &callableShaderBindingTable ),
18966                          width,
18967                          height,
18968                          depth );
18969   }
18970 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
18971 
18972   // wrapper function for command vkCreateRayTracingPipelinesKHR, see
18973   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesKHR.html
18974   template <typename Dispatch>
18975   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
createRayTracingPipelinesKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,uint32_t createInfoCount,const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR * pCreateInfos,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Pipeline * pPipelines,Dispatch const & d) const18976     Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                    deferredOperation,
18977                                           VULKAN_HPP_NAMESPACE::PipelineCache                           pipelineCache,
18978                                           uint32_t                                                      createInfoCount,
18979                                           const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR * pCreateInfos,
18980                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks *             pAllocator,
18981                                           VULKAN_HPP_NAMESPACE::Pipeline *                              pPipelines,
18982                                           Dispatch const &                                              d ) const VULKAN_HPP_NOEXCEPT
18983   {
18984     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
18985     return static_cast<Result>( d.vkCreateRayTracingPipelinesKHR( static_cast<VkDevice>( m_device ),
18986                                                                   static_cast<VkDeferredOperationKHR>( deferredOperation ),
18987                                                                   static_cast<VkPipelineCache>( pipelineCache ),
18988                                                                   createInfoCount,
18989                                                                   reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( pCreateInfos ),
18990                                                                   reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
18991                                                                   reinterpret_cast<VkPipeline *>( pPipelines ) ) );
18992   }
18993 
18994 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
18995   // wrapper function for command vkCreateRayTracingPipelinesKHR, see
18996   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesKHR.html
18997   template <typename PipelineAllocator,
18998             typename Dispatch,
18999             typename std::enable_if<std::is_same<typename PipelineAllocator::value_type, VULKAN_HPP_NAMESPACE::Pipeline>::value, int>::type>
19000   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
createRayTracingPipelinesKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const19001                                          Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,
19002                                           VULKAN_HPP_NAMESPACE::PipelineCache        pipelineCache,
19003                                           VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,
19004                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                             allocator,
19005                                           Dispatch const &                                                                                      d ) const
19006   {
19007     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19008 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19009     VULKAN_HPP_ASSERT( d.vkCreateRayTracingPipelinesKHR && "Function <vkCreateRayTracingPipelinesKHR> requires <VK_KHR_ray_tracing_pipeline>" );
19010 #  endif
19011 
19012     std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator> pipelines( createInfos.size() );
19013     VULKAN_HPP_NAMESPACE::Result                                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesKHR(
19014       m_device,
19015       static_cast<VkDeferredOperationKHR>( deferredOperation ),
19016       static_cast<VkPipelineCache>( pipelineCache ),
19017       createInfos.size(),
19018       reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ),
19019       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
19020       reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
19021     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
19022                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHR",
19023                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess,
19024                                                  VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
19025                                                  VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR,
19026                                                  VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
19027 
19028     return ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>( result, std::move( pipelines ) );
19029   }
19030 
19031   // wrapper function for command vkCreateRayTracingPipelinesKHR, see
19032   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesKHR.html
19033   template <typename PipelineAllocator,
19034             typename Dispatch,
19035             typename std::enable_if<std::is_same<typename PipelineAllocator::value_type, VULKAN_HPP_NAMESPACE::Pipeline>::value, int>::type>
19036   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
createRayTracingPipelinesKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const19037                                          Device::createRayTracingPipelinesKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,
19038                                           VULKAN_HPP_NAMESPACE::PipelineCache        pipelineCache,
19039                                           VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,
19040                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                             allocator,
19041                                           PipelineAllocator & pipelineAllocator,
19042                                           Dispatch const &    d ) const
19043   {
19044     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19045 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19046     VULKAN_HPP_ASSERT( d.vkCreateRayTracingPipelinesKHR && "Function <vkCreateRayTracingPipelinesKHR> requires <VK_KHR_ray_tracing_pipeline>" );
19047 #  endif
19048 
19049     std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
19050     VULKAN_HPP_NAMESPACE::Result                                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesKHR(
19051       m_device,
19052       static_cast<VkDeferredOperationKHR>( deferredOperation ),
19053       static_cast<VkPipelineCache>( pipelineCache ),
19054       createInfos.size(),
19055       reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ),
19056       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
19057       reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
19058     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
19059                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHR",
19060                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess,
19061                                                  VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
19062                                                  VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR,
19063                                                  VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
19064 
19065     return ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>( result, std::move( pipelines ) );
19066   }
19067 
19068   // wrapper function for command vkCreateRayTracingPipelinesKHR, see
19069   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesKHR.html
19070   template <typename Dispatch>
19071   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<VULKAN_HPP_NAMESPACE::Pipeline>
createRayTracingPipelineKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const19072                                          Device::createRayTracingPipelineKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                    deferredOperation,
19073                                          VULKAN_HPP_NAMESPACE::PipelineCache                           pipelineCache,
19074                                          const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR & createInfo,
19075                                          Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>     allocator,
19076                                          Dispatch const &                                              d ) const
19077   {
19078     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19079 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19080     VULKAN_HPP_ASSERT( d.vkCreateRayTracingPipelinesKHR && "Function <vkCreateRayTracingPipelinesKHR> requires <VK_KHR_ray_tracing_pipeline>" );
19081 #  endif
19082 
19083     VULKAN_HPP_NAMESPACE::Pipeline pipeline;
19084     VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesKHR(
19085       m_device,
19086       static_cast<VkDeferredOperationKHR>( deferredOperation ),
19087       static_cast<VkPipelineCache>( pipelineCache ),
19088       1,
19089       reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( &createInfo ),
19090       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
19091       reinterpret_cast<VkPipeline *>( &pipeline ) ) );
19092     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
19093                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineKHR",
19094                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess,
19095                                                  VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
19096                                                  VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR,
19097                                                  VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
19098 
19099     return ResultValue<VULKAN_HPP_NAMESPACE::Pipeline>( result, std::move( pipeline ) );
19100   }
19101 
19102 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
19103   // wrapper function for command vkCreateRayTracingPipelinesKHR, see
19104   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesKHR.html
19105   template <
19106     typename Dispatch,
19107     typename PipelineAllocator,
19108     typename std::enable_if<std::is_same<typename PipelineAllocator::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>::value, int>::type>
19109   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
createRayTracingPipelinesKHRUnique(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const19110                                          Device::createRayTracingPipelinesKHRUnique(
19111       VULKAN_HPP_NAMESPACE::DeferredOperationKHR                                                            deferredOperation,
19112       VULKAN_HPP_NAMESPACE::PipelineCache                                                                   pipelineCache,
19113       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,
19114       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                             allocator,
19115       Dispatch const &                                                                                      d ) const
19116   {
19117     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19118 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19119     VULKAN_HPP_ASSERT( d.vkCreateRayTracingPipelinesKHR && "Function <vkCreateRayTracingPipelinesKHR> requires <VK_KHR_ray_tracing_pipeline>" );
19120 #    endif
19121 
19122     std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
19123     VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesKHR(
19124       m_device,
19125       static_cast<VkDeferredOperationKHR>( deferredOperation ),
19126       static_cast<VkPipelineCache>( pipelineCache ),
19127       createInfos.size(),
19128       reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ),
19129       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
19130       reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
19131     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
19132                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHRUnique",
19133                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess,
19134                                                  VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
19135                                                  VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR,
19136                                                  VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
19137     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
19138     uniquePipelines.reserve( createInfos.size() );
19139     detail::ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
19140     for ( auto const & pipeline : pipelines )
19141     {
19142       uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipeline, deleter ) );
19143     }
19144     return ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>( result, std::move( uniquePipelines ) );
19145   }
19146 
19147   // wrapper function for command vkCreateRayTracingPipelinesKHR, see
19148   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesKHR.html
19149   template <
19150     typename Dispatch,
19151     typename PipelineAllocator,
19152     typename std::enable_if<std::is_same<typename PipelineAllocator::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>::value, int>::type>
19153   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
createRayTracingPipelinesKHRUnique(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const19154                                          Device::createRayTracingPipelinesKHRUnique(
19155       VULKAN_HPP_NAMESPACE::DeferredOperationKHR                                                            deferredOperation,
19156       VULKAN_HPP_NAMESPACE::PipelineCache                                                                   pipelineCache,
19157       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR> const & createInfos,
19158       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                             allocator,
19159       PipelineAllocator &                                                                                   pipelineAllocator,
19160       Dispatch const &                                                                                      d ) const
19161   {
19162     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19163 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19164     VULKAN_HPP_ASSERT( d.vkCreateRayTracingPipelinesKHR && "Function <vkCreateRayTracingPipelinesKHR> requires <VK_KHR_ray_tracing_pipeline>" );
19165 #    endif
19166 
19167     std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
19168     VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesKHR(
19169       m_device,
19170       static_cast<VkDeferredOperationKHR>( deferredOperation ),
19171       static_cast<VkPipelineCache>( pipelineCache ),
19172       createInfos.size(),
19173       reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( createInfos.data() ),
19174       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
19175       reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
19176     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
19177                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesKHRUnique",
19178                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess,
19179                                                  VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
19180                                                  VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR,
19181                                                  VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
19182     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
19183     uniquePipelines.reserve( createInfos.size() );
19184     detail::ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
19185     for ( auto const & pipeline : pipelines )
19186     {
19187       uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipeline, deleter ) );
19188     }
19189     return ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>( result, std::move( uniquePipelines ) );
19190   }
19191 
19192   // wrapper function for command vkCreateRayTracingPipelinesKHR, see
19193   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesKHR.html
19194   template <typename Dispatch>
19195   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>
createRayTracingPipelineKHRUnique(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const19196                                          Device::createRayTracingPipelineKHRUnique( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                    deferredOperation,
19197                                                VULKAN_HPP_NAMESPACE::PipelineCache                           pipelineCache,
19198                                                const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoKHR & createInfo,
19199                                                Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>     allocator,
19200                                                Dispatch const &                                              d ) const
19201   {
19202     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19203 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19204     VULKAN_HPP_ASSERT( d.vkCreateRayTracingPipelinesKHR && "Function <vkCreateRayTracingPipelinesKHR> requires <VK_KHR_ray_tracing_pipeline>" );
19205 #    endif
19206 
19207     VULKAN_HPP_NAMESPACE::Pipeline pipeline;
19208     VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesKHR(
19209       m_device,
19210       static_cast<VkDeferredOperationKHR>( deferredOperation ),
19211       static_cast<VkPipelineCache>( pipelineCache ),
19212       1,
19213       reinterpret_cast<const VkRayTracingPipelineCreateInfoKHR *>( &createInfo ),
19214       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
19215       reinterpret_cast<VkPipeline *>( &pipeline ) ) );
19216     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
19217                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineKHRUnique",
19218                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess,
19219                                                  VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR,
19220                                                  VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR,
19221                                                  VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
19222 
19223     return ResultValue<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>(
19224       result, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>( pipeline, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
19225   }
19226 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
19227 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
19228 
19229   // wrapper function for command vkGetRayTracingShaderGroupHandlesKHR, see
19230   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingShaderGroupHandlesKHR.html
19231   template <typename Dispatch>
getRayTracingShaderGroupHandlesKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData,Dispatch const & d) const19232   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getRayTracingShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline,
19233                                                                                             uint32_t                       firstGroup,
19234                                                                                             uint32_t                       groupCount,
19235                                                                                             size_t                         dataSize,
19236                                                                                             void *                         pData,
19237                                                                                             Dispatch const &               d ) const VULKAN_HPP_NOEXCEPT
19238   {
19239     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19240     return static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesKHR(
19241       static_cast<VkDevice>( m_device ), static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
19242   }
19243 
19244 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19245   // wrapper function for command vkGetRayTracingShaderGroupHandlesKHR, see
19246   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingShaderGroupHandlesKHR.html
19247   template <typename DataType,
19248             typename DataTypeAllocator,
19249             typename Dispatch,
19250             typename std::enable_if<std::is_same<typename DataTypeAllocator::value_type, DataType>::value, int>::type>
getRayTracingShaderGroupHandlesKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,Dispatch const & d) const19251   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DataType, DataTypeAllocator>>::type Device::getRayTracingShaderGroupHandlesKHR(
19252     VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d ) const
19253   {
19254     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19255 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19256     VULKAN_HPP_ASSERT( d.vkGetRayTracingShaderGroupHandlesKHR &&
19257                        "Function <vkGetRayTracingShaderGroupHandlesKHR> requires <VK_KHR_ray_tracing_pipeline> or <VK_NV_ray_tracing>" );
19258 #  endif
19259 
19260     VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
19261     std::vector<DataType, DataTypeAllocator> data( dataSize / sizeof( DataType ) );
19262     VULKAN_HPP_NAMESPACE::Result             result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetRayTracingShaderGroupHandlesKHR(
19263       m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( DataType ), reinterpret_cast<void *>( data.data() ) ) );
19264     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandlesKHR" );
19265 
19266     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) );
19267   }
19268 
19269   // wrapper function for command vkGetRayTracingShaderGroupHandlesKHR, see
19270   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingShaderGroupHandlesKHR.html
19271   template <typename DataType, typename Dispatch>
19272   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<DataType>::type
getRayTracingShaderGroupHandleKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,Dispatch const & d) const19273     Device::getRayTracingShaderGroupHandleKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d ) const
19274   {
19275     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19276 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19277     VULKAN_HPP_ASSERT( d.vkGetRayTracingShaderGroupHandlesKHR &&
19278                        "Function <vkGetRayTracingShaderGroupHandlesKHR> requires <VK_KHR_ray_tracing_pipeline> or <VK_NV_ray_tracing>" );
19279 #  endif
19280 
19281     DataType                     data;
19282     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetRayTracingShaderGroupHandlesKHR(
19283       m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, sizeof( DataType ), reinterpret_cast<void *>( &data ) ) );
19284     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandleKHR" );
19285 
19286     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) );
19287   }
19288 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
19289 
19290   // wrapper function for command vkGetRayTracingCaptureReplayShaderGroupHandlesKHR, see
19291   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingCaptureReplayShaderGroupHandlesKHR.html
19292   template <typename Dispatch>
getRayTracingCaptureReplayShaderGroupHandlesKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData,Dispatch const & d) const19293   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getRayTracingCaptureReplayShaderGroupHandlesKHR( VULKAN_HPP_NAMESPACE::Pipeline pipeline,
19294                                                                                                          uint32_t                       firstGroup,
19295                                                                                                          uint32_t                       groupCount,
19296                                                                                                          size_t                         dataSize,
19297                                                                                                          void *                         pData,
19298                                                                                                          Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
19299   {
19300     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19301     return static_cast<Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
19302       static_cast<VkDevice>( m_device ), static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
19303   }
19304 
19305 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19306   // wrapper function for command vkGetRayTracingCaptureReplayShaderGroupHandlesKHR, see
19307   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingCaptureReplayShaderGroupHandlesKHR.html
19308   template <typename DataType,
19309             typename DataTypeAllocator,
19310             typename Dispatch,
19311             typename std::enable_if<std::is_same<typename DataTypeAllocator::value_type, DataType>::value, int>::type>
19312   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DataType, DataTypeAllocator>>::type
getRayTracingCaptureReplayShaderGroupHandlesKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,Dispatch const & d) const19313                        Device::getRayTracingCaptureReplayShaderGroupHandlesKHR(
19314       VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d ) const
19315   {
19316     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19317 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19318     VULKAN_HPP_ASSERT( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR &&
19319                        "Function <vkGetRayTracingCaptureReplayShaderGroupHandlesKHR> requires <VK_KHR_ray_tracing_pipeline>" );
19320 #  endif
19321 
19322     VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
19323     std::vector<DataType, DataTypeAllocator> data( dataSize / sizeof( DataType ) );
19324     VULKAN_HPP_NAMESPACE::Result             result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
19325       m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( DataType ), reinterpret_cast<void *>( data.data() ) ) );
19326     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingCaptureReplayShaderGroupHandlesKHR" );
19327 
19328     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) );
19329   }
19330 
19331   // wrapper function for command vkGetRayTracingCaptureReplayShaderGroupHandlesKHR, see
19332   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingCaptureReplayShaderGroupHandlesKHR.html
19333   template <typename DataType, typename Dispatch>
getRayTracingCaptureReplayShaderGroupHandleKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,Dispatch const & d) const19334   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<DataType>::type Device::getRayTracingCaptureReplayShaderGroupHandleKHR(
19335     VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d ) const
19336   {
19337     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19338 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19339     VULKAN_HPP_ASSERT( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR &&
19340                        "Function <vkGetRayTracingCaptureReplayShaderGroupHandlesKHR> requires <VK_KHR_ray_tracing_pipeline>" );
19341 #  endif
19342 
19343     DataType                     data;
19344     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetRayTracingCaptureReplayShaderGroupHandlesKHR(
19345       m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, sizeof( DataType ), reinterpret_cast<void *>( &data ) ) );
19346     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingCaptureReplayShaderGroupHandleKHR" );
19347 
19348     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) );
19349   }
19350 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
19351 
19352   // wrapper function for command vkCmdTraceRaysIndirectKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdTraceRaysIndirectKHR.html
19353   template <typename Dispatch>
traceRaysIndirectKHR(const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pMissShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pHitShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pCallableShaderBindingTable,VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress,Dispatch const & d) const19354   VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pRaygenShaderBindingTable,
19355                                                               const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pMissShaderBindingTable,
19356                                                               const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pHitShaderBindingTable,
19357                                                               const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR * pCallableShaderBindingTable,
19358                                                               VULKAN_HPP_NAMESPACE::DeviceAddress                         indirectDeviceAddress,
19359                                                               Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
19360   {
19361     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19362     d.vkCmdTraceRaysIndirectKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
19363                                  reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pRaygenShaderBindingTable ),
19364                                  reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pMissShaderBindingTable ),
19365                                  reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pHitShaderBindingTable ),
19366                                  reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( pCallableShaderBindingTable ),
19367                                  static_cast<VkDeviceAddress>( indirectDeviceAddress ) );
19368   }
19369 
19370 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19371   // wrapper function for command vkCmdTraceRaysIndirectKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdTraceRaysIndirectKHR.html
19372   template <typename Dispatch>
traceRaysIndirectKHR(const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable,const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable,VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress,Dispatch const & d) const19373   VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirectKHR( const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & raygenShaderBindingTable,
19374                                                               const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & missShaderBindingTable,
19375                                                               const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & hitShaderBindingTable,
19376                                                               const VULKAN_HPP_NAMESPACE::StridedDeviceAddressRegionKHR & callableShaderBindingTable,
19377                                                               VULKAN_HPP_NAMESPACE::DeviceAddress                         indirectDeviceAddress,
19378                                                               Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
19379   {
19380     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19381 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19382     VULKAN_HPP_ASSERT( d.vkCmdTraceRaysIndirectKHR && "Function <vkCmdTraceRaysIndirectKHR> requires <VK_KHR_ray_tracing_pipeline>" );
19383 #  endif
19384 
19385     d.vkCmdTraceRaysIndirectKHR( m_commandBuffer,
19386                                  reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &raygenShaderBindingTable ),
19387                                  reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &missShaderBindingTable ),
19388                                  reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &hitShaderBindingTable ),
19389                                  reinterpret_cast<const VkStridedDeviceAddressRegionKHR *>( &callableShaderBindingTable ),
19390                                  static_cast<VkDeviceAddress>( indirectDeviceAddress ) );
19391   }
19392 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
19393 
19394   // wrapper function for command vkGetRayTracingShaderGroupStackSizeKHR, see
19395   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingShaderGroupStackSizeKHR.html
19396   template <typename Dispatch>
getRayTracingShaderGroupStackSizeKHR(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t group,VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader,Dispatch const & d) const19397   VULKAN_HPP_INLINE DeviceSize Device::getRayTracingShaderGroupStackSizeKHR( VULKAN_HPP_NAMESPACE::Pipeline             pipeline,
19398                                                                              uint32_t                                   group,
19399                                                                              VULKAN_HPP_NAMESPACE::ShaderGroupShaderKHR groupShader,
19400                                                                              Dispatch const &                           d ) const VULKAN_HPP_NOEXCEPT
19401   {
19402     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19403     return static_cast<DeviceSize>( d.vkGetRayTracingShaderGroupStackSizeKHR(
19404       static_cast<VkDevice>( m_device ), static_cast<VkPipeline>( pipeline ), group, static_cast<VkShaderGroupShaderKHR>( groupShader ) ) );
19405   }
19406 
19407   // wrapper function for command vkCmdSetRayTracingPipelineStackSizeKHR, see
19408   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetRayTracingPipelineStackSizeKHR.html
19409   template <typename Dispatch>
setRayTracingPipelineStackSizeKHR(uint32_t pipelineStackSize,Dispatch const & d) const19410   VULKAN_HPP_INLINE void CommandBuffer::setRayTracingPipelineStackSizeKHR( uint32_t pipelineStackSize, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
19411   {
19412     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19413     d.vkCmdSetRayTracingPipelineStackSizeKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), pipelineStackSize );
19414   }
19415 
19416   //=== VK_KHR_sampler_ycbcr_conversion ===
19417 
19418   // wrapper function for command vkCreateSamplerYcbcrConversionKHR, see
19419   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSamplerYcbcrConversionKHR.html
19420   template <typename Dispatch>
19421   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
createSamplerYcbcrConversionKHR(const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion * pYcbcrConversion,Dispatch const & d) const19422     Device::createSamplerYcbcrConversionKHR( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo * pCreateInfo,
19423                                              const VULKAN_HPP_NAMESPACE::AllocationCallbacks *              pAllocator,
19424                                              VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion *                 pYcbcrConversion,
19425                                              Dispatch const &                                               d ) const VULKAN_HPP_NOEXCEPT
19426   {
19427     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19428     return static_cast<Result>( d.vkCreateSamplerYcbcrConversionKHR( static_cast<VkDevice>( m_device ),
19429                                                                      reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( pCreateInfo ),
19430                                                                      reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
19431                                                                      reinterpret_cast<VkSamplerYcbcrConversion *>( pYcbcrConversion ) ) );
19432   }
19433 
19434 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19435   // wrapper function for command vkCreateSamplerYcbcrConversionKHR, see
19436   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSamplerYcbcrConversionKHR.html
19437   template <typename Dispatch>
19438   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion>::type
createSamplerYcbcrConversionKHR(const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const19439                        Device::createSamplerYcbcrConversionKHR( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo & createInfo,
19440                                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>      allocator,
19441                                              Dispatch const &                                               d ) const
19442   {
19443     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19444 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19445     VULKAN_HPP_ASSERT( d.vkCreateSamplerYcbcrConversionKHR &&
19446                        "Function <vkCreateSamplerYcbcrConversionKHR> requires <VK_KHR_sampler_ycbcr_conversion> or <VK_VERSION_1_1>" );
19447 #  endif
19448 
19449     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
19450     VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateSamplerYcbcrConversionKHR(
19451       m_device,
19452       reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( &createInfo ),
19453       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
19454       reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) ) );
19455     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionKHR" );
19456 
19457     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( ycbcrConversion ) );
19458   }
19459 
19460 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
19461   // wrapper function for command vkCreateSamplerYcbcrConversionKHR, see
19462   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateSamplerYcbcrConversionKHR.html
19463   template <typename Dispatch>
19464   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion, Dispatch>>::type
createSamplerYcbcrConversionKHRUnique(const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const19465                        Device::createSamplerYcbcrConversionKHRUnique( const VULKAN_HPP_NAMESPACE::SamplerYcbcrConversionCreateInfo & createInfo,
19466                                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>      allocator,
19467                                                    Dispatch const &                                               d ) const
19468   {
19469     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19470 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19471     VULKAN_HPP_ASSERT( d.vkCreateSamplerYcbcrConversionKHR &&
19472                        "Function <vkCreateSamplerYcbcrConversionKHR> requires <VK_KHR_sampler_ycbcr_conversion> or <VK_VERSION_1_1>" );
19473 #    endif
19474 
19475     VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion;
19476     VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateSamplerYcbcrConversionKHR(
19477       m_device,
19478       reinterpret_cast<const VkSamplerYcbcrConversionCreateInfo *>( &createInfo ),
19479       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
19480       reinterpret_cast<VkSamplerYcbcrConversion *>( &ycbcrConversion ) ) );
19481     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createSamplerYcbcrConversionKHRUnique" );
19482 
19483     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
19484       result,
19485       UniqueHandle<VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion, Dispatch>( ycbcrConversion, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
19486   }
19487 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
19488 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
19489 
19490   // wrapper function for command vkDestroySamplerYcbcrConversionKHR, see
19491   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySamplerYcbcrConversionKHR.html
19492   template <typename Dispatch>
destroySamplerYcbcrConversionKHR(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const19493   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion      ycbcrConversion,
19494                                                                    const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
19495                                                                    Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
19496   {
19497     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19498     d.vkDestroySamplerYcbcrConversionKHR( static_cast<VkDevice>( m_device ),
19499                                           static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ),
19500                                           reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
19501   }
19502 
19503 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19504   // wrapper function for command vkDestroySamplerYcbcrConversionKHR, see
19505   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroySamplerYcbcrConversionKHR.html
19506   template <typename Dispatch>
destroySamplerYcbcrConversionKHR(VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion ycbcrConversion,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const19507   VULKAN_HPP_INLINE void Device::destroySamplerYcbcrConversionKHR( VULKAN_HPP_NAMESPACE::SamplerYcbcrConversion              ycbcrConversion,
19508                                                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
19509                                                                    Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
19510   {
19511     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19512 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19513     VULKAN_HPP_ASSERT( d.vkDestroySamplerYcbcrConversionKHR &&
19514                        "Function <vkDestroySamplerYcbcrConversionKHR> requires <VK_KHR_sampler_ycbcr_conversion> or <VK_VERSION_1_1>" );
19515 #  endif
19516 
19517     d.vkDestroySamplerYcbcrConversionKHR(
19518       m_device,
19519       static_cast<VkSamplerYcbcrConversion>( ycbcrConversion ),
19520       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
19521   }
19522 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
19523 
19524   //=== VK_KHR_bind_memory2 ===
19525 
19526   // wrapper function for command vkBindBufferMemory2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindBufferMemory2KHR.html
19527   template <typename Dispatch>
bindBufferMemory2KHR(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo * pBindInfos,Dispatch const & d) const19528   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindBufferMemory2KHR( uint32_t                                           bindInfoCount,
19529                                                                               const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo * pBindInfos,
19530                                                                               Dispatch const &                                   d ) const VULKAN_HPP_NOEXCEPT
19531   {
19532     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19533     return static_cast<Result>(
19534       d.vkBindBufferMemory2KHR( static_cast<VkDevice>( m_device ), bindInfoCount, reinterpret_cast<const VkBindBufferMemoryInfo *>( pBindInfos ) ) );
19535   }
19536 
19537 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19538   // wrapper function for command vkBindBufferMemory2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindBufferMemory2KHR.html
19539   template <typename Dispatch>
19540   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
bindBufferMemory2KHR(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos,Dispatch const & d) const19541     Device::bindBufferMemory2KHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindBufferMemoryInfo> const & bindInfos,
19542                                   Dispatch const &                                                                           d ) const
19543   {
19544     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19545 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19546     VULKAN_HPP_ASSERT( d.vkBindBufferMemory2KHR && "Function <vkBindBufferMemory2KHR> requires <VK_KHR_bind_memory2> or <VK_VERSION_1_1>" );
19547 #  endif
19548 
19549     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
19550       d.vkBindBufferMemory2KHR( m_device, bindInfos.size(), reinterpret_cast<const VkBindBufferMemoryInfo *>( bindInfos.data() ) ) );
19551     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindBufferMemory2KHR" );
19552 
19553     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
19554   }
19555 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
19556 
19557   // wrapper function for command vkBindImageMemory2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindImageMemory2KHR.html
19558   template <typename Dispatch>
bindImageMemory2KHR(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo * pBindInfos,Dispatch const & d) const19559   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindImageMemory2KHR( uint32_t                                          bindInfoCount,
19560                                                                              const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo * pBindInfos,
19561                                                                              Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
19562   {
19563     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19564     return static_cast<Result>(
19565       d.vkBindImageMemory2KHR( static_cast<VkDevice>( m_device ), bindInfoCount, reinterpret_cast<const VkBindImageMemoryInfo *>( pBindInfos ) ) );
19566   }
19567 
19568 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19569   // wrapper function for command vkBindImageMemory2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindImageMemory2KHR.html
19570   template <typename Dispatch>
19571   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
bindImageMemory2KHR(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos,Dispatch const & d) const19572     Device::bindImageMemory2KHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindImageMemoryInfo> const & bindInfos, Dispatch const & d ) const
19573   {
19574     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19575 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19576     VULKAN_HPP_ASSERT( d.vkBindImageMemory2KHR && "Function <vkBindImageMemory2KHR> requires <VK_KHR_bind_memory2> or <VK_VERSION_1_1>" );
19577 #  endif
19578 
19579     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
19580       d.vkBindImageMemory2KHR( m_device, bindInfos.size(), reinterpret_cast<const VkBindImageMemoryInfo *>( bindInfos.data() ) ) );
19581     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindImageMemory2KHR" );
19582 
19583     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
19584   }
19585 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
19586 
19587   //=== VK_EXT_image_drm_format_modifier ===
19588 
19589   // wrapper function for command vkGetImageDrmFormatModifierPropertiesEXT, see
19590   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageDrmFormatModifierPropertiesEXT.html
19591   template <typename Dispatch>
getImageDrmFormatModifierPropertiesEXT(VULKAN_HPP_NAMESPACE::Image image,VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT * pProperties,Dispatch const & d) const19592   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getImageDrmFormatModifierPropertiesEXT(
19593     VULKAN_HPP_NAMESPACE::Image image, VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT * pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
19594   {
19595     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19596     return static_cast<Result>( d.vkGetImageDrmFormatModifierPropertiesEXT(
19597       static_cast<VkDevice>( m_device ), static_cast<VkImage>( image ), reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT *>( pProperties ) ) );
19598   }
19599 
19600 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19601   // wrapper function for command vkGetImageDrmFormatModifierPropertiesEXT, see
19602   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageDrmFormatModifierPropertiesEXT.html
19603   template <typename Dispatch>
19604   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT>::type
getImageDrmFormatModifierPropertiesEXT(VULKAN_HPP_NAMESPACE::Image image,Dispatch const & d) const19605                        Device::getImageDrmFormatModifierPropertiesEXT( VULKAN_HPP_NAMESPACE::Image image, Dispatch const & d ) const
19606   {
19607     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19608 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19609     VULKAN_HPP_ASSERT( d.vkGetImageDrmFormatModifierPropertiesEXT &&
19610                        "Function <vkGetImageDrmFormatModifierPropertiesEXT> requires <VK_EXT_image_drm_format_modifier>" );
19611 #  endif
19612 
19613     VULKAN_HPP_NAMESPACE::ImageDrmFormatModifierPropertiesEXT properties;
19614     VULKAN_HPP_NAMESPACE::Result                              result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetImageDrmFormatModifierPropertiesEXT(
19615       m_device, static_cast<VkImage>( image ), reinterpret_cast<VkImageDrmFormatModifierPropertiesEXT *>( &properties ) ) );
19616     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageDrmFormatModifierPropertiesEXT" );
19617 
19618     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
19619   }
19620 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
19621 
19622   //=== VK_EXT_validation_cache ===
19623 
19624   // wrapper function for command vkCreateValidationCacheEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateValidationCacheEXT.html
19625   template <typename Dispatch>
createValidationCacheEXT(const VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::ValidationCacheEXT * pValidationCache,Dispatch const & d) const19626   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createValidationCacheEXT( const VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT * pCreateInfo,
19627                                                                                   const VULKAN_HPP_NAMESPACE::AllocationCallbacks *          pAllocator,
19628                                                                                   VULKAN_HPP_NAMESPACE::ValidationCacheEXT *                 pValidationCache,
19629                                                                                   Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
19630   {
19631     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19632     return static_cast<Result>( d.vkCreateValidationCacheEXT( static_cast<VkDevice>( m_device ),
19633                                                               reinterpret_cast<const VkValidationCacheCreateInfoEXT *>( pCreateInfo ),
19634                                                               reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
19635                                                               reinterpret_cast<VkValidationCacheEXT *>( pValidationCache ) ) );
19636   }
19637 
19638 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19639   // wrapper function for command vkCreateValidationCacheEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateValidationCacheEXT.html
19640   template <typename Dispatch>
19641   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ValidationCacheEXT>::type
createValidationCacheEXT(const VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const19642                        Device::createValidationCacheEXT( const VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT & createInfo,
19643                                       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>  allocator,
19644                                       Dispatch const &                                           d ) const
19645   {
19646     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19647 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19648     VULKAN_HPP_ASSERT( d.vkCreateValidationCacheEXT && "Function <vkCreateValidationCacheEXT> requires <VK_EXT_validation_cache>" );
19649 #  endif
19650 
19651     VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache;
19652     VULKAN_HPP_NAMESPACE::Result             result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateValidationCacheEXT(
19653       m_device,
19654       reinterpret_cast<const VkValidationCacheCreateInfoEXT *>( &createInfo ),
19655       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
19656       reinterpret_cast<VkValidationCacheEXT *>( &validationCache ) ) );
19657     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createValidationCacheEXT" );
19658 
19659     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( validationCache ) );
19660   }
19661 
19662 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
19663   // wrapper function for command vkCreateValidationCacheEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateValidationCacheEXT.html
19664   template <typename Dispatch>
19665   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::ValidationCacheEXT, Dispatch>>::type
createValidationCacheEXTUnique(const VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const19666                        Device::createValidationCacheEXTUnique( const VULKAN_HPP_NAMESPACE::ValidationCacheCreateInfoEXT & createInfo,
19667                                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>  allocator,
19668                                             Dispatch const &                                           d ) const
19669   {
19670     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19671 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19672     VULKAN_HPP_ASSERT( d.vkCreateValidationCacheEXT && "Function <vkCreateValidationCacheEXT> requires <VK_EXT_validation_cache>" );
19673 #    endif
19674 
19675     VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache;
19676     VULKAN_HPP_NAMESPACE::Result             result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateValidationCacheEXT(
19677       m_device,
19678       reinterpret_cast<const VkValidationCacheCreateInfoEXT *>( &createInfo ),
19679       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
19680       reinterpret_cast<VkValidationCacheEXT *>( &validationCache ) ) );
19681     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createValidationCacheEXTUnique" );
19682 
19683     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
19684       result,
19685       UniqueHandle<VULKAN_HPP_NAMESPACE::ValidationCacheEXT, Dispatch>( validationCache, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
19686   }
19687 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
19688 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
19689 
19690   // wrapper function for command vkDestroyValidationCacheEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyValidationCacheEXT.html
19691   template <typename Dispatch>
destroyValidationCacheEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const19692   VULKAN_HPP_INLINE void Device::destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT          validationCache,
19693                                                             const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
19694                                                             Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
19695   {
19696     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19697     d.vkDestroyValidationCacheEXT(
19698       static_cast<VkDevice>( m_device ), static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
19699   }
19700 
19701 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19702   // wrapper function for command vkDestroyValidationCacheEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyValidationCacheEXT.html
19703   template <typename Dispatch>
destroyValidationCacheEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const19704   VULKAN_HPP_INLINE void Device::destroyValidationCacheEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT                  validationCache,
19705                                                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
19706                                                             Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
19707   {
19708     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19709 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19710     VULKAN_HPP_ASSERT( d.vkDestroyValidationCacheEXT && "Function <vkDestroyValidationCacheEXT> requires <VK_EXT_validation_cache>" );
19711 #  endif
19712 
19713     d.vkDestroyValidationCacheEXT(
19714       m_device,
19715       static_cast<VkValidationCacheEXT>( validationCache ),
19716       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
19717   }
19718 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
19719 
19720   // wrapper function for command vkDestroyValidationCacheEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyValidationCacheEXT.html
19721   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const19722   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT          validationCache,
19723                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
19724                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
19725   {
19726     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19727     d.vkDestroyValidationCacheEXT(
19728       static_cast<VkDevice>( m_device ), static_cast<VkValidationCacheEXT>( validationCache ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
19729   }
19730 
19731 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19732   // wrapper function for command vkDestroyValidationCacheEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyValidationCacheEXT.html
19733   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const19734   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ValidationCacheEXT                  validationCache,
19735                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
19736                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
19737   {
19738     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19739 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19740     VULKAN_HPP_ASSERT( d.vkDestroyValidationCacheEXT && "Function <vkDestroyValidationCacheEXT> requires <VK_EXT_validation_cache>" );
19741 #  endif
19742 
19743     d.vkDestroyValidationCacheEXT(
19744       m_device,
19745       static_cast<VkValidationCacheEXT>( validationCache ),
19746       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
19747   }
19748 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
19749 
19750   // wrapper function for command vkMergeValidationCachesEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkMergeValidationCachesEXT.html
19751   template <typename Dispatch>
mergeValidationCachesEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache,uint32_t srcCacheCount,const VULKAN_HPP_NAMESPACE::ValidationCacheEXT * pSrcCaches,Dispatch const & d) const19752   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT         dstCache,
19753                                                                                   uint32_t                                         srcCacheCount,
19754                                                                                   const VULKAN_HPP_NAMESPACE::ValidationCacheEXT * pSrcCaches,
19755                                                                                   Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
19756   {
19757     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19758     return static_cast<Result>( d.vkMergeValidationCachesEXT( static_cast<VkDevice>( m_device ),
19759                                                               static_cast<VkValidationCacheEXT>( dstCache ),
19760                                                               srcCacheCount,
19761                                                               reinterpret_cast<const VkValidationCacheEXT *>( pSrcCaches ) ) );
19762   }
19763 
19764 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19765   // wrapper function for command vkMergeValidationCachesEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkMergeValidationCachesEXT.html
19766   template <typename Dispatch>
19767   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
mergeValidationCachesEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT dstCache,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ValidationCacheEXT> const & srcCaches,Dispatch const & d) const19768                                           Device::mergeValidationCachesEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT                                                 dstCache,
19769                                       VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ValidationCacheEXT> const & srcCaches,
19770                                       Dispatch const &                                                                         d ) const
19771   {
19772     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19773 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19774     VULKAN_HPP_ASSERT( d.vkMergeValidationCachesEXT && "Function <vkMergeValidationCachesEXT> requires <VK_EXT_validation_cache>" );
19775 #  endif
19776 
19777     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkMergeValidationCachesEXT(
19778       m_device, static_cast<VkValidationCacheEXT>( dstCache ), srcCaches.size(), reinterpret_cast<const VkValidationCacheEXT *>( srcCaches.data() ) ) );
19779     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mergeValidationCachesEXT" );
19780 
19781     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
19782   }
19783 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
19784 
19785   // wrapper function for command vkGetValidationCacheDataEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetValidationCacheDataEXT.html
19786   template <typename Dispatch>
getValidationCacheDataEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,size_t * pDataSize,void * pData,Dispatch const & d) const19787   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,
19788                                                                                    size_t *                                 pDataSize,
19789                                                                                    void *                                   pData,
19790                                                                                    Dispatch const &                         d ) const VULKAN_HPP_NOEXCEPT
19791   {
19792     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19793     return static_cast<Result>(
19794       d.vkGetValidationCacheDataEXT( static_cast<VkDevice>( m_device ), static_cast<VkValidationCacheEXT>( validationCache ), pDataSize, pData ) );
19795   }
19796 
19797 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19798   // wrapper function for command vkGetValidationCacheDataEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetValidationCacheDataEXT.html
19799   template <typename Uint8_tAllocator,
19800             typename Dispatch,
19801             typename std::enable_if<std::is_same<typename Uint8_tAllocator::value_type, uint8_t>::value, int>::type>
19802   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type
getValidationCacheDataEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,Dispatch const & d) const19803                        Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Dispatch const & d ) const
19804   {
19805     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19806 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19807     VULKAN_HPP_ASSERT( d.vkGetValidationCacheDataEXT && "Function <vkGetValidationCacheDataEXT> requires <VK_EXT_validation_cache>" );
19808 #  endif
19809 
19810     std::vector<uint8_t, Uint8_tAllocator> data;
19811     size_t                                 dataSize;
19812     VULKAN_HPP_NAMESPACE::Result           result;
19813     do
19814     {
19815       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
19816         d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, nullptr ) );
19817       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
19818       {
19819         data.resize( dataSize );
19820         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
19821           d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, reinterpret_cast<void *>( data.data() ) ) );
19822       }
19823     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
19824     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getValidationCacheDataEXT" );
19825     VULKAN_HPP_ASSERT( dataSize <= data.size() );
19826     if ( dataSize < data.size() )
19827     {
19828       data.resize( dataSize );
19829     }
19830     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) );
19831   }
19832 
19833   // wrapper function for command vkGetValidationCacheDataEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetValidationCacheDataEXT.html
19834   template <typename Uint8_tAllocator,
19835             typename Dispatch,
19836             typename std::enable_if<std::is_same<typename Uint8_tAllocator::value_type, uint8_t>::value, int>::type>
19837   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type
getValidationCacheDataEXT(VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache,Uint8_tAllocator & uint8_tAllocator,Dispatch const & d) const19838     Device::getValidationCacheDataEXT( VULKAN_HPP_NAMESPACE::ValidationCacheEXT validationCache, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d ) const
19839   {
19840     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19841 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19842     VULKAN_HPP_ASSERT( d.vkGetValidationCacheDataEXT && "Function <vkGetValidationCacheDataEXT> requires <VK_EXT_validation_cache>" );
19843 #  endif
19844 
19845     std::vector<uint8_t, Uint8_tAllocator> data( uint8_tAllocator );
19846     size_t                                 dataSize;
19847     VULKAN_HPP_NAMESPACE::Result           result;
19848     do
19849     {
19850       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
19851         d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, nullptr ) );
19852       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
19853       {
19854         data.resize( dataSize );
19855         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
19856           d.vkGetValidationCacheDataEXT( m_device, static_cast<VkValidationCacheEXT>( validationCache ), &dataSize, reinterpret_cast<void *>( data.data() ) ) );
19857       }
19858     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
19859     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getValidationCacheDataEXT" );
19860     VULKAN_HPP_ASSERT( dataSize <= data.size() );
19861     if ( dataSize < data.size() )
19862     {
19863       data.resize( dataSize );
19864     }
19865     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) );
19866   }
19867 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
19868 
19869   //=== VK_NV_shading_rate_image ===
19870 
19871   // wrapper function for command vkCmdBindShadingRateImageNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindShadingRateImageNV.html
19872   template <typename Dispatch>
bindShadingRateImageNV(VULKAN_HPP_NAMESPACE::ImageView imageView,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,Dispatch const & d) const19873   VULKAN_HPP_INLINE void CommandBuffer::bindShadingRateImageNV( VULKAN_HPP_NAMESPACE::ImageView   imageView,
19874                                                                 VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,
19875                                                                 Dispatch const &                  d ) const VULKAN_HPP_NOEXCEPT
19876   {
19877     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19878     d.vkCmdBindShadingRateImageNV(
19879       static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkImageView>( imageView ), static_cast<VkImageLayout>( imageLayout ) );
19880   }
19881 
19882   // wrapper function for command vkCmdSetViewportShadingRatePaletteNV, see
19883   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetViewportShadingRatePaletteNV.html
19884   template <typename Dispatch>
setViewportShadingRatePaletteNV(uint32_t firstViewport,uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes,Dispatch const & d) const19885   VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV( uint32_t                                           firstViewport,
19886                                                                          uint32_t                                           viewportCount,
19887                                                                          const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV * pShadingRatePalettes,
19888                                                                          Dispatch const &                                   d ) const VULKAN_HPP_NOEXCEPT
19889   {
19890     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19891     d.vkCmdSetViewportShadingRatePaletteNV(
19892       static_cast<VkCommandBuffer>( m_commandBuffer ), firstViewport, viewportCount, reinterpret_cast<const VkShadingRatePaletteNV *>( pShadingRatePalettes ) );
19893   }
19894 
19895 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19896   // wrapper function for command vkCmdSetViewportShadingRatePaletteNV, see
19897   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetViewportShadingRatePaletteNV.html
19898   template <typename Dispatch>
setViewportShadingRatePaletteNV(uint32_t firstViewport,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes,Dispatch const & d) const19899   VULKAN_HPP_INLINE void CommandBuffer::setViewportShadingRatePaletteNV(
19900     uint32_t                                                                                   firstViewport,
19901     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShadingRatePaletteNV> const & shadingRatePalettes,
19902     Dispatch const &                                                                           d ) const VULKAN_HPP_NOEXCEPT
19903   {
19904     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19905 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19906     VULKAN_HPP_ASSERT( d.vkCmdSetViewportShadingRatePaletteNV && "Function <vkCmdSetViewportShadingRatePaletteNV> requires <VK_NV_shading_rate_image>" );
19907 #  endif
19908 
19909     d.vkCmdSetViewportShadingRatePaletteNV(
19910       m_commandBuffer, firstViewport, shadingRatePalettes.size(), reinterpret_cast<const VkShadingRatePaletteNV *>( shadingRatePalettes.data() ) );
19911   }
19912 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
19913 
19914   // wrapper function for command vkCmdSetCoarseSampleOrderNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetCoarseSampleOrderNV.html
19915   template <typename Dispatch>
setCoarseSampleOrderNV(VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType,uint32_t customSampleOrderCount,const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders,Dispatch const & d) const19916   VULKAN_HPP_INLINE void CommandBuffer::setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV           sampleOrderType,
19917                                                                 uint32_t                                                customSampleOrderCount,
19918                                                                 const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV * pCustomSampleOrders,
19919                                                                 Dispatch const &                                        d ) const VULKAN_HPP_NOEXCEPT
19920   {
19921     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19922     d.vkCmdSetCoarseSampleOrderNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
19923                                    static_cast<VkCoarseSampleOrderTypeNV>( sampleOrderType ),
19924                                    customSampleOrderCount,
19925                                    reinterpret_cast<const VkCoarseSampleOrderCustomNV *>( pCustomSampleOrders ) );
19926   }
19927 
19928 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19929   // wrapper function for command vkCmdSetCoarseSampleOrderNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetCoarseSampleOrderNV.html
19930   template <typename Dispatch>
19931   VULKAN_HPP_INLINE void
setCoarseSampleOrderNV(VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV sampleOrderType,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders,Dispatch const & d) const19932     CommandBuffer::setCoarseSampleOrderNV( VULKAN_HPP_NAMESPACE::CoarseSampleOrderTypeNV                                                   sampleOrderType,
19933                                            VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CoarseSampleOrderCustomNV> const & customSampleOrders,
19934                                            Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
19935   {
19936     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19937 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19938     VULKAN_HPP_ASSERT( d.vkCmdSetCoarseSampleOrderNV && "Function <vkCmdSetCoarseSampleOrderNV> requires <VK_NV_shading_rate_image>" );
19939 #  endif
19940 
19941     d.vkCmdSetCoarseSampleOrderNV( m_commandBuffer,
19942                                    static_cast<VkCoarseSampleOrderTypeNV>( sampleOrderType ),
19943                                    customSampleOrders.size(),
19944                                    reinterpret_cast<const VkCoarseSampleOrderCustomNV *>( customSampleOrders.data() ) );
19945   }
19946 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
19947 
19948   //=== VK_NV_ray_tracing ===
19949 
19950   // wrapper function for command vkCreateAccelerationStructureNV, see
19951   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateAccelerationStructureNV.html
19952   template <typename Dispatch>
19953   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
createAccelerationStructureNV(const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructure,Dispatch const & d) const19954     Device::createAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV * pCreateInfo,
19955                                            const VULKAN_HPP_NAMESPACE::AllocationCallbacks *               pAllocator,
19956                                            VULKAN_HPP_NAMESPACE::AccelerationStructureNV *                 pAccelerationStructure,
19957                                            Dispatch const &                                                d ) const VULKAN_HPP_NOEXCEPT
19958   {
19959     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19960     return static_cast<Result>( d.vkCreateAccelerationStructureNV( static_cast<VkDevice>( m_device ),
19961                                                                    reinterpret_cast<const VkAccelerationStructureCreateInfoNV *>( pCreateInfo ),
19962                                                                    reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
19963                                                                    reinterpret_cast<VkAccelerationStructureNV *>( pAccelerationStructure ) ) );
19964   }
19965 
19966 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
19967   // wrapper function for command vkCreateAccelerationStructureNV, see
19968   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateAccelerationStructureNV.html
19969   template <typename Dispatch>
19970   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::AccelerationStructureNV>::type
createAccelerationStructureNV(const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const19971                        Device::createAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV & createInfo,
19972                                            Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>       allocator,
19973                                            Dispatch const &                                                d ) const
19974   {
19975     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
19976 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
19977     VULKAN_HPP_ASSERT( d.vkCreateAccelerationStructureNV && "Function <vkCreateAccelerationStructureNV> requires <VK_NV_ray_tracing>" );
19978 #  endif
19979 
19980     VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure;
19981     VULKAN_HPP_NAMESPACE::Result                  result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateAccelerationStructureNV(
19982       m_device,
19983       reinterpret_cast<const VkAccelerationStructureCreateInfoNV *>( &createInfo ),
19984       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
19985       reinterpret_cast<VkAccelerationStructureNV *>( &accelerationStructure ) ) );
19986     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureNV" );
19987 
19988     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( accelerationStructure ) );
19989   }
19990 
19991 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
19992   // wrapper function for command vkCreateAccelerationStructureNV, see
19993   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateAccelerationStructureNV.html
19994   template <typename Dispatch>
19995   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::AccelerationStructureNV, Dispatch>>::type
createAccelerationStructureNVUnique(const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const19996                        Device::createAccelerationStructureNVUnique( const VULKAN_HPP_NAMESPACE::AccelerationStructureCreateInfoNV & createInfo,
19997                                                  Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>       allocator,
19998                                                  Dispatch const &                                                d ) const
19999   {
20000     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20001 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20002     VULKAN_HPP_ASSERT( d.vkCreateAccelerationStructureNV && "Function <vkCreateAccelerationStructureNV> requires <VK_NV_ray_tracing>" );
20003 #    endif
20004 
20005     VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure;
20006     VULKAN_HPP_NAMESPACE::Result                  result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateAccelerationStructureNV(
20007       m_device,
20008       reinterpret_cast<const VkAccelerationStructureCreateInfoNV *>( &createInfo ),
20009       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
20010       reinterpret_cast<VkAccelerationStructureNV *>( &accelerationStructure ) ) );
20011     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createAccelerationStructureNVUnique" );
20012 
20013     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result,
20014                                                                 UniqueHandle<VULKAN_HPP_NAMESPACE::AccelerationStructureNV, Dispatch>(
20015                                                                   accelerationStructure, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
20016   }
20017 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
20018 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
20019 
20020   // wrapper function for command vkDestroyAccelerationStructureNV, see
20021   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyAccelerationStructureNV.html
20022   template <typename Dispatch>
destroyAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const20023   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV     accelerationStructure,
20024                                                                  const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
20025                                                                  Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
20026   {
20027     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20028     d.vkDestroyAccelerationStructureNV( static_cast<VkDevice>( m_device ),
20029                                         static_cast<VkAccelerationStructureNV>( accelerationStructure ),
20030                                         reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
20031   }
20032 
20033 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20034   // wrapper function for command vkDestroyAccelerationStructureNV, see
20035   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyAccelerationStructureNV.html
20036   template <typename Dispatch>
destroyAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const20037   VULKAN_HPP_INLINE void Device::destroyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV             accelerationStructure,
20038                                                                  Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
20039                                                                  Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
20040   {
20041     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20042 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20043     VULKAN_HPP_ASSERT( d.vkDestroyAccelerationStructureNV && "Function <vkDestroyAccelerationStructureNV> requires <VK_NV_ray_tracing>" );
20044 #  endif
20045 
20046     d.vkDestroyAccelerationStructureNV(
20047       m_device,
20048       static_cast<VkAccelerationStructureNV>( accelerationStructure ),
20049       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
20050   }
20051 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
20052 
20053   // wrapper function for command vkDestroyAccelerationStructureNV, see
20054   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyAccelerationStructureNV.html
20055   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const20056   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureNV     accelerationStructure,
20057                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
20058                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
20059   {
20060     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20061     d.vkDestroyAccelerationStructureNV( static_cast<VkDevice>( m_device ),
20062                                         static_cast<VkAccelerationStructureNV>( accelerationStructure ),
20063                                         reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
20064   }
20065 
20066 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20067   // wrapper function for command vkDestroyAccelerationStructureNV, see
20068   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyAccelerationStructureNV.html
20069   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const20070   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::AccelerationStructureNV             accelerationStructure,
20071                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
20072                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
20073   {
20074     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20075 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20076     VULKAN_HPP_ASSERT( d.vkDestroyAccelerationStructureNV && "Function <vkDestroyAccelerationStructureNV> requires <VK_NV_ray_tracing>" );
20077 #  endif
20078 
20079     d.vkDestroyAccelerationStructureNV(
20080       m_device,
20081       static_cast<VkAccelerationStructureNV>( accelerationStructure ),
20082       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
20083   }
20084 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
20085 
20086   // wrapper function for command vkGetAccelerationStructureMemoryRequirementsNV, see
20087   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureMemoryRequirementsNV.html
20088   template <typename Dispatch>
20089   VULKAN_HPP_INLINE void
getAccelerationStructureMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR * pMemoryRequirements,Dispatch const & d) const20090     Device::getAccelerationStructureMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV * pInfo,
20091                                                           VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR *                              pMemoryRequirements,
20092                                                           Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
20093   {
20094     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20095     d.vkGetAccelerationStructureMemoryRequirementsNV( static_cast<VkDevice>( m_device ),
20096                                                       reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>( pInfo ),
20097                                                       reinterpret_cast<VkMemoryRequirements2KHR *>( pMemoryRequirements ) );
20098   }
20099 
20100 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20101   // wrapper function for command vkGetAccelerationStructureMemoryRequirementsNV, see
20102   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureMemoryRequirementsNV.html
20103   template <typename Dispatch>
20104   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR
getAccelerationStructureMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & info,Dispatch const & d) const20105     Device::getAccelerationStructureMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & info,
20106                                                           Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
20107   {
20108     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20109 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20110     VULKAN_HPP_ASSERT( d.vkGetAccelerationStructureMemoryRequirementsNV &&
20111                        "Function <vkGetAccelerationStructureMemoryRequirementsNV> requires <VK_NV_ray_tracing>" );
20112 #  endif
20113 
20114     VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR memoryRequirements;
20115     d.vkGetAccelerationStructureMemoryRequirementsNV( m_device,
20116                                                       reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>( &info ),
20117                                                       reinterpret_cast<VkMemoryRequirements2KHR *>( &memoryRequirements ) );
20118 
20119     return memoryRequirements;
20120   }
20121 
20122   // wrapper function for command vkGetAccelerationStructureMemoryRequirementsNV, see
20123   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureMemoryRequirementsNV.html
20124   template <typename X, typename Y, typename... Z, typename Dispatch>
20125   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getAccelerationStructureMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & info,Dispatch const & d) const20126     Device::getAccelerationStructureMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureMemoryRequirementsInfoNV & info,
20127                                                           Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
20128   {
20129     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20130 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20131     VULKAN_HPP_ASSERT( d.vkGetAccelerationStructureMemoryRequirementsNV &&
20132                        "Function <vkGetAccelerationStructureMemoryRequirementsNV> requires <VK_NV_ray_tracing>" );
20133 #  endif
20134 
20135     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
20136     VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR &   memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2KHR>();
20137     d.vkGetAccelerationStructureMemoryRequirementsNV( m_device,
20138                                                       reinterpret_cast<const VkAccelerationStructureMemoryRequirementsInfoNV *>( &info ),
20139                                                       reinterpret_cast<VkMemoryRequirements2KHR *>( &memoryRequirements ) );
20140 
20141     return structureChain;
20142   }
20143 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
20144 
20145   // wrapper function for command vkBindAccelerationStructureMemoryNV, see
20146   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindAccelerationStructureMemoryNV.html
20147   template <typename Dispatch>
bindAccelerationStructureMemoryNV(uint32_t bindInfoCount,const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV * pBindInfos,Dispatch const & d) const20148   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindAccelerationStructureMemoryNV(
20149     uint32_t bindInfoCount, const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV * pBindInfos, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
20150   {
20151     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20152     return static_cast<Result>( d.vkBindAccelerationStructureMemoryNV(
20153       static_cast<VkDevice>( m_device ), bindInfoCount, reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNV *>( pBindInfos ) ) );
20154   }
20155 
20156 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20157   // wrapper function for command vkBindAccelerationStructureMemoryNV, see
20158   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindAccelerationStructureMemoryNV.html
20159   template <typename Dispatch>
bindAccelerationStructureMemoryNV(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV> const & bindInfos,Dispatch const & d) const20160   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::bindAccelerationStructureMemoryNV(
20161     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::BindAccelerationStructureMemoryInfoNV> const & bindInfos, Dispatch const & d ) const
20162   {
20163     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20164 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20165     VULKAN_HPP_ASSERT( d.vkBindAccelerationStructureMemoryNV && "Function <vkBindAccelerationStructureMemoryNV> requires <VK_NV_ray_tracing>" );
20166 #  endif
20167 
20168     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkBindAccelerationStructureMemoryNV(
20169       m_device, bindInfos.size(), reinterpret_cast<const VkBindAccelerationStructureMemoryInfoNV *>( bindInfos.data() ) ) );
20170     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindAccelerationStructureMemoryNV" );
20171 
20172     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
20173   }
20174 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
20175 
20176   // wrapper function for command vkCmdBuildAccelerationStructureNV, see
20177   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBuildAccelerationStructureNV.html
20178   template <typename Dispatch>
buildAccelerationStructureNV(const VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV * pInfo,VULKAN_HPP_NAMESPACE::Buffer instanceData,VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset,VULKAN_HPP_NAMESPACE::Bool32 update,VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst,VULKAN_HPP_NAMESPACE::AccelerationStructureNV src,VULKAN_HPP_NAMESPACE::Buffer scratch,VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset,Dispatch const & d) const20179   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV * pInfo,
20180                                                                       VULKAN_HPP_NAMESPACE::Buffer                              instanceData,
20181                                                                       VULKAN_HPP_NAMESPACE::DeviceSize                          instanceOffset,
20182                                                                       VULKAN_HPP_NAMESPACE::Bool32                              update,
20183                                                                       VULKAN_HPP_NAMESPACE::AccelerationStructureNV             dst,
20184                                                                       VULKAN_HPP_NAMESPACE::AccelerationStructureNV             src,
20185                                                                       VULKAN_HPP_NAMESPACE::Buffer                              scratch,
20186                                                                       VULKAN_HPP_NAMESPACE::DeviceSize                          scratchOffset,
20187                                                                       Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
20188   {
20189     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20190     d.vkCmdBuildAccelerationStructureNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
20191                                          reinterpret_cast<const VkAccelerationStructureInfoNV *>( pInfo ),
20192                                          static_cast<VkBuffer>( instanceData ),
20193                                          static_cast<VkDeviceSize>( instanceOffset ),
20194                                          static_cast<VkBool32>( update ),
20195                                          static_cast<VkAccelerationStructureNV>( dst ),
20196                                          static_cast<VkAccelerationStructureNV>( src ),
20197                                          static_cast<VkBuffer>( scratch ),
20198                                          static_cast<VkDeviceSize>( scratchOffset ) );
20199   }
20200 
20201 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20202   // wrapper function for command vkCmdBuildAccelerationStructureNV, see
20203   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBuildAccelerationStructureNV.html
20204   template <typename Dispatch>
buildAccelerationStructureNV(const VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV & info,VULKAN_HPP_NAMESPACE::Buffer instanceData,VULKAN_HPP_NAMESPACE::DeviceSize instanceOffset,VULKAN_HPP_NAMESPACE::Bool32 update,VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst,VULKAN_HPP_NAMESPACE::AccelerationStructureNV src,VULKAN_HPP_NAMESPACE::Buffer scratch,VULKAN_HPP_NAMESPACE::DeviceSize scratchOffset,Dispatch const & d) const20205   VULKAN_HPP_INLINE void CommandBuffer::buildAccelerationStructureNV( const VULKAN_HPP_NAMESPACE::AccelerationStructureInfoNV & info,
20206                                                                       VULKAN_HPP_NAMESPACE::Buffer                              instanceData,
20207                                                                       VULKAN_HPP_NAMESPACE::DeviceSize                          instanceOffset,
20208                                                                       VULKAN_HPP_NAMESPACE::Bool32                              update,
20209                                                                       VULKAN_HPP_NAMESPACE::AccelerationStructureNV             dst,
20210                                                                       VULKAN_HPP_NAMESPACE::AccelerationStructureNV             src,
20211                                                                       VULKAN_HPP_NAMESPACE::Buffer                              scratch,
20212                                                                       VULKAN_HPP_NAMESPACE::DeviceSize                          scratchOffset,
20213                                                                       Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
20214   {
20215     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20216 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20217     VULKAN_HPP_ASSERT( d.vkCmdBuildAccelerationStructureNV && "Function <vkCmdBuildAccelerationStructureNV> requires <VK_NV_ray_tracing>" );
20218 #  endif
20219 
20220     d.vkCmdBuildAccelerationStructureNV( m_commandBuffer,
20221                                          reinterpret_cast<const VkAccelerationStructureInfoNV *>( &info ),
20222                                          static_cast<VkBuffer>( instanceData ),
20223                                          static_cast<VkDeviceSize>( instanceOffset ),
20224                                          static_cast<VkBool32>( update ),
20225                                          static_cast<VkAccelerationStructureNV>( dst ),
20226                                          static_cast<VkAccelerationStructureNV>( src ),
20227                                          static_cast<VkBuffer>( scratch ),
20228                                          static_cast<VkDeviceSize>( scratchOffset ) );
20229   }
20230 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
20231 
20232   // wrapper function for command vkCmdCopyAccelerationStructureNV, see
20233   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyAccelerationStructureNV.html
20234   template <typename Dispatch>
copyAccelerationStructureNV(VULKAN_HPP_NAMESPACE::AccelerationStructureNV dst,VULKAN_HPP_NAMESPACE::AccelerationStructureNV src,VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode,Dispatch const & d) const20235   VULKAN_HPP_INLINE void CommandBuffer::copyAccelerationStructureNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV          dst,
20236                                                                      VULKAN_HPP_NAMESPACE::AccelerationStructureNV          src,
20237                                                                      VULKAN_HPP_NAMESPACE::CopyAccelerationStructureModeKHR mode,
20238                                                                      Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
20239   {
20240     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20241     d.vkCmdCopyAccelerationStructureNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
20242                                         static_cast<VkAccelerationStructureNV>( dst ),
20243                                         static_cast<VkAccelerationStructureNV>( src ),
20244                                         static_cast<VkCopyAccelerationStructureModeKHR>( mode ) );
20245   }
20246 
20247   // wrapper function for command vkCmdTraceRaysNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdTraceRaysNV.html
20248   template <typename Dispatch>
traceRaysNV(VULKAN_HPP_NAMESPACE::Buffer raygenShaderBindingTableBuffer,VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderBindingOffset,VULKAN_HPP_NAMESPACE::Buffer missShaderBindingTableBuffer,VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingOffset,VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingStride,VULKAN_HPP_NAMESPACE::Buffer hitShaderBindingTableBuffer,VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingOffset,VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingStride,VULKAN_HPP_NAMESPACE::Buffer callableShaderBindingTableBuffer,VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingOffset,VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingStride,uint32_t width,uint32_t height,uint32_t depth,Dispatch const & d) const20249   VULKAN_HPP_INLINE void CommandBuffer::traceRaysNV( VULKAN_HPP_NAMESPACE::Buffer     raygenShaderBindingTableBuffer,
20250                                                      VULKAN_HPP_NAMESPACE::DeviceSize raygenShaderBindingOffset,
20251                                                      VULKAN_HPP_NAMESPACE::Buffer     missShaderBindingTableBuffer,
20252                                                      VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingOffset,
20253                                                      VULKAN_HPP_NAMESPACE::DeviceSize missShaderBindingStride,
20254                                                      VULKAN_HPP_NAMESPACE::Buffer     hitShaderBindingTableBuffer,
20255                                                      VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingOffset,
20256                                                      VULKAN_HPP_NAMESPACE::DeviceSize hitShaderBindingStride,
20257                                                      VULKAN_HPP_NAMESPACE::Buffer     callableShaderBindingTableBuffer,
20258                                                      VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingOffset,
20259                                                      VULKAN_HPP_NAMESPACE::DeviceSize callableShaderBindingStride,
20260                                                      uint32_t                         width,
20261                                                      uint32_t                         height,
20262                                                      uint32_t                         depth,
20263                                                      Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
20264   {
20265     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20266     d.vkCmdTraceRaysNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
20267                         static_cast<VkBuffer>( raygenShaderBindingTableBuffer ),
20268                         static_cast<VkDeviceSize>( raygenShaderBindingOffset ),
20269                         static_cast<VkBuffer>( missShaderBindingTableBuffer ),
20270                         static_cast<VkDeviceSize>( missShaderBindingOffset ),
20271                         static_cast<VkDeviceSize>( missShaderBindingStride ),
20272                         static_cast<VkBuffer>( hitShaderBindingTableBuffer ),
20273                         static_cast<VkDeviceSize>( hitShaderBindingOffset ),
20274                         static_cast<VkDeviceSize>( hitShaderBindingStride ),
20275                         static_cast<VkBuffer>( callableShaderBindingTableBuffer ),
20276                         static_cast<VkDeviceSize>( callableShaderBindingOffset ),
20277                         static_cast<VkDeviceSize>( callableShaderBindingStride ),
20278                         width,
20279                         height,
20280                         depth );
20281   }
20282 
20283   // wrapper function for command vkCreateRayTracingPipelinesNV, see
20284   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesNV.html
20285   template <typename Dispatch>
createRayTracingPipelinesNV(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,uint32_t createInfoCount,const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV * pCreateInfos,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::Pipeline * pPipelines,Dispatch const & d) const20286   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,
20287                                                                                      uint32_t                            createInfoCount,
20288                                                                                      const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV * pCreateInfos,
20289                                                                                      const VULKAN_HPP_NAMESPACE::AllocationCallbacks *            pAllocator,
20290                                                                                      VULKAN_HPP_NAMESPACE::Pipeline *                             pPipelines,
20291                                                                                      Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
20292   {
20293     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20294     return static_cast<Result>( d.vkCreateRayTracingPipelinesNV( static_cast<VkDevice>( m_device ),
20295                                                                  static_cast<VkPipelineCache>( pipelineCache ),
20296                                                                  createInfoCount,
20297                                                                  reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( pCreateInfos ),
20298                                                                  reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
20299                                                                  reinterpret_cast<VkPipeline *>( pPipelines ) ) );
20300   }
20301 
20302 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20303   // wrapper function for command vkCreateRayTracingPipelinesNV, see
20304   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesNV.html
20305   template <typename PipelineAllocator,
20306             typename Dispatch,
20307             typename std::enable_if<std::is_same<typename PipelineAllocator::value_type, VULKAN_HPP_NAMESPACE::Pipeline>::value, int>::type>
20308   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
createRayTracingPipelinesNV(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const20309                                          Device::createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache                                                                  pipelineCache,
20310                                          VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,
20311                                          Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                            allocator,
20312                                          Dispatch const &                                                                                     d ) const
20313   {
20314     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20315 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20316     VULKAN_HPP_ASSERT( d.vkCreateRayTracingPipelinesNV && "Function <vkCreateRayTracingPipelinesNV> requires <VK_NV_ray_tracing>" );
20317 #  endif
20318 
20319     std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator> pipelines( createInfos.size() );
20320     VULKAN_HPP_NAMESPACE::Result                                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesNV(
20321       m_device,
20322       static_cast<VkPipelineCache>( pipelineCache ),
20323       createInfos.size(),
20324       reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( createInfos.data() ),
20325       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
20326       reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
20327     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
20328                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNV",
20329                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
20330 
20331     return ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>( result, std::move( pipelines ) );
20332   }
20333 
20334   // wrapper function for command vkCreateRayTracingPipelinesNV, see
20335   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesNV.html
20336   template <typename PipelineAllocator,
20337             typename Dispatch,
20338             typename std::enable_if<std::is_same<typename PipelineAllocator::value_type, VULKAN_HPP_NAMESPACE::Pipeline>::value, int>::type>
20339   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>
createRayTracingPipelinesNV(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const20340                                          Device::createRayTracingPipelinesNV( VULKAN_HPP_NAMESPACE::PipelineCache                                                                  pipelineCache,
20341                                          VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,
20342                                          Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                            allocator,
20343                                          PipelineAllocator &                                                                                  pipelineAllocator,
20344                                          Dispatch const &                                                                                     d ) const
20345   {
20346     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20347 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20348     VULKAN_HPP_ASSERT( d.vkCreateRayTracingPipelinesNV && "Function <vkCreateRayTracingPipelinesNV> requires <VK_NV_ray_tracing>" );
20349 #  endif
20350 
20351     std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator> pipelines( createInfos.size(), pipelineAllocator );
20352     VULKAN_HPP_NAMESPACE::Result                                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesNV(
20353       m_device,
20354       static_cast<VkPipelineCache>( pipelineCache ),
20355       createInfos.size(),
20356       reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( createInfos.data() ),
20357       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
20358       reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
20359     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
20360                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNV",
20361                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
20362 
20363     return ResultValue<std::vector<VULKAN_HPP_NAMESPACE::Pipeline, PipelineAllocator>>( result, std::move( pipelines ) );
20364   }
20365 
20366   // wrapper function for command vkCreateRayTracingPipelinesNV, see
20367   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesNV.html
20368   template <typename Dispatch>
20369   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<VULKAN_HPP_NAMESPACE::Pipeline>
createRayTracingPipelineNV(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const20370                                          Device::createRayTracingPipelineNV( VULKAN_HPP_NAMESPACE::PipelineCache                          pipelineCache,
20371                                         const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV & createInfo,
20372                                         Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>    allocator,
20373                                         Dispatch const &                                             d ) const
20374   {
20375     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20376 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20377     VULKAN_HPP_ASSERT( d.vkCreateRayTracingPipelinesNV && "Function <vkCreateRayTracingPipelinesNV> requires <VK_NV_ray_tracing>" );
20378 #  endif
20379 
20380     VULKAN_HPP_NAMESPACE::Pipeline pipeline;
20381     VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesNV(
20382       m_device,
20383       static_cast<VkPipelineCache>( pipelineCache ),
20384       1,
20385       reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( &createInfo ),
20386       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
20387       reinterpret_cast<VkPipeline *>( &pipeline ) ) );
20388     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
20389                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineNV",
20390                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
20391 
20392     return ResultValue<VULKAN_HPP_NAMESPACE::Pipeline>( result, std::move( pipeline ) );
20393   }
20394 
20395 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
20396   // wrapper function for command vkCreateRayTracingPipelinesNV, see
20397   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesNV.html
20398   template <
20399     typename Dispatch,
20400     typename PipelineAllocator,
20401     typename std::enable_if<std::is_same<typename PipelineAllocator::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>::value, int>::type>
20402   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
createRayTracingPipelinesNVUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const20403                                          Device::createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,
20404                                                VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,
20405                                                Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                            allocator,
20406                                                Dispatch const &                                                                                     d ) const
20407   {
20408     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20409 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20410     VULKAN_HPP_ASSERT( d.vkCreateRayTracingPipelinesNV && "Function <vkCreateRayTracingPipelinesNV> requires <VK_NV_ray_tracing>" );
20411 #    endif
20412 
20413     std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
20414     VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesNV(
20415       m_device,
20416       static_cast<VkPipelineCache>( pipelineCache ),
20417       createInfos.size(),
20418       reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( createInfos.data() ),
20419       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
20420       reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
20421     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
20422                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique",
20423                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
20424     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator> uniquePipelines;
20425     uniquePipelines.reserve( createInfos.size() );
20426     detail::ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
20427     for ( auto const & pipeline : pipelines )
20428     {
20429       uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipeline, deleter ) );
20430     }
20431     return ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>( result, std::move( uniquePipelines ) );
20432   }
20433 
20434   // wrapper function for command vkCreateRayTracingPipelinesNV, see
20435   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesNV.html
20436   template <
20437     typename Dispatch,
20438     typename PipelineAllocator,
20439     typename std::enable_if<std::is_same<typename PipelineAllocator::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>::value, int>::type>
20440   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>
createRayTracingPipelinesNVUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,PipelineAllocator & pipelineAllocator,Dispatch const & d) const20441                                          Device::createRayTracingPipelinesNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,
20442                                                VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV> const & createInfos,
20443                                                Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                            allocator,
20444                                                PipelineAllocator & pipelineAllocator,
20445                                                Dispatch const &    d ) const
20446   {
20447     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20448 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20449     VULKAN_HPP_ASSERT( d.vkCreateRayTracingPipelinesNV && "Function <vkCreateRayTracingPipelinesNV> requires <VK_NV_ray_tracing>" );
20450 #    endif
20451 
20452     std::vector<VULKAN_HPP_NAMESPACE::Pipeline> pipelines( createInfos.size() );
20453     VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesNV(
20454       m_device,
20455       static_cast<VkPipelineCache>( pipelineCache ),
20456       createInfos.size(),
20457       reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( createInfos.data() ),
20458       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
20459       reinterpret_cast<VkPipeline *>( pipelines.data() ) ) );
20460     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
20461                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelinesNVUnique",
20462                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
20463     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator> uniquePipelines( pipelineAllocator );
20464     uniquePipelines.reserve( createInfos.size() );
20465     detail::ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
20466     for ( auto const & pipeline : pipelines )
20467     {
20468       uniquePipelines.push_back( UniqueHandle<Pipeline, Dispatch>( pipeline, deleter ) );
20469     }
20470     return ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>, PipelineAllocator>>( result, std::move( uniquePipelines ) );
20471   }
20472 
20473   // wrapper function for command vkCreateRayTracingPipelinesNV, see
20474   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateRayTracingPipelinesNV.html
20475   template <typename Dispatch>
20476   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>
createRayTracingPipelineNVUnique(VULKAN_HPP_NAMESPACE::PipelineCache pipelineCache,const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const20477                                          Device::createRayTracingPipelineNVUnique( VULKAN_HPP_NAMESPACE::PipelineCache                          pipelineCache,
20478                                               const VULKAN_HPP_NAMESPACE::RayTracingPipelineCreateInfoNV & createInfo,
20479                                               Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>    allocator,
20480                                               Dispatch const &                                             d ) const
20481   {
20482     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20483 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20484     VULKAN_HPP_ASSERT( d.vkCreateRayTracingPipelinesNV && "Function <vkCreateRayTracingPipelinesNV> requires <VK_NV_ray_tracing>" );
20485 #    endif
20486 
20487     VULKAN_HPP_NAMESPACE::Pipeline pipeline;
20488     VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateRayTracingPipelinesNV(
20489       m_device,
20490       static_cast<VkPipelineCache>( pipelineCache ),
20491       1,
20492       reinterpret_cast<const VkRayTracingPipelineCreateInfoNV *>( &createInfo ),
20493       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
20494       reinterpret_cast<VkPipeline *>( &pipeline ) ) );
20495     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
20496                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createRayTracingPipelineNVUnique",
20497                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::ePipelineCompileRequiredEXT } );
20498 
20499     return ResultValue<UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>>(
20500       result, UniqueHandle<VULKAN_HPP_NAMESPACE::Pipeline, Dispatch>( pipeline, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
20501   }
20502 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
20503 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
20504 
20505   // wrapper function for command vkGetRayTracingShaderGroupHandlesNV, see
20506   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingShaderGroupHandlesNV.html
20507   template <typename Dispatch>
getRayTracingShaderGroupHandlesNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,void * pData,Dispatch const & d) const20508   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getRayTracingShaderGroupHandlesNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline,
20509                                                                                            uint32_t                       firstGroup,
20510                                                                                            uint32_t                       groupCount,
20511                                                                                            size_t                         dataSize,
20512                                                                                            void *                         pData,
20513                                                                                            Dispatch const &               d ) const VULKAN_HPP_NOEXCEPT
20514   {
20515     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20516     return static_cast<Result>( d.vkGetRayTracingShaderGroupHandlesNV(
20517       static_cast<VkDevice>( m_device ), static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, dataSize, pData ) );
20518   }
20519 
20520 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20521   // wrapper function for command vkGetRayTracingShaderGroupHandlesNV, see
20522   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingShaderGroupHandlesNV.html
20523   template <typename DataType,
20524             typename DataTypeAllocator,
20525             typename Dispatch,
20526             typename std::enable_if<std::is_same<typename DataTypeAllocator::value_type, DataType>::value, int>::type>
getRayTracingShaderGroupHandlesNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,size_t dataSize,Dispatch const & d) const20527   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DataType, DataTypeAllocator>>::type Device::getRayTracingShaderGroupHandlesNV(
20528     VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, size_t dataSize, Dispatch const & d ) const
20529   {
20530     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20531 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20532     VULKAN_HPP_ASSERT( d.vkGetRayTracingShaderGroupHandlesNV &&
20533                        "Function <vkGetRayTracingShaderGroupHandlesNV> requires <VK_KHR_ray_tracing_pipeline> or <VK_NV_ray_tracing>" );
20534 #  endif
20535 
20536     VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
20537     std::vector<DataType, DataTypeAllocator> data( dataSize / sizeof( DataType ) );
20538     VULKAN_HPP_NAMESPACE::Result             result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetRayTracingShaderGroupHandlesNV(
20539       m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, data.size() * sizeof( DataType ), reinterpret_cast<void *>( data.data() ) ) );
20540     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandlesNV" );
20541 
20542     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) );
20543   }
20544 
20545   // wrapper function for command vkGetRayTracingShaderGroupHandlesNV, see
20546   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRayTracingShaderGroupHandlesNV.html
20547   template <typename DataType, typename Dispatch>
20548   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<DataType>::type
getRayTracingShaderGroupHandleNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t firstGroup,uint32_t groupCount,Dispatch const & d) const20549     Device::getRayTracingShaderGroupHandleNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t firstGroup, uint32_t groupCount, Dispatch const & d ) const
20550   {
20551     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20552 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20553     VULKAN_HPP_ASSERT( d.vkGetRayTracingShaderGroupHandlesNV &&
20554                        "Function <vkGetRayTracingShaderGroupHandlesNV> requires <VK_KHR_ray_tracing_pipeline> or <VK_NV_ray_tracing>" );
20555 #  endif
20556 
20557     DataType                     data;
20558     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetRayTracingShaderGroupHandlesNV(
20559       m_device, static_cast<VkPipeline>( pipeline ), firstGroup, groupCount, sizeof( DataType ), reinterpret_cast<void *>( &data ) ) );
20560     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getRayTracingShaderGroupHandleNV" );
20561 
20562     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) );
20563   }
20564 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
20565 
20566   // wrapper function for command vkGetAccelerationStructureHandleNV, see
20567   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureHandleNV.html
20568   template <typename Dispatch>
getAccelerationStructureHandleNV(VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure,size_t dataSize,void * pData,Dispatch const & d) const20569   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure,
20570                                                                                           size_t                                        dataSize,
20571                                                                                           void *                                        pData,
20572                                                                                           Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
20573   {
20574     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20575     return static_cast<Result>( d.vkGetAccelerationStructureHandleNV(
20576       static_cast<VkDevice>( m_device ), static_cast<VkAccelerationStructureNV>( accelerationStructure ), dataSize, pData ) );
20577   }
20578 
20579 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20580   // wrapper function for command vkGetAccelerationStructureHandleNV, see
20581   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureHandleNV.html
20582   template <typename DataType,
20583             typename DataTypeAllocator,
20584             typename Dispatch,
20585             typename std::enable_if<std::is_same<typename DataTypeAllocator::value_type, DataType>::value, int>::type>
20586   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DataType, DataTypeAllocator>>::type
getAccelerationStructureHandleNV(VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure,size_t dataSize,Dispatch const & d) const20587     Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, size_t dataSize, Dispatch const & d ) const
20588   {
20589     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20590 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20591     VULKAN_HPP_ASSERT( d.vkGetAccelerationStructureHandleNV && "Function <vkGetAccelerationStructureHandleNV> requires <VK_NV_ray_tracing>" );
20592 #  endif
20593 
20594     VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
20595     std::vector<DataType, DataTypeAllocator> data( dataSize / sizeof( DataType ) );
20596     VULKAN_HPP_NAMESPACE::Result             result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetAccelerationStructureHandleNV(
20597       m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), data.size() * sizeof( DataType ), reinterpret_cast<void *>( data.data() ) ) );
20598     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureHandleNV" );
20599 
20600     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) );
20601   }
20602 
20603   // wrapper function for command vkGetAccelerationStructureHandleNV, see
20604   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureHandleNV.html
20605   template <typename DataType, typename Dispatch>
20606   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<DataType>::type
getAccelerationStructureHandleNV(VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure,Dispatch const & d) const20607                        Device::getAccelerationStructureHandleNV( VULKAN_HPP_NAMESPACE::AccelerationStructureNV accelerationStructure, Dispatch const & d ) const
20608   {
20609     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20610 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20611     VULKAN_HPP_ASSERT( d.vkGetAccelerationStructureHandleNV && "Function <vkGetAccelerationStructureHandleNV> requires <VK_NV_ray_tracing>" );
20612 #  endif
20613 
20614     DataType                     data;
20615     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetAccelerationStructureHandleNV(
20616       m_device, static_cast<VkAccelerationStructureNV>( accelerationStructure ), sizeof( DataType ), reinterpret_cast<void *>( &data ) ) );
20617     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureHandleNV" );
20618 
20619     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) );
20620   }
20621 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
20622 
20623   // wrapper function for command vkCmdWriteAccelerationStructuresPropertiesNV, see
20624   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWriteAccelerationStructuresPropertiesNV.html
20625   template <typename Dispatch>
writeAccelerationStructuresPropertiesNV(uint32_t accelerationStructureCount,const VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,Dispatch const & d) const20626   VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV( uint32_t accelerationStructureCount,
20627                                                                                  const VULKAN_HPP_NAMESPACE::AccelerationStructureNV * pAccelerationStructures,
20628                                                                                  VULKAN_HPP_NAMESPACE::QueryType                       queryType,
20629                                                                                  VULKAN_HPP_NAMESPACE::QueryPool                       queryPool,
20630                                                                                  uint32_t                                              firstQuery,
20631                                                                                  Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
20632   {
20633     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20634     d.vkCmdWriteAccelerationStructuresPropertiesNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
20635                                                     accelerationStructureCount,
20636                                                     reinterpret_cast<const VkAccelerationStructureNV *>( pAccelerationStructures ),
20637                                                     static_cast<VkQueryType>( queryType ),
20638                                                     static_cast<VkQueryPool>( queryPool ),
20639                                                     firstQuery );
20640   }
20641 
20642 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20643   // wrapper function for command vkCmdWriteAccelerationStructuresPropertiesNV, see
20644   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWriteAccelerationStructuresPropertiesNV.html
20645   template <typename Dispatch>
writeAccelerationStructuresPropertiesNV(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureNV> const & accelerationStructures,VULKAN_HPP_NAMESPACE::QueryType queryType,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,Dispatch const & d) const20646   VULKAN_HPP_INLINE void CommandBuffer::writeAccelerationStructuresPropertiesNV(
20647     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::AccelerationStructureNV> const & accelerationStructures,
20648     VULKAN_HPP_NAMESPACE::QueryType                                                               queryType,
20649     VULKAN_HPP_NAMESPACE::QueryPool                                                               queryPool,
20650     uint32_t                                                                                      firstQuery,
20651     Dispatch const &                                                                              d ) const VULKAN_HPP_NOEXCEPT
20652   {
20653     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20654 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20655     VULKAN_HPP_ASSERT( d.vkCmdWriteAccelerationStructuresPropertiesNV &&
20656                        "Function <vkCmdWriteAccelerationStructuresPropertiesNV> requires <VK_NV_ray_tracing>" );
20657 #  endif
20658 
20659     d.vkCmdWriteAccelerationStructuresPropertiesNV( m_commandBuffer,
20660                                                     accelerationStructures.size(),
20661                                                     reinterpret_cast<const VkAccelerationStructureNV *>( accelerationStructures.data() ),
20662                                                     static_cast<VkQueryType>( queryType ),
20663                                                     static_cast<VkQueryPool>( queryPool ),
20664                                                     firstQuery );
20665   }
20666 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
20667 
20668 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
20669   // wrapper function for command vkCompileDeferredNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCompileDeferredNV.html
20670   template <typename Dispatch>
compileDeferredNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t shader,Dispatch const & d) const20671   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline,
20672                                                                            uint32_t                       shader,
20673                                                                            Dispatch const &               d ) const VULKAN_HPP_NOEXCEPT
20674   {
20675     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20676     return static_cast<Result>( d.vkCompileDeferredNV( static_cast<VkDevice>( m_device ), static_cast<VkPipeline>( pipeline ), shader ) );
20677   }
20678 #else
20679   // wrapper function for command vkCompileDeferredNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCompileDeferredNV.html
20680   template <typename Dispatch>
20681   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
compileDeferredNV(VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t shader,Dispatch const & d) const20682                                           Device::compileDeferredNV( VULKAN_HPP_NAMESPACE::Pipeline pipeline, uint32_t shader, Dispatch const & d ) const
20683   {
20684     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20685 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20686     VULKAN_HPP_ASSERT( d.vkCompileDeferredNV && "Function <vkCompileDeferredNV> requires <VK_NV_ray_tracing>" );
20687 #  endif
20688 
20689     VULKAN_HPP_NAMESPACE::Result result =
20690       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCompileDeferredNV( m_device, static_cast<VkPipeline>( pipeline ), shader ) );
20691     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::compileDeferredNV" );
20692 
20693     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
20694   }
20695 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
20696 
20697   //=== VK_KHR_maintenance3 ===
20698 
20699   // wrapper function for command vkGetDescriptorSetLayoutSupportKHR, see
20700   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorSetLayoutSupportKHR.html
20701   template <typename Dispatch>
getDescriptorSetLayoutSupportKHR(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo,VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport * pSupport,Dispatch const & d) const20702   VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo * pCreateInfo,
20703                                                                    VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport *          pSupport,
20704                                                                    Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
20705   {
20706     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20707     d.vkGetDescriptorSetLayoutSupportKHR( static_cast<VkDevice>( m_device ),
20708                                           reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( pCreateInfo ),
20709                                           reinterpret_cast<VkDescriptorSetLayoutSupport *>( pSupport ) );
20710   }
20711 
20712 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20713   // wrapper function for command vkGetDescriptorSetLayoutSupportKHR, see
20714   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorSetLayoutSupportKHR.html
20715   template <typename Dispatch>
20716   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport
getDescriptorSetLayoutSupportKHR(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const20717                                          Device::getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo,
20718                                               Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
20719   {
20720     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20721 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20722     VULKAN_HPP_ASSERT( d.vkGetDescriptorSetLayoutSupportKHR &&
20723                        "Function <vkGetDescriptorSetLayoutSupportKHR> requires <VK_KHR_maintenance3> or <VK_VERSION_1_1>" );
20724 #  endif
20725 
20726     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport support;
20727     d.vkGetDescriptorSetLayoutSupportKHR(
20728       m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport *>( &support ) );
20729 
20730     return support;
20731   }
20732 
20733   // wrapper function for command vkGetDescriptorSetLayoutSupportKHR, see
20734   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorSetLayoutSupportKHR.html
20735   template <typename X, typename Y, typename... Z, typename Dispatch>
20736   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getDescriptorSetLayoutSupportKHR(const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo,Dispatch const & d) const20737                                          Device::getDescriptorSetLayoutSupportKHR( const VULKAN_HPP_NAMESPACE::DescriptorSetLayoutCreateInfo & createInfo,
20738                                               Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
20739   {
20740     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20741 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20742     VULKAN_HPP_ASSERT( d.vkGetDescriptorSetLayoutSupportKHR &&
20743                        "Function <vkGetDescriptorSetLayoutSupportKHR> requires <VK_KHR_maintenance3> or <VK_VERSION_1_1>" );
20744 #  endif
20745 
20746     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>   structureChain;
20747     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport & support = structureChain.template get<VULKAN_HPP_NAMESPACE::DescriptorSetLayoutSupport>();
20748     d.vkGetDescriptorSetLayoutSupportKHR(
20749       m_device, reinterpret_cast<const VkDescriptorSetLayoutCreateInfo *>( &createInfo ), reinterpret_cast<VkDescriptorSetLayoutSupport *>( &support ) );
20750 
20751     return structureChain;
20752   }
20753 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
20754 
20755   //=== VK_KHR_draw_indirect_count ===
20756 
20757   // wrapper function for command vkCmdDrawIndirectCountKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawIndirectCountKHR.html
20758   template <typename Dispatch>
drawIndirectCountKHR(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::Buffer countBuffer,VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const20759   VULKAN_HPP_INLINE void CommandBuffer::drawIndirectCountKHR( VULKAN_HPP_NAMESPACE::Buffer     buffer,
20760                                                               VULKAN_HPP_NAMESPACE::DeviceSize offset,
20761                                                               VULKAN_HPP_NAMESPACE::Buffer     countBuffer,
20762                                                               VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,
20763                                                               uint32_t                         maxDrawCount,
20764                                                               uint32_t                         stride,
20765                                                               Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
20766   {
20767     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20768     d.vkCmdDrawIndirectCountKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
20769                                  static_cast<VkBuffer>( buffer ),
20770                                  static_cast<VkDeviceSize>( offset ),
20771                                  static_cast<VkBuffer>( countBuffer ),
20772                                  static_cast<VkDeviceSize>( countBufferOffset ),
20773                                  maxDrawCount,
20774                                  stride );
20775   }
20776 
20777   // wrapper function for command vkCmdDrawIndexedIndirectCountKHR, see
20778   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawIndexedIndirectCountKHR.html
20779   template <typename Dispatch>
drawIndexedIndirectCountKHR(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::Buffer countBuffer,VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const20780   VULKAN_HPP_INLINE void CommandBuffer::drawIndexedIndirectCountKHR( VULKAN_HPP_NAMESPACE::Buffer     buffer,
20781                                                                      VULKAN_HPP_NAMESPACE::DeviceSize offset,
20782                                                                      VULKAN_HPP_NAMESPACE::Buffer     countBuffer,
20783                                                                      VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,
20784                                                                      uint32_t                         maxDrawCount,
20785                                                                      uint32_t                         stride,
20786                                                                      Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
20787   {
20788     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20789     d.vkCmdDrawIndexedIndirectCountKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
20790                                         static_cast<VkBuffer>( buffer ),
20791                                         static_cast<VkDeviceSize>( offset ),
20792                                         static_cast<VkBuffer>( countBuffer ),
20793                                         static_cast<VkDeviceSize>( countBufferOffset ),
20794                                         maxDrawCount,
20795                                         stride );
20796   }
20797 
20798   //=== VK_EXT_external_memory_host ===
20799 
20800   // wrapper function for command vkGetMemoryHostPointerPropertiesEXT, see
20801   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryHostPointerPropertiesEXT.html
20802   template <typename Dispatch>
20803   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getMemoryHostPointerPropertiesEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties,Dispatch const & d) const20804     Device::getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,
20805                                                const void *                                           pHostPointer,
20806                                                VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT * pMemoryHostPointerProperties,
20807                                                Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
20808   {
20809     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20810     return static_cast<Result>( d.vkGetMemoryHostPointerPropertiesEXT( static_cast<VkDevice>( m_device ),
20811                                                                        static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
20812                                                                        pHostPointer,
20813                                                                        reinterpret_cast<VkMemoryHostPointerPropertiesEXT *>( pMemoryHostPointerProperties ) ) );
20814   }
20815 
20816 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20817   // wrapper function for command vkGetMemoryHostPointerPropertiesEXT, see
20818   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryHostPointerPropertiesEXT.html
20819   template <typename Dispatch>
20820   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT>::type
getMemoryHostPointerPropertiesEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,const void * pHostPointer,Dispatch const & d) const20821                        Device::getMemoryHostPointerPropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,
20822                                                const void *                                           pHostPointer,
20823                                                Dispatch const &                                       d ) const
20824   {
20825     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20826 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20827     VULKAN_HPP_ASSERT( d.vkGetMemoryHostPointerPropertiesEXT && "Function <vkGetMemoryHostPointerPropertiesEXT> requires <VK_EXT_external_memory_host>" );
20828 #  endif
20829 
20830     VULKAN_HPP_NAMESPACE::MemoryHostPointerPropertiesEXT memoryHostPointerProperties;
20831     VULKAN_HPP_NAMESPACE::Result                         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
20832       d.vkGetMemoryHostPointerPropertiesEXT( m_device,
20833                                              static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
20834                                              pHostPointer,
20835                                              reinterpret_cast<VkMemoryHostPointerPropertiesEXT *>( &memoryHostPointerProperties ) ) );
20836     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryHostPointerPropertiesEXT" );
20837 
20838     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( memoryHostPointerProperties ) );
20839   }
20840 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
20841 
20842   //=== VK_AMD_buffer_marker ===
20843 
20844   // wrapper function for command vkCmdWriteBufferMarkerAMD, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWriteBufferMarkerAMD.html
20845   template <typename Dispatch>
writeBufferMarkerAMD(VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage,VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,uint32_t marker,Dispatch const & d) const20846   VULKAN_HPP_INLINE void CommandBuffer::writeBufferMarkerAMD( VULKAN_HPP_NAMESPACE::PipelineStageFlagBits pipelineStage,
20847                                                               VULKAN_HPP_NAMESPACE::Buffer                dstBuffer,
20848                                                               VULKAN_HPP_NAMESPACE::DeviceSize            dstOffset,
20849                                                               uint32_t                                    marker,
20850                                                               Dispatch const &                            d ) const VULKAN_HPP_NOEXCEPT
20851   {
20852     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20853     d.vkCmdWriteBufferMarkerAMD( static_cast<VkCommandBuffer>( m_commandBuffer ),
20854                                  static_cast<VkPipelineStageFlagBits>( pipelineStage ),
20855                                  static_cast<VkBuffer>( dstBuffer ),
20856                                  static_cast<VkDeviceSize>( dstOffset ),
20857                                  marker );
20858   }
20859 
20860   // wrapper function for command vkCmdWriteBufferMarker2AMD, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWriteBufferMarker2AMD.html
20861   template <typename Dispatch>
writeBufferMarker2AMD(VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage,VULKAN_HPP_NAMESPACE::Buffer dstBuffer,VULKAN_HPP_NAMESPACE::DeviceSize dstOffset,uint32_t marker,Dispatch const & d) const20862   VULKAN_HPP_INLINE void CommandBuffer::writeBufferMarker2AMD( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage,
20863                                                                VULKAN_HPP_NAMESPACE::Buffer              dstBuffer,
20864                                                                VULKAN_HPP_NAMESPACE::DeviceSize          dstOffset,
20865                                                                uint32_t                                  marker,
20866                                                                Dispatch const &                          d ) const VULKAN_HPP_NOEXCEPT
20867   {
20868     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20869     d.vkCmdWriteBufferMarker2AMD( static_cast<VkCommandBuffer>( m_commandBuffer ),
20870                                   static_cast<VkPipelineStageFlags2>( stage ),
20871                                   static_cast<VkBuffer>( dstBuffer ),
20872                                   static_cast<VkDeviceSize>( dstOffset ),
20873                                   marker );
20874   }
20875 
20876   //=== VK_EXT_calibrated_timestamps ===
20877 
20878   // wrapper function for command vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, see
20879   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCalibrateableTimeDomainsEXT.html
20880   template <typename Dispatch>
getCalibrateableTimeDomainsEXT(uint32_t * pTimeDomainCount,VULKAN_HPP_NAMESPACE::TimeDomainKHR * pTimeDomains,Dispatch const & d) const20881   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getCalibrateableTimeDomainsEXT( uint32_t *                            pTimeDomainCount,
20882                                                                                                 VULKAN_HPP_NAMESPACE::TimeDomainKHR * pTimeDomains,
20883                                                                                                 Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
20884   {
20885     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20886     return static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT(
20887       static_cast<VkPhysicalDevice>( m_physicalDevice ), pTimeDomainCount, reinterpret_cast<VkTimeDomainKHR *>( pTimeDomains ) ) );
20888   }
20889 
20890 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20891   // wrapper function for command vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, see
20892   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCalibrateableTimeDomainsEXT.html
20893   template <typename TimeDomainKHRAllocator,
20894             typename Dispatch,
20895             typename std::enable_if<std::is_same<typename TimeDomainKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::TimeDomainKHR>::value, int>::type>
20896   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR, TimeDomainKHRAllocator>>::type
getCalibrateableTimeDomainsEXT(Dispatch const & d) const20897                        PhysicalDevice::getCalibrateableTimeDomainsEXT( Dispatch const & d ) const
20898   {
20899     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20900 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20901     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT &&
20902                        "Function <vkGetPhysicalDeviceCalibrateableTimeDomainsEXT> requires <VK_EXT_calibrated_timestamps> or <VK_KHR_calibrated_timestamps>" );
20903 #  endif
20904 
20905     std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR, TimeDomainKHRAllocator> timeDomains;
20906     uint32_t                                                                 timeDomainCount;
20907     VULKAN_HPP_NAMESPACE::Result                                             result;
20908     do
20909     {
20910       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) );
20911       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && timeDomainCount )
20912       {
20913         timeDomains.resize( timeDomainCount );
20914         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
20915           d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainKHR *>( timeDomains.data() ) ) );
20916       }
20917     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
20918     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsEXT" );
20919     VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
20920     if ( timeDomainCount < timeDomains.size() )
20921     {
20922       timeDomains.resize( timeDomainCount );
20923     }
20924     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( timeDomains ) );
20925   }
20926 
20927   // wrapper function for command vkGetPhysicalDeviceCalibrateableTimeDomainsEXT, see
20928   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCalibrateableTimeDomainsEXT.html
20929   template <typename TimeDomainKHRAllocator,
20930             typename Dispatch,
20931             typename std::enable_if<std::is_same<typename TimeDomainKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::TimeDomainKHR>::value, int>::type>
20932   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR, TimeDomainKHRAllocator>>::type
getCalibrateableTimeDomainsEXT(TimeDomainKHRAllocator & timeDomainKHRAllocator,Dispatch const & d) const20933                        PhysicalDevice::getCalibrateableTimeDomainsEXT( TimeDomainKHRAllocator & timeDomainKHRAllocator, Dispatch const & d ) const
20934   {
20935     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20936 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20937     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT &&
20938                        "Function <vkGetPhysicalDeviceCalibrateableTimeDomainsEXT> requires <VK_EXT_calibrated_timestamps> or <VK_KHR_calibrated_timestamps>" );
20939 #  endif
20940 
20941     std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR, TimeDomainKHRAllocator> timeDomains( timeDomainKHRAllocator );
20942     uint32_t                                                                 timeDomainCount;
20943     VULKAN_HPP_NAMESPACE::Result                                             result;
20944     do
20945     {
20946       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, nullptr ) );
20947       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && timeDomainCount )
20948       {
20949         timeDomains.resize( timeDomainCount );
20950         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
20951           d.vkGetPhysicalDeviceCalibrateableTimeDomainsEXT( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainKHR *>( timeDomains.data() ) ) );
20952       }
20953     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
20954     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsEXT" );
20955     VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
20956     if ( timeDomainCount < timeDomains.size() )
20957     {
20958       timeDomains.resize( timeDomainCount );
20959     }
20960     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( timeDomains ) );
20961   }
20962 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
20963 
20964   // wrapper function for command vkGetCalibratedTimestampsEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCalibratedTimestampsEXT.html
20965   template <typename Dispatch>
getCalibratedTimestampsEXT(uint32_t timestampCount,const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation,Dispatch const & d) const20966   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getCalibratedTimestampsEXT( uint32_t                                                 timestampCount,
20967                                                                                     const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR * pTimestampInfos,
20968                                                                                     uint64_t *                                               pTimestamps,
20969                                                                                     uint64_t *                                               pMaxDeviation,
20970                                                                                     Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
20971   {
20972     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20973     return static_cast<Result>( d.vkGetCalibratedTimestampsEXT( static_cast<VkDevice>( m_device ),
20974                                                                 timestampCount,
20975                                                                 reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( pTimestampInfos ),
20976                                                                 pTimestamps,
20977                                                                 pMaxDeviation ) );
20978   }
20979 
20980 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
20981   // wrapper function for command vkGetCalibratedTimestampsEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCalibratedTimestampsEXT.html
20982   template <typename Uint64_tAllocator,
20983             typename Dispatch,
20984             typename std::enable_if<std::is_same<typename Uint64_tAllocator::value_type, uint64_t>::value, int>::type>
20985   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t>>::type
getCalibratedTimestampsEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos,Dispatch const & d) const20986     Device::getCalibratedTimestampsEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos,
20987                                         Dispatch const &                                                                                 d ) const
20988   {
20989     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
20990 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
20991     VULKAN_HPP_ASSERT( d.vkGetCalibratedTimestampsEXT &&
20992                        "Function <vkGetCalibratedTimestampsEXT> requires <VK_EXT_calibrated_timestamps> or <VK_KHR_calibrated_timestamps>" );
20993 #  endif
20994 
20995     std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t> data_(
20996       std::piecewise_construct, std::forward_as_tuple( timestampInfos.size() ), std::forward_as_tuple( 0 ) );
20997     std::vector<uint64_t, Uint64_tAllocator> & timestamps   = data_.first;
20998     uint64_t &                                 maxDeviation = data_.second;
20999     VULKAN_HPP_NAMESPACE::Result               result       = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetCalibratedTimestampsEXT(
21000       m_device, timestampInfos.size(), reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( timestampInfos.data() ), timestamps.data(), &maxDeviation ) );
21001     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" );
21002 
21003     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data_ ) );
21004   }
21005 
21006   // wrapper function for command vkGetCalibratedTimestampsEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCalibratedTimestampsEXT.html
21007   template <typename Uint64_tAllocator,
21008             typename Dispatch,
21009             typename std::enable_if<std::is_same<typename Uint64_tAllocator::value_type, uint64_t>::value, int>::type>
21010   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t>>::type
getCalibratedTimestampsEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos,Uint64_tAllocator & uint64_tAllocator,Dispatch const & d) const21011     Device::getCalibratedTimestampsEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos,
21012                                         Uint64_tAllocator &                                                                              uint64_tAllocator,
21013                                         Dispatch const &                                                                                 d ) const
21014   {
21015     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21016 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21017     VULKAN_HPP_ASSERT( d.vkGetCalibratedTimestampsEXT &&
21018                        "Function <vkGetCalibratedTimestampsEXT> requires <VK_EXT_calibrated_timestamps> or <VK_KHR_calibrated_timestamps>" );
21019 #  endif
21020 
21021     std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t> data_(
21022       std::piecewise_construct, std::forward_as_tuple( timestampInfos.size(), uint64_tAllocator ), std::forward_as_tuple( 0 ) );
21023     std::vector<uint64_t, Uint64_tAllocator> & timestamps   = data_.first;
21024     uint64_t &                                 maxDeviation = data_.second;
21025     VULKAN_HPP_NAMESPACE::Result               result       = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetCalibratedTimestampsEXT(
21026       m_device, timestampInfos.size(), reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( timestampInfos.data() ), timestamps.data(), &maxDeviation ) );
21027     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsEXT" );
21028 
21029     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data_ ) );
21030   }
21031 
21032   // wrapper function for command vkGetCalibratedTimestampsEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCalibratedTimestampsEXT.html
21033   template <typename Dispatch>
21034   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::pair<uint64_t, uint64_t>>::type
getCalibratedTimestampEXT(const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR & timestampInfo,Dispatch const & d) const21035                        Device::getCalibratedTimestampEXT( const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR & timestampInfo, Dispatch const & d ) const
21036   {
21037     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21038 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21039     VULKAN_HPP_ASSERT( d.vkGetCalibratedTimestampsEXT &&
21040                        "Function <vkGetCalibratedTimestampsEXT> requires <VK_EXT_calibrated_timestamps> or <VK_KHR_calibrated_timestamps>" );
21041 #  endif
21042 
21043     std::pair<uint64_t, uint64_t> data_;
21044     uint64_t &                    timestamp    = data_.first;
21045     uint64_t &                    maxDeviation = data_.second;
21046     VULKAN_HPP_NAMESPACE::Result  result       = static_cast<VULKAN_HPP_NAMESPACE::Result>(
21047       d.vkGetCalibratedTimestampsEXT( m_device, 1, reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( &timestampInfo ), &timestamp, &maxDeviation ) );
21048     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampEXT" );
21049 
21050     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data_ ) );
21051   }
21052 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
21053 
21054   //=== VK_NV_mesh_shader ===
21055 
21056   // wrapper function for command vkCmdDrawMeshTasksNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawMeshTasksNV.html
21057   template <typename Dispatch>
drawMeshTasksNV(uint32_t taskCount,uint32_t firstTask,Dispatch const & d) const21058   VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksNV( uint32_t taskCount, uint32_t firstTask, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
21059   {
21060     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21061     d.vkCmdDrawMeshTasksNV( static_cast<VkCommandBuffer>( m_commandBuffer ), taskCount, firstTask );
21062   }
21063 
21064   // wrapper function for command vkCmdDrawMeshTasksIndirectNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawMeshTasksIndirectNV.html
21065   template <typename Dispatch>
drawMeshTasksIndirectNV(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const21066   VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectNV( VULKAN_HPP_NAMESPACE::Buffer     buffer,
21067                                                                  VULKAN_HPP_NAMESPACE::DeviceSize offset,
21068                                                                  uint32_t                         drawCount,
21069                                                                  uint32_t                         stride,
21070                                                                  Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
21071   {
21072     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21073     d.vkCmdDrawMeshTasksIndirectNV(
21074       static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
21075   }
21076 
21077   // wrapper function for command vkCmdDrawMeshTasksIndirectCountNV, see
21078   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawMeshTasksIndirectCountNV.html
21079   template <typename Dispatch>
drawMeshTasksIndirectCountNV(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::Buffer countBuffer,VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const21080   VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectCountNV( VULKAN_HPP_NAMESPACE::Buffer     buffer,
21081                                                                       VULKAN_HPP_NAMESPACE::DeviceSize offset,
21082                                                                       VULKAN_HPP_NAMESPACE::Buffer     countBuffer,
21083                                                                       VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,
21084                                                                       uint32_t                         maxDrawCount,
21085                                                                       uint32_t                         stride,
21086                                                                       Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
21087   {
21088     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21089     d.vkCmdDrawMeshTasksIndirectCountNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
21090                                          static_cast<VkBuffer>( buffer ),
21091                                          static_cast<VkDeviceSize>( offset ),
21092                                          static_cast<VkBuffer>( countBuffer ),
21093                                          static_cast<VkDeviceSize>( countBufferOffset ),
21094                                          maxDrawCount,
21095                                          stride );
21096   }
21097 
21098   //=== VK_NV_scissor_exclusive ===
21099 
21100   // wrapper function for command vkCmdSetExclusiveScissorEnableNV, see
21101   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetExclusiveScissorEnableNV.html
21102   template <typename Dispatch>
setExclusiveScissorEnableNV(uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VULKAN_HPP_NAMESPACE::Bool32 * pExclusiveScissorEnables,Dispatch const & d) const21103   VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorEnableNV( uint32_t                             firstExclusiveScissor,
21104                                                                      uint32_t                             exclusiveScissorCount,
21105                                                                      const VULKAN_HPP_NAMESPACE::Bool32 * pExclusiveScissorEnables,
21106                                                                      Dispatch const &                     d ) const VULKAN_HPP_NOEXCEPT
21107   {
21108     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21109     d.vkCmdSetExclusiveScissorEnableNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
21110                                         firstExclusiveScissor,
21111                                         exclusiveScissorCount,
21112                                         reinterpret_cast<const VkBool32 *>( pExclusiveScissorEnables ) );
21113   }
21114 
21115 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21116   // wrapper function for command vkCmdSetExclusiveScissorEnableNV, see
21117   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetExclusiveScissorEnableNV.html
21118   template <typename Dispatch>
21119   VULKAN_HPP_INLINE void
setExclusiveScissorEnableNV(uint32_t firstExclusiveScissor,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & exclusiveScissorEnables,Dispatch const & d) const21120     CommandBuffer::setExclusiveScissorEnableNV( uint32_t                                                                     firstExclusiveScissor,
21121                                                 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & exclusiveScissorEnables,
21122                                                 Dispatch const &                                                             d ) const VULKAN_HPP_NOEXCEPT
21123   {
21124     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21125 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21126     VULKAN_HPP_ASSERT( d.vkCmdSetExclusiveScissorEnableNV && "Function <vkCmdSetExclusiveScissorEnableNV> requires <VK_NV_scissor_exclusive>" );
21127 #  endif
21128 
21129     d.vkCmdSetExclusiveScissorEnableNV(
21130       m_commandBuffer, firstExclusiveScissor, exclusiveScissorEnables.size(), reinterpret_cast<const VkBool32 *>( exclusiveScissorEnables.data() ) );
21131   }
21132 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
21133 
21134   // wrapper function for command vkCmdSetExclusiveScissorNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetExclusiveScissorNV.html
21135   template <typename Dispatch>
setExclusiveScissorNV(uint32_t firstExclusiveScissor,uint32_t exclusiveScissorCount,const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors,Dispatch const & d) const21136   VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( uint32_t                             firstExclusiveScissor,
21137                                                                uint32_t                             exclusiveScissorCount,
21138                                                                const VULKAN_HPP_NAMESPACE::Rect2D * pExclusiveScissors,
21139                                                                Dispatch const &                     d ) const VULKAN_HPP_NOEXCEPT
21140   {
21141     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21142     d.vkCmdSetExclusiveScissorNV(
21143       static_cast<VkCommandBuffer>( m_commandBuffer ), firstExclusiveScissor, exclusiveScissorCount, reinterpret_cast<const VkRect2D *>( pExclusiveScissors ) );
21144   }
21145 
21146 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21147   // wrapper function for command vkCmdSetExclusiveScissorNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetExclusiveScissorNV.html
21148   template <typename Dispatch>
setExclusiveScissorNV(uint32_t firstExclusiveScissor,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors,Dispatch const & d) const21149   VULKAN_HPP_INLINE void CommandBuffer::setExclusiveScissorNV( uint32_t firstExclusiveScissor,
21150                                                                VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & exclusiveScissors,
21151                                                                Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
21152   {
21153     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21154 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21155     VULKAN_HPP_ASSERT( d.vkCmdSetExclusiveScissorNV && "Function <vkCmdSetExclusiveScissorNV> requires <VK_NV_scissor_exclusive>" );
21156 #  endif
21157 
21158     d.vkCmdSetExclusiveScissorNV(
21159       m_commandBuffer, firstExclusiveScissor, exclusiveScissors.size(), reinterpret_cast<const VkRect2D *>( exclusiveScissors.data() ) );
21160   }
21161 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
21162 
21163   //=== VK_NV_device_diagnostic_checkpoints ===
21164 
21165   // wrapper function for command vkCmdSetCheckpointNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetCheckpointNV.html
21166   template <typename Dispatch>
setCheckpointNV(const void * pCheckpointMarker,Dispatch const & d) const21167   VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( const void * pCheckpointMarker, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
21168   {
21169     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21170     d.vkCmdSetCheckpointNV( static_cast<VkCommandBuffer>( m_commandBuffer ), pCheckpointMarker );
21171   }
21172 
21173 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21174   // wrapper function for command vkCmdSetCheckpointNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetCheckpointNV.html
21175   template <typename CheckpointMarkerType, typename Dispatch>
setCheckpointNV(CheckpointMarkerType const & checkpointMarker,Dispatch const & d) const21176   VULKAN_HPP_INLINE void CommandBuffer::setCheckpointNV( CheckpointMarkerType const & checkpointMarker, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
21177   {
21178     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21179 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21180     VULKAN_HPP_ASSERT( d.vkCmdSetCheckpointNV && "Function <vkCmdSetCheckpointNV> requires <VK_NV_device_diagnostic_checkpoints>" );
21181 #  endif
21182 
21183     d.vkCmdSetCheckpointNV( m_commandBuffer, reinterpret_cast<const void *>( &checkpointMarker ) );
21184   }
21185 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
21186 
21187   // wrapper function for command vkGetQueueCheckpointDataNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetQueueCheckpointDataNV.html
21188   template <typename Dispatch>
getCheckpointDataNV(uint32_t * pCheckpointDataCount,VULKAN_HPP_NAMESPACE::CheckpointDataNV * pCheckpointData,Dispatch const & d) const21189   VULKAN_HPP_INLINE void Queue::getCheckpointDataNV( uint32_t *                               pCheckpointDataCount,
21190                                                      VULKAN_HPP_NAMESPACE::CheckpointDataNV * pCheckpointData,
21191                                                      Dispatch const &                         d ) const VULKAN_HPP_NOEXCEPT
21192   {
21193     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21194     d.vkGetQueueCheckpointDataNV( static_cast<VkQueue>( m_queue ), pCheckpointDataCount, reinterpret_cast<VkCheckpointDataNV *>( pCheckpointData ) );
21195   }
21196 
21197 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21198   // wrapper function for command vkGetQueueCheckpointDataNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetQueueCheckpointDataNV.html
21199   template <typename CheckpointDataNVAllocator,
21200             typename Dispatch,
21201             typename std::enable_if<std::is_same<typename CheckpointDataNVAllocator::value_type, VULKAN_HPP_NAMESPACE::CheckpointDataNV>::value, int>::type>
21202   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::CheckpointDataNV, CheckpointDataNVAllocator>
getCheckpointDataNV(Dispatch const & d) const21203                                          Queue::getCheckpointDataNV( Dispatch const & d ) const
21204   {
21205     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21206 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21207     VULKAN_HPP_ASSERT( d.vkGetQueueCheckpointDataNV && "Function <vkGetQueueCheckpointDataNV> requires <VK_NV_device_diagnostic_checkpoints>" );
21208 #  endif
21209 
21210     std::vector<VULKAN_HPP_NAMESPACE::CheckpointDataNV, CheckpointDataNVAllocator> checkpointData;
21211     uint32_t                                                                       checkpointDataCount;
21212     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr );
21213     checkpointData.resize( checkpointDataCount );
21214     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, reinterpret_cast<VkCheckpointDataNV *>( checkpointData.data() ) );
21215 
21216     VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() );
21217     if ( checkpointDataCount < checkpointData.size() )
21218     {
21219       checkpointData.resize( checkpointDataCount );
21220     }
21221     return checkpointData;
21222   }
21223 
21224   // wrapper function for command vkGetQueueCheckpointDataNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetQueueCheckpointDataNV.html
21225   template <typename CheckpointDataNVAllocator,
21226             typename Dispatch,
21227             typename std::enable_if<std::is_same<typename CheckpointDataNVAllocator::value_type, VULKAN_HPP_NAMESPACE::CheckpointDataNV>::value, int>::type>
21228   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::CheckpointDataNV, CheckpointDataNVAllocator>
getCheckpointDataNV(CheckpointDataNVAllocator & checkpointDataNVAllocator,Dispatch const & d) const21229                                          Queue::getCheckpointDataNV( CheckpointDataNVAllocator & checkpointDataNVAllocator, Dispatch const & d ) const
21230   {
21231     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21232 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21233     VULKAN_HPP_ASSERT( d.vkGetQueueCheckpointDataNV && "Function <vkGetQueueCheckpointDataNV> requires <VK_NV_device_diagnostic_checkpoints>" );
21234 #  endif
21235 
21236     std::vector<VULKAN_HPP_NAMESPACE::CheckpointDataNV, CheckpointDataNVAllocator> checkpointData( checkpointDataNVAllocator );
21237     uint32_t                                                                       checkpointDataCount;
21238     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, nullptr );
21239     checkpointData.resize( checkpointDataCount );
21240     d.vkGetQueueCheckpointDataNV( m_queue, &checkpointDataCount, reinterpret_cast<VkCheckpointDataNV *>( checkpointData.data() ) );
21241 
21242     VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() );
21243     if ( checkpointDataCount < checkpointData.size() )
21244     {
21245       checkpointData.resize( checkpointDataCount );
21246     }
21247     return checkpointData;
21248   }
21249 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
21250 
21251   // wrapper function for command vkGetQueueCheckpointData2NV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetQueueCheckpointData2NV.html
21252   template <typename Dispatch>
getCheckpointData2NV(uint32_t * pCheckpointDataCount,VULKAN_HPP_NAMESPACE::CheckpointData2NV * pCheckpointData,Dispatch const & d) const21253   VULKAN_HPP_INLINE void Queue::getCheckpointData2NV( uint32_t *                                pCheckpointDataCount,
21254                                                       VULKAN_HPP_NAMESPACE::CheckpointData2NV * pCheckpointData,
21255                                                       Dispatch const &                          d ) const VULKAN_HPP_NOEXCEPT
21256   {
21257     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21258     d.vkGetQueueCheckpointData2NV( static_cast<VkQueue>( m_queue ), pCheckpointDataCount, reinterpret_cast<VkCheckpointData2NV *>( pCheckpointData ) );
21259   }
21260 
21261 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21262   // wrapper function for command vkGetQueueCheckpointData2NV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetQueueCheckpointData2NV.html
21263   template <typename CheckpointData2NVAllocator,
21264             typename Dispatch,
21265             typename std::enable_if<std::is_same<typename CheckpointData2NVAllocator::value_type, VULKAN_HPP_NAMESPACE::CheckpointData2NV>::value, int>::type>
21266   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::CheckpointData2NV, CheckpointData2NVAllocator>
getCheckpointData2NV(Dispatch const & d) const21267                                          Queue::getCheckpointData2NV( Dispatch const & d ) const
21268   {
21269     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21270 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21271     VULKAN_HPP_ASSERT( d.vkGetQueueCheckpointData2NV && "Function <vkGetQueueCheckpointData2NV> requires <VK_NV_device_diagnostic_checkpoints>" );
21272 #  endif
21273 
21274     std::vector<VULKAN_HPP_NAMESPACE::CheckpointData2NV, CheckpointData2NVAllocator> checkpointData;
21275     uint32_t                                                                         checkpointDataCount;
21276     d.vkGetQueueCheckpointData2NV( m_queue, &checkpointDataCount, nullptr );
21277     checkpointData.resize( checkpointDataCount );
21278     d.vkGetQueueCheckpointData2NV( m_queue, &checkpointDataCount, reinterpret_cast<VkCheckpointData2NV *>( checkpointData.data() ) );
21279 
21280     VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() );
21281     if ( checkpointDataCount < checkpointData.size() )
21282     {
21283       checkpointData.resize( checkpointDataCount );
21284     }
21285     return checkpointData;
21286   }
21287 
21288   // wrapper function for command vkGetQueueCheckpointData2NV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetQueueCheckpointData2NV.html
21289   template <typename CheckpointData2NVAllocator,
21290             typename Dispatch,
21291             typename std::enable_if<std::is_same<typename CheckpointData2NVAllocator::value_type, VULKAN_HPP_NAMESPACE::CheckpointData2NV>::value, int>::type>
21292   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::CheckpointData2NV, CheckpointData2NVAllocator>
getCheckpointData2NV(CheckpointData2NVAllocator & checkpointData2NVAllocator,Dispatch const & d) const21293                                          Queue::getCheckpointData2NV( CheckpointData2NVAllocator & checkpointData2NVAllocator, Dispatch const & d ) const
21294   {
21295     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21296 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21297     VULKAN_HPP_ASSERT( d.vkGetQueueCheckpointData2NV && "Function <vkGetQueueCheckpointData2NV> requires <VK_NV_device_diagnostic_checkpoints>" );
21298 #  endif
21299 
21300     std::vector<VULKAN_HPP_NAMESPACE::CheckpointData2NV, CheckpointData2NVAllocator> checkpointData( checkpointData2NVAllocator );
21301     uint32_t                                                                         checkpointDataCount;
21302     d.vkGetQueueCheckpointData2NV( m_queue, &checkpointDataCount, nullptr );
21303     checkpointData.resize( checkpointDataCount );
21304     d.vkGetQueueCheckpointData2NV( m_queue, &checkpointDataCount, reinterpret_cast<VkCheckpointData2NV *>( checkpointData.data() ) );
21305 
21306     VULKAN_HPP_ASSERT( checkpointDataCount <= checkpointData.size() );
21307     if ( checkpointDataCount < checkpointData.size() )
21308     {
21309       checkpointData.resize( checkpointDataCount );
21310     }
21311     return checkpointData;
21312   }
21313 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
21314 
21315   //=== VK_KHR_timeline_semaphore ===
21316 
21317   // wrapper function for command vkGetSemaphoreCounterValueKHR, see
21318   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreCounterValueKHR.html
21319   template <typename Dispatch>
getSemaphoreCounterValueKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore,uint64_t * pValue,Dispatch const & d) const21320   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore,
21321                                                                                      uint64_t *                      pValue,
21322                                                                                      Dispatch const &                d ) const VULKAN_HPP_NOEXCEPT
21323   {
21324     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21325     return static_cast<Result>( d.vkGetSemaphoreCounterValueKHR( static_cast<VkDevice>( m_device ), static_cast<VkSemaphore>( semaphore ), pValue ) );
21326   }
21327 
21328 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21329   // wrapper function for command vkGetSemaphoreCounterValueKHR, see
21330   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreCounterValueKHR.html
21331   template <typename Dispatch>
21332   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<uint64_t>::type
getSemaphoreCounterValueKHR(VULKAN_HPP_NAMESPACE::Semaphore semaphore,Dispatch const & d) const21333                        Device::getSemaphoreCounterValueKHR( VULKAN_HPP_NAMESPACE::Semaphore semaphore, Dispatch const & d ) const
21334   {
21335     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21336 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21337     VULKAN_HPP_ASSERT( d.vkGetSemaphoreCounterValueKHR && "Function <vkGetSemaphoreCounterValueKHR> requires <VK_KHR_timeline_semaphore> or <VK_VERSION_1_2>" );
21338 #  endif
21339 
21340     uint64_t                     value;
21341     VULKAN_HPP_NAMESPACE::Result result =
21342       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetSemaphoreCounterValueKHR( m_device, static_cast<VkSemaphore>( semaphore ), &value ) );
21343     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreCounterValueKHR" );
21344 
21345     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( value ) );
21346   }
21347 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
21348 
21349   // wrapper function for command vkWaitSemaphoresKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkWaitSemaphoresKHR.html
21350   template <typename Dispatch>
waitSemaphoresKHR(const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo * pWaitInfo,uint64_t timeout,Dispatch const & d) const21351   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitSemaphoresKHR( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo * pWaitInfo,
21352                                                                            uint64_t                                        timeout,
21353                                                                            Dispatch const &                                d ) const VULKAN_HPP_NOEXCEPT
21354   {
21355     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21356     return static_cast<Result>(
21357       d.vkWaitSemaphoresKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreWaitInfo *>( pWaitInfo ), timeout ) );
21358   }
21359 
21360 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21361   // wrapper function for command vkWaitSemaphoresKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkWaitSemaphoresKHR.html
21362   template <typename Dispatch>
21363   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result
waitSemaphoresKHR(const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo & waitInfo,uint64_t timeout,Dispatch const & d) const21364     Device::waitSemaphoresKHR( const VULKAN_HPP_NAMESPACE::SemaphoreWaitInfo & waitInfo, uint64_t timeout, Dispatch const & d ) const
21365   {
21366     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21367 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21368     VULKAN_HPP_ASSERT( d.vkWaitSemaphoresKHR && "Function <vkWaitSemaphoresKHR> requires <VK_KHR_timeline_semaphore> or <VK_VERSION_1_2>" );
21369 #  endif
21370 
21371     VULKAN_HPP_NAMESPACE::Result result =
21372       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkWaitSemaphoresKHR( m_device, reinterpret_cast<const VkSemaphoreWaitInfo *>( &waitInfo ), timeout ) );
21373     VULKAN_HPP_NAMESPACE::detail::resultCheck(
21374       result, VULKAN_HPP_NAMESPACE_STRING "::Device::waitSemaphoresKHR", { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout } );
21375 
21376     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
21377   }
21378 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
21379 
21380   // wrapper function for command vkSignalSemaphoreKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSignalSemaphoreKHR.html
21381   template <typename Dispatch>
signalSemaphoreKHR(const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo * pSignalInfo,Dispatch const & d) const21382   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo * pSignalInfo,
21383                                                                             Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
21384   {
21385     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21386     return static_cast<Result>( d.vkSignalSemaphoreKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreSignalInfo *>( pSignalInfo ) ) );
21387   }
21388 
21389 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21390   // wrapper function for command vkSignalSemaphoreKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSignalSemaphoreKHR.html
21391   template <typename Dispatch>
21392   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
signalSemaphoreKHR(const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo & signalInfo,Dispatch const & d) const21393                                           Device::signalSemaphoreKHR( const VULKAN_HPP_NAMESPACE::SemaphoreSignalInfo & signalInfo, Dispatch const & d ) const
21394   {
21395     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21396 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21397     VULKAN_HPP_ASSERT( d.vkSignalSemaphoreKHR && "Function <vkSignalSemaphoreKHR> requires <VK_KHR_timeline_semaphore> or <VK_VERSION_1_2>" );
21398 #  endif
21399 
21400     VULKAN_HPP_NAMESPACE::Result result =
21401       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkSignalSemaphoreKHR( m_device, reinterpret_cast<const VkSemaphoreSignalInfo *>( &signalInfo ) ) );
21402     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::signalSemaphoreKHR" );
21403 
21404     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
21405   }
21406 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
21407 
21408   //=== VK_INTEL_performance_query ===
21409 
21410   // wrapper function for command vkInitializePerformanceApiINTEL, see
21411   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkInitializePerformanceApiINTEL.html
21412   template <typename Dispatch>
initializePerformanceApiINTEL(const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL * pInitializeInfo,Dispatch const & d) const21413   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::initializePerformanceApiINTEL(
21414     const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL * pInitializeInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
21415   {
21416     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21417     return static_cast<Result>( d.vkInitializePerformanceApiINTEL( static_cast<VkDevice>( m_device ),
21418                                                                    reinterpret_cast<const VkInitializePerformanceApiInfoINTEL *>( pInitializeInfo ) ) );
21419   }
21420 
21421 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21422   // wrapper function for command vkInitializePerformanceApiINTEL, see
21423   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkInitializePerformanceApiINTEL.html
21424   template <typename Dispatch>
21425   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
initializePerformanceApiINTEL(const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL & initializeInfo,Dispatch const & d) const21426     Device::initializePerformanceApiINTEL( const VULKAN_HPP_NAMESPACE::InitializePerformanceApiInfoINTEL & initializeInfo, Dispatch const & d ) const
21427   {
21428     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21429 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21430     VULKAN_HPP_ASSERT( d.vkInitializePerformanceApiINTEL && "Function <vkInitializePerformanceApiINTEL> requires <VK_INTEL_performance_query>" );
21431 #  endif
21432 
21433     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
21434       d.vkInitializePerformanceApiINTEL( m_device, reinterpret_cast<const VkInitializePerformanceApiInfoINTEL *>( &initializeInfo ) ) );
21435     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::initializePerformanceApiINTEL" );
21436 
21437     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
21438   }
21439 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
21440 
21441   // wrapper function for command vkUninitializePerformanceApiINTEL, see
21442   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkUninitializePerformanceApiINTEL.html
21443   template <typename Dispatch>
uninitializePerformanceApiINTEL(Dispatch const & d) const21444   VULKAN_HPP_INLINE void Device::uninitializePerformanceApiINTEL( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
21445   {
21446     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21447     d.vkUninitializePerformanceApiINTEL( static_cast<VkDevice>( m_device ) );
21448   }
21449 
21450   // wrapper function for command vkCmdSetPerformanceMarkerINTEL, see
21451   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPerformanceMarkerINTEL.html
21452   template <typename Dispatch>
setPerformanceMarkerINTEL(const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL * pMarkerInfo,Dispatch const & d) const21453   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL * pMarkerInfo,
21454                                                                                           Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
21455   {
21456     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21457     return static_cast<Result>( d.vkCmdSetPerformanceMarkerINTEL( static_cast<VkCommandBuffer>( m_commandBuffer ),
21458                                                                   reinterpret_cast<const VkPerformanceMarkerInfoINTEL *>( pMarkerInfo ) ) );
21459   }
21460 
21461 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21462   // wrapper function for command vkCmdSetPerformanceMarkerINTEL, see
21463   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPerformanceMarkerINTEL.html
21464   template <typename Dispatch>
21465   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
setPerformanceMarkerINTEL(const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL & markerInfo,Dispatch const & d) const21466     CommandBuffer::setPerformanceMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceMarkerInfoINTEL & markerInfo, Dispatch const & d ) const
21467   {
21468     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21469 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21470     VULKAN_HPP_ASSERT( d.vkCmdSetPerformanceMarkerINTEL && "Function <vkCmdSetPerformanceMarkerINTEL> requires <VK_INTEL_performance_query>" );
21471 #  endif
21472 
21473     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
21474       d.vkCmdSetPerformanceMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceMarkerInfoINTEL *>( &markerInfo ) ) );
21475     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceMarkerINTEL" );
21476 
21477     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
21478   }
21479 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
21480 
21481   // wrapper function for command vkCmdSetPerformanceStreamMarkerINTEL, see
21482   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPerformanceStreamMarkerINTEL.html
21483   template <typename Dispatch>
setPerformanceStreamMarkerINTEL(const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL * pMarkerInfo,Dispatch const & d) const21484   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceStreamMarkerINTEL(
21485     const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL * pMarkerInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
21486   {
21487     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21488     return static_cast<Result>( d.vkCmdSetPerformanceStreamMarkerINTEL( static_cast<VkCommandBuffer>( m_commandBuffer ),
21489                                                                         reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL *>( pMarkerInfo ) ) );
21490   }
21491 
21492 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21493   // wrapper function for command vkCmdSetPerformanceStreamMarkerINTEL, see
21494   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPerformanceStreamMarkerINTEL.html
21495   template <typename Dispatch>
21496   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
setPerformanceStreamMarkerINTEL(const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL & markerInfo,Dispatch const & d) const21497     CommandBuffer::setPerformanceStreamMarkerINTEL( const VULKAN_HPP_NAMESPACE::PerformanceStreamMarkerInfoINTEL & markerInfo, Dispatch const & d ) const
21498   {
21499     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21500 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21501     VULKAN_HPP_ASSERT( d.vkCmdSetPerformanceStreamMarkerINTEL && "Function <vkCmdSetPerformanceStreamMarkerINTEL> requires <VK_INTEL_performance_query>" );
21502 #  endif
21503 
21504     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
21505       d.vkCmdSetPerformanceStreamMarkerINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceStreamMarkerInfoINTEL *>( &markerInfo ) ) );
21506     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceStreamMarkerINTEL" );
21507 
21508     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
21509   }
21510 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
21511 
21512   // wrapper function for command vkCmdSetPerformanceOverrideINTEL, see
21513   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPerformanceOverrideINTEL.html
21514   template <typename Dispatch>
setPerformanceOverrideINTEL(const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL * pOverrideInfo,Dispatch const & d) const21515   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result CommandBuffer::setPerformanceOverrideINTEL(
21516     const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL * pOverrideInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
21517   {
21518     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21519     return static_cast<Result>( d.vkCmdSetPerformanceOverrideINTEL( static_cast<VkCommandBuffer>( m_commandBuffer ),
21520                                                                     reinterpret_cast<const VkPerformanceOverrideInfoINTEL *>( pOverrideInfo ) ) );
21521   }
21522 
21523 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21524   // wrapper function for command vkCmdSetPerformanceOverrideINTEL, see
21525   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPerformanceOverrideINTEL.html
21526   template <typename Dispatch>
21527   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
setPerformanceOverrideINTEL(const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL & overrideInfo,Dispatch const & d) const21528     CommandBuffer::setPerformanceOverrideINTEL( const VULKAN_HPP_NAMESPACE::PerformanceOverrideInfoINTEL & overrideInfo, Dispatch const & d ) const
21529   {
21530     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21531 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21532     VULKAN_HPP_ASSERT( d.vkCmdSetPerformanceOverrideINTEL && "Function <vkCmdSetPerformanceOverrideINTEL> requires <VK_INTEL_performance_query>" );
21533 #  endif
21534 
21535     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
21536       d.vkCmdSetPerformanceOverrideINTEL( m_commandBuffer, reinterpret_cast<const VkPerformanceOverrideInfoINTEL *>( &overrideInfo ) ) );
21537     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setPerformanceOverrideINTEL" );
21538 
21539     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
21540   }
21541 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
21542 
21543   // wrapper function for command vkAcquirePerformanceConfigurationINTEL, see
21544   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquirePerformanceConfigurationINTEL.html
21545   template <typename Dispatch>
21546   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
acquirePerformanceConfigurationINTEL(const VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL * pConfiguration,Dispatch const & d) const21547     Device::acquirePerformanceConfigurationINTEL( const VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL * pAcquireInfo,
21548                                                   VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL *                  pConfiguration,
21549                                                   Dispatch const &                                                       d ) const VULKAN_HPP_NOEXCEPT
21550   {
21551     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21552     return static_cast<Result>( d.vkAcquirePerformanceConfigurationINTEL( static_cast<VkDevice>( m_device ),
21553                                                                           reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( pAcquireInfo ),
21554                                                                           reinterpret_cast<VkPerformanceConfigurationINTEL *>( pConfiguration ) ) );
21555   }
21556 
21557 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21558   // wrapper function for command vkAcquirePerformanceConfigurationINTEL, see
21559   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquirePerformanceConfigurationINTEL.html
21560   template <typename Dispatch>
21561   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL>::type
acquirePerformanceConfigurationINTEL(const VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL & acquireInfo,Dispatch const & d) const21562     Device::acquirePerformanceConfigurationINTEL( const VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL & acquireInfo, Dispatch const & d ) const
21563   {
21564     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21565 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21566     VULKAN_HPP_ASSERT( d.vkAcquirePerformanceConfigurationINTEL && "Function <vkAcquirePerformanceConfigurationINTEL> requires <VK_INTEL_performance_query>" );
21567 #  endif
21568 
21569     VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration;
21570     VULKAN_HPP_NAMESPACE::Result                        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
21571       d.vkAcquirePerformanceConfigurationINTEL( m_device,
21572                                                 reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( &acquireInfo ),
21573                                                 reinterpret_cast<VkPerformanceConfigurationINTEL *>( &configuration ) ) );
21574     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquirePerformanceConfigurationINTEL" );
21575 
21576     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( configuration ) );
21577   }
21578 
21579 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
21580   // wrapper function for command vkAcquirePerformanceConfigurationINTEL, see
21581   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquirePerformanceConfigurationINTEL.html
21582   template <typename Dispatch>
21583   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL, Dispatch>>::type
acquirePerformanceConfigurationINTELUnique(const VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL & acquireInfo,Dispatch const & d) const21584                        Device::acquirePerformanceConfigurationINTELUnique( const VULKAN_HPP_NAMESPACE::PerformanceConfigurationAcquireInfoINTEL & acquireInfo,
21585                                                         Dispatch const &                                                       d ) const
21586   {
21587     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21588 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21589     VULKAN_HPP_ASSERT( d.vkAcquirePerformanceConfigurationINTEL && "Function <vkAcquirePerformanceConfigurationINTEL> requires <VK_INTEL_performance_query>" );
21590 #    endif
21591 
21592     VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration;
21593     VULKAN_HPP_NAMESPACE::Result                        result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
21594       d.vkAcquirePerformanceConfigurationINTEL( m_device,
21595                                                 reinterpret_cast<const VkPerformanceConfigurationAcquireInfoINTEL *>( &acquireInfo ),
21596                                                 reinterpret_cast<VkPerformanceConfigurationINTEL *>( &configuration ) ) );
21597     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquirePerformanceConfigurationINTELUnique" );
21598 
21599     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
21600       result,
21601       UniqueHandle<VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL, Dispatch>( configuration, detail::ObjectRelease<Device, Dispatch>( *this, d ) ) );
21602   }
21603 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
21604 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
21605 
21606 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
21607   // wrapper function for command vkReleasePerformanceConfigurationINTEL, see
21608   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleasePerformanceConfigurationINTEL.html
21609   template <typename Dispatch>
releasePerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const21610   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,
21611                                                                                               Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
21612   {
21613     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21614     return static_cast<Result>(
21615       d.vkReleasePerformanceConfigurationINTEL( static_cast<VkDevice>( m_device ), static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
21616   }
21617 #else
21618   // wrapper function for command vkReleasePerformanceConfigurationINTEL, see
21619   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleasePerformanceConfigurationINTEL.html
21620   template <typename Dispatch>
21621   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
releasePerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const21622     Device::releasePerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const
21623   {
21624     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21625 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21626     VULKAN_HPP_ASSERT( d.vkReleasePerformanceConfigurationINTEL && "Function <vkReleasePerformanceConfigurationINTEL> requires <VK_INTEL_performance_query>" );
21627 #  endif
21628 
21629     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
21630       d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
21631     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releasePerformanceConfigurationINTEL" );
21632 
21633     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
21634   }
21635 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21636 
21637 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
21638   // wrapper function for command vkReleasePerformanceConfigurationINTEL, see
21639   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleasePerformanceConfigurationINTEL.html
21640   template <typename Dispatch>
release(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const21641   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,
21642                                                                  Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
21643   {
21644     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21645     return static_cast<Result>(
21646       d.vkReleasePerformanceConfigurationINTEL( static_cast<VkDevice>( m_device ), static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
21647   }
21648 #else
21649   // wrapper function for command vkReleasePerformanceConfigurationINTEL, see
21650   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleasePerformanceConfigurationINTEL.html
21651   template <typename Dispatch>
21652   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
release(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const21653                                           Device::release( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const
21654   {
21655     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21656 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21657     VULKAN_HPP_ASSERT( d.vkReleasePerformanceConfigurationINTEL && "Function <vkReleasePerformanceConfigurationINTEL> requires <VK_INTEL_performance_query>" );
21658 #  endif
21659 
21660     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
21661       d.vkReleasePerformanceConfigurationINTEL( m_device, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
21662     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::release" );
21663 
21664     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
21665   }
21666 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21667 
21668 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
21669   // wrapper function for command vkQueueSetPerformanceConfigurationINTEL, see
21670   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSetPerformanceConfigurationINTEL.html
21671   template <typename Dispatch>
setPerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const21672   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,
21673                                                                                          Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
21674   {
21675     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21676     return static_cast<Result>(
21677       d.vkQueueSetPerformanceConfigurationINTEL( static_cast<VkQueue>( m_queue ), static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
21678   }
21679 #else
21680   // wrapper function for command vkQueueSetPerformanceConfigurationINTEL, see
21681   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSetPerformanceConfigurationINTEL.html
21682   template <typename Dispatch>
21683   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
setPerformanceConfigurationINTEL(VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration,Dispatch const & d) const21684     Queue::setPerformanceConfigurationINTEL( VULKAN_HPP_NAMESPACE::PerformanceConfigurationINTEL configuration, Dispatch const & d ) const
21685   {
21686     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21687 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21688     VULKAN_HPP_ASSERT( d.vkQueueSetPerformanceConfigurationINTEL &&
21689                        "Function <vkQueueSetPerformanceConfigurationINTEL> requires <VK_INTEL_performance_query>" );
21690 #  endif
21691 
21692     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
21693       d.vkQueueSetPerformanceConfigurationINTEL( m_queue, static_cast<VkPerformanceConfigurationINTEL>( configuration ) ) );
21694     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::setPerformanceConfigurationINTEL" );
21695 
21696     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
21697   }
21698 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
21699 
21700   // wrapper function for command vkGetPerformanceParameterINTEL, see
21701   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPerformanceParameterINTEL.html
21702   template <typename Dispatch>
getPerformanceParameterINTEL(VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter,VULKAN_HPP_NAMESPACE::PerformanceValueINTEL * pValue,Dispatch const & d) const21703   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter,
21704                                                                                       VULKAN_HPP_NAMESPACE::PerformanceValueINTEL *       pValue,
21705                                                                                       Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
21706   {
21707     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21708     return static_cast<Result>( d.vkGetPerformanceParameterINTEL(
21709       static_cast<VkDevice>( m_device ), static_cast<VkPerformanceParameterTypeINTEL>( parameter ), reinterpret_cast<VkPerformanceValueINTEL *>( pValue ) ) );
21710   }
21711 
21712 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21713   // wrapper function for command vkGetPerformanceParameterINTEL, see
21714   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPerformanceParameterINTEL.html
21715   template <typename Dispatch>
21716   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::PerformanceValueINTEL>::type
getPerformanceParameterINTEL(VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter,Dispatch const & d) const21717                        Device::getPerformanceParameterINTEL( VULKAN_HPP_NAMESPACE::PerformanceParameterTypeINTEL parameter, Dispatch const & d ) const
21718   {
21719     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21720 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21721     VULKAN_HPP_ASSERT( d.vkGetPerformanceParameterINTEL && "Function <vkGetPerformanceParameterINTEL> requires <VK_INTEL_performance_query>" );
21722 #  endif
21723 
21724     VULKAN_HPP_NAMESPACE::PerformanceValueINTEL value;
21725     VULKAN_HPP_NAMESPACE::Result                result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPerformanceParameterINTEL(
21726       m_device, static_cast<VkPerformanceParameterTypeINTEL>( parameter ), reinterpret_cast<VkPerformanceValueINTEL *>( &value ) ) );
21727     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPerformanceParameterINTEL" );
21728 
21729     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( value ) );
21730   }
21731 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
21732 
21733   //=== VK_AMD_display_native_hdr ===
21734 
21735   // wrapper function for command vkSetLocalDimmingAMD, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetLocalDimmingAMD.html
21736   template <typename Dispatch>
setLocalDimmingAMD(VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain,VULKAN_HPP_NAMESPACE::Bool32 localDimmingEnable,Dispatch const & d) const21737   VULKAN_HPP_INLINE void Device::setLocalDimmingAMD( VULKAN_HPP_NAMESPACE::SwapchainKHR swapChain,
21738                                                      VULKAN_HPP_NAMESPACE::Bool32       localDimmingEnable,
21739                                                      Dispatch const &                   d ) const VULKAN_HPP_NOEXCEPT
21740   {
21741     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21742     d.vkSetLocalDimmingAMD( static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( swapChain ), static_cast<VkBool32>( localDimmingEnable ) );
21743   }
21744 
21745 #if defined( VK_USE_PLATFORM_FUCHSIA )
21746   //=== VK_FUCHSIA_imagepipe_surface ===
21747 
21748   // wrapper function for command vkCreateImagePipeSurfaceFUCHSIA, see
21749   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateImagePipeSurfaceFUCHSIA.html
21750   template <typename Dispatch>
21751   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
createImagePipeSurfaceFUCHSIA(const VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const21752     Instance::createImagePipeSurfaceFUCHSIA( const VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA * pCreateInfo,
21753                                              const VULKAN_HPP_NAMESPACE::AllocationCallbacks *               pAllocator,
21754                                              VULKAN_HPP_NAMESPACE::SurfaceKHR *                              pSurface,
21755                                              Dispatch const &                                                d ) const VULKAN_HPP_NOEXCEPT
21756   {
21757     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21758     return static_cast<Result>( d.vkCreateImagePipeSurfaceFUCHSIA( static_cast<VkInstance>( m_instance ),
21759                                                                    reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA *>( pCreateInfo ),
21760                                                                    reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
21761                                                                    reinterpret_cast<VkSurfaceKHR *>( pSurface ) ) );
21762   }
21763 
21764 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21765   // wrapper function for command vkCreateImagePipeSurfaceFUCHSIA, see
21766   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateImagePipeSurfaceFUCHSIA.html
21767   template <typename Dispatch>
21768   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type
createImagePipeSurfaceFUCHSIA(const VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const21769                        Instance::createImagePipeSurfaceFUCHSIA( const VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA & createInfo,
21770                                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>       allocator,
21771                                              Dispatch const &                                                d ) const
21772   {
21773     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21774 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21775     VULKAN_HPP_ASSERT( d.vkCreateImagePipeSurfaceFUCHSIA && "Function <vkCreateImagePipeSurfaceFUCHSIA> requires <VK_FUCHSIA_imagepipe_surface>" );
21776 #    endif
21777 
21778     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
21779     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateImagePipeSurfaceFUCHSIA(
21780       m_instance,
21781       reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA *>( &createInfo ),
21782       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
21783       reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
21784     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createImagePipeSurfaceFUCHSIA" );
21785 
21786     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surface ) );
21787   }
21788 
21789 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
21790   // wrapper function for command vkCreateImagePipeSurfaceFUCHSIA, see
21791   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateImagePipeSurfaceFUCHSIA.html
21792   template <typename Dispatch>
21793   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type
createImagePipeSurfaceFUCHSIAUnique(const VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const21794                        Instance::createImagePipeSurfaceFUCHSIAUnique( const VULKAN_HPP_NAMESPACE::ImagePipeSurfaceCreateInfoFUCHSIA & createInfo,
21795                                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>       allocator,
21796                                                    Dispatch const &                                                d ) const
21797   {
21798     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21799 #      if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21800     VULKAN_HPP_ASSERT( d.vkCreateImagePipeSurfaceFUCHSIA && "Function <vkCreateImagePipeSurfaceFUCHSIA> requires <VK_FUCHSIA_imagepipe_surface>" );
21801 #      endif
21802 
21803     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
21804     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateImagePipeSurfaceFUCHSIA(
21805       m_instance,
21806       reinterpret_cast<const VkImagePipeSurfaceCreateInfoFUCHSIA *>( &createInfo ),
21807       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
21808       reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
21809     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createImagePipeSurfaceFUCHSIAUnique" );
21810 
21811     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
21812       result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, detail::ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
21813   }
21814 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
21815 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
21816 #endif     /*VK_USE_PLATFORM_FUCHSIA*/
21817 
21818 #if defined( VK_USE_PLATFORM_METAL_EXT )
21819   //=== VK_EXT_metal_surface ===
21820 
21821   // wrapper function for command vkCreateMetalSurfaceEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateMetalSurfaceEXT.html
21822   template <typename Dispatch>
createMetalSurfaceEXT(const VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const21823   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createMetalSurfaceEXT( const VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT * pCreateInfo,
21824                                                                                  const VULKAN_HPP_NAMESPACE::AllocationCallbacks *       pAllocator,
21825                                                                                  VULKAN_HPP_NAMESPACE::SurfaceKHR *                      pSurface,
21826                                                                                  Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
21827   {
21828     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21829     return static_cast<Result>( d.vkCreateMetalSurfaceEXT( static_cast<VkInstance>( m_instance ),
21830                                                            reinterpret_cast<const VkMetalSurfaceCreateInfoEXT *>( pCreateInfo ),
21831                                                            reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
21832                                                            reinterpret_cast<VkSurfaceKHR *>( pSurface ) ) );
21833   }
21834 
21835 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21836   // wrapper function for command vkCreateMetalSurfaceEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateMetalSurfaceEXT.html
21837   template <typename Dispatch>
21838   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type
createMetalSurfaceEXT(const VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const21839                        Instance::createMetalSurfaceEXT( const VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT &   createInfo,
21840                                      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
21841                                      Dispatch const &                                          d ) const
21842   {
21843     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21844 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21845     VULKAN_HPP_ASSERT( d.vkCreateMetalSurfaceEXT && "Function <vkCreateMetalSurfaceEXT> requires <VK_EXT_metal_surface>" );
21846 #    endif
21847 
21848     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
21849     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
21850       d.vkCreateMetalSurfaceEXT( m_instance,
21851                                  reinterpret_cast<const VkMetalSurfaceCreateInfoEXT *>( &createInfo ),
21852                                  reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
21853                                  reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
21854     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMetalSurfaceEXT" );
21855 
21856     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surface ) );
21857   }
21858 
21859 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
21860   // wrapper function for command vkCreateMetalSurfaceEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateMetalSurfaceEXT.html
21861   template <typename Dispatch>
21862   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type
createMetalSurfaceEXTUnique(const VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const21863                        Instance::createMetalSurfaceEXTUnique( const VULKAN_HPP_NAMESPACE::MetalSurfaceCreateInfoEXT &   createInfo,
21864                                            Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
21865                                            Dispatch const &                                          d ) const
21866   {
21867     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21868 #      if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21869     VULKAN_HPP_ASSERT( d.vkCreateMetalSurfaceEXT && "Function <vkCreateMetalSurfaceEXT> requires <VK_EXT_metal_surface>" );
21870 #      endif
21871 
21872     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
21873     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
21874       d.vkCreateMetalSurfaceEXT( m_instance,
21875                                  reinterpret_cast<const VkMetalSurfaceCreateInfoEXT *>( &createInfo ),
21876                                  reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
21877                                  reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
21878     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createMetalSurfaceEXTUnique" );
21879 
21880     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
21881       result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, detail::ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
21882   }
21883 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
21884 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
21885 #endif     /*VK_USE_PLATFORM_METAL_EXT*/
21886 
21887   //=== VK_KHR_fragment_shading_rate ===
21888 
21889   // wrapper function for command vkGetPhysicalDeviceFragmentShadingRatesKHR, see
21890   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFragmentShadingRatesKHR.html
21891   template <typename Dispatch>
21892   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getFragmentShadingRatesKHR(uint32_t * pFragmentShadingRateCount,VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates,Dispatch const & d) const21893     PhysicalDevice::getFragmentShadingRatesKHR( uint32_t *                                                   pFragmentShadingRateCount,
21894                                                 VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR * pFragmentShadingRates,
21895                                                 Dispatch const &                                             d ) const VULKAN_HPP_NOEXCEPT
21896   {
21897     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21898     return static_cast<Result>(
21899       d.vkGetPhysicalDeviceFragmentShadingRatesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
21900                                                     pFragmentShadingRateCount,
21901                                                     reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR *>( pFragmentShadingRates ) ) );
21902   }
21903 
21904 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
21905   // wrapper function for command vkGetPhysicalDeviceFragmentShadingRatesKHR, see
21906   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFragmentShadingRatesKHR.html
21907   template <typename PhysicalDeviceFragmentShadingRateKHRAllocator,
21908             typename Dispatch,
21909             typename std::enable_if<std::is_same<typename PhysicalDeviceFragmentShadingRateKHRAllocator::value_type,
21910                                                  VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR>::value,
21911                                     int>::type>
21912   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
21913     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR, PhysicalDeviceFragmentShadingRateKHRAllocator>>::type
getFragmentShadingRatesKHR(Dispatch const & d) const21914     PhysicalDevice::getFragmentShadingRatesKHR( Dispatch const & d ) const
21915   {
21916     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21917 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21918     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceFragmentShadingRatesKHR &&
21919                        "Function <vkGetPhysicalDeviceFragmentShadingRatesKHR> requires <VK_KHR_fragment_shading_rate>" );
21920 #  endif
21921 
21922     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR, PhysicalDeviceFragmentShadingRateKHRAllocator> fragmentShadingRates;
21923     uint32_t                                                                                                               fragmentShadingRateCount;
21924     VULKAN_HPP_NAMESPACE::Result                                                                                           result;
21925     do
21926     {
21927       result =
21928         static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, nullptr ) );
21929       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && fragmentShadingRateCount )
21930       {
21931         fragmentShadingRates.resize( fragmentShadingRateCount );
21932         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR(
21933           m_physicalDevice, &fragmentShadingRateCount, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR *>( fragmentShadingRates.data() ) ) );
21934       }
21935     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
21936     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getFragmentShadingRatesKHR" );
21937     VULKAN_HPP_ASSERT( fragmentShadingRateCount <= fragmentShadingRates.size() );
21938     if ( fragmentShadingRateCount < fragmentShadingRates.size() )
21939     {
21940       fragmentShadingRates.resize( fragmentShadingRateCount );
21941     }
21942     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( fragmentShadingRates ) );
21943   }
21944 
21945   // wrapper function for command vkGetPhysicalDeviceFragmentShadingRatesKHR, see
21946   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceFragmentShadingRatesKHR.html
21947   template <typename PhysicalDeviceFragmentShadingRateKHRAllocator,
21948             typename Dispatch,
21949             typename std::enable_if<std::is_same<typename PhysicalDeviceFragmentShadingRateKHRAllocator::value_type,
21950                                                  VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR>::value,
21951                                     int>::type>
21952   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
21953     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR, PhysicalDeviceFragmentShadingRateKHRAllocator>>::type
getFragmentShadingRatesKHR(PhysicalDeviceFragmentShadingRateKHRAllocator & physicalDeviceFragmentShadingRateKHRAllocator,Dispatch const & d) const21954     PhysicalDevice::getFragmentShadingRatesKHR( PhysicalDeviceFragmentShadingRateKHRAllocator & physicalDeviceFragmentShadingRateKHRAllocator,
21955                                                 Dispatch const &                                d ) const
21956   {
21957     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21958 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
21959     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceFragmentShadingRatesKHR &&
21960                        "Function <vkGetPhysicalDeviceFragmentShadingRatesKHR> requires <VK_KHR_fragment_shading_rate>" );
21961 #  endif
21962 
21963     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceFragmentShadingRateKHR, PhysicalDeviceFragmentShadingRateKHRAllocator> fragmentShadingRates(
21964       physicalDeviceFragmentShadingRateKHRAllocator );
21965     uint32_t                     fragmentShadingRateCount;
21966     VULKAN_HPP_NAMESPACE::Result result;
21967     do
21968     {
21969       result =
21970         static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR( m_physicalDevice, &fragmentShadingRateCount, nullptr ) );
21971       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && fragmentShadingRateCount )
21972       {
21973         fragmentShadingRates.resize( fragmentShadingRateCount );
21974         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceFragmentShadingRatesKHR(
21975           m_physicalDevice, &fragmentShadingRateCount, reinterpret_cast<VkPhysicalDeviceFragmentShadingRateKHR *>( fragmentShadingRates.data() ) ) );
21976       }
21977     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
21978     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getFragmentShadingRatesKHR" );
21979     VULKAN_HPP_ASSERT( fragmentShadingRateCount <= fragmentShadingRates.size() );
21980     if ( fragmentShadingRateCount < fragmentShadingRates.size() )
21981     {
21982       fragmentShadingRates.resize( fragmentShadingRateCount );
21983     }
21984     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( fragmentShadingRates ) );
21985   }
21986 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
21987 
21988   // wrapper function for command vkCmdSetFragmentShadingRateKHR, see
21989   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetFragmentShadingRateKHR.html
21990   template <typename Dispatch>
setFragmentShadingRateKHR(const VULKAN_HPP_NAMESPACE::Extent2D * pFragmentSize,const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2],Dispatch const & d) const21991   VULKAN_HPP_INLINE void CommandBuffer::setFragmentShadingRateKHR( const VULKAN_HPP_NAMESPACE::Extent2D *                       pFragmentSize,
21992                                                                    const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2],
21993                                                                    Dispatch const &                                             d ) const VULKAN_HPP_NOEXCEPT
21994   {
21995     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
21996     d.vkCmdSetFragmentShadingRateKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
21997                                       reinterpret_cast<const VkExtent2D *>( pFragmentSize ),
21998                                       reinterpret_cast<const VkFragmentShadingRateCombinerOpKHR *>( combinerOps ) );
21999   }
22000 
22001 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
22002   // wrapper function for command vkCmdSetFragmentShadingRateKHR, see
22003   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetFragmentShadingRateKHR.html
22004   template <typename Dispatch>
setFragmentShadingRateKHR(const VULKAN_HPP_NAMESPACE::Extent2D & fragmentSize,const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2],Dispatch const & d) const22005   VULKAN_HPP_INLINE void CommandBuffer::setFragmentShadingRateKHR( const VULKAN_HPP_NAMESPACE::Extent2D &                       fragmentSize,
22006                                                                    const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2],
22007                                                                    Dispatch const &                                             d ) const VULKAN_HPP_NOEXCEPT
22008   {
22009     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22010 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22011     VULKAN_HPP_ASSERT( d.vkCmdSetFragmentShadingRateKHR && "Function <vkCmdSetFragmentShadingRateKHR> requires <VK_KHR_fragment_shading_rate>" );
22012 #  endif
22013 
22014     d.vkCmdSetFragmentShadingRateKHR(
22015       m_commandBuffer, reinterpret_cast<const VkExtent2D *>( &fragmentSize ), reinterpret_cast<const VkFragmentShadingRateCombinerOpKHR *>( combinerOps ) );
22016   }
22017 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
22018 
22019   //=== VK_KHR_dynamic_rendering_local_read ===
22020 
22021   // wrapper function for command vkCmdSetRenderingAttachmentLocationsKHR, see
22022   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetRenderingAttachmentLocationsKHR.html
22023   template <typename Dispatch>
setRenderingAttachmentLocationsKHR(const VULKAN_HPP_NAMESPACE::RenderingAttachmentLocationInfo * pLocationInfo,Dispatch const & d) const22024   VULKAN_HPP_INLINE void CommandBuffer::setRenderingAttachmentLocationsKHR( const VULKAN_HPP_NAMESPACE::RenderingAttachmentLocationInfo * pLocationInfo,
22025                                                                             Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
22026   {
22027     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22028     d.vkCmdSetRenderingAttachmentLocationsKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
22029                                                reinterpret_cast<const VkRenderingAttachmentLocationInfo *>( pLocationInfo ) );
22030   }
22031 
22032 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
22033   // wrapper function for command vkCmdSetRenderingAttachmentLocationsKHR, see
22034   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetRenderingAttachmentLocationsKHR.html
22035   template <typename Dispatch>
setRenderingAttachmentLocationsKHR(const VULKAN_HPP_NAMESPACE::RenderingAttachmentLocationInfo & locationInfo,Dispatch const & d) const22036   VULKAN_HPP_INLINE void CommandBuffer::setRenderingAttachmentLocationsKHR( const VULKAN_HPP_NAMESPACE::RenderingAttachmentLocationInfo & locationInfo,
22037                                                                             Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
22038   {
22039     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22040 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22041     VULKAN_HPP_ASSERT( d.vkCmdSetRenderingAttachmentLocationsKHR &&
22042                        "Function <vkCmdSetRenderingAttachmentLocationsKHR> requires <VK_KHR_dynamic_rendering_local_read> or <VK_VERSION_1_4>" );
22043 #  endif
22044 
22045     d.vkCmdSetRenderingAttachmentLocationsKHR( m_commandBuffer, reinterpret_cast<const VkRenderingAttachmentLocationInfo *>( &locationInfo ) );
22046   }
22047 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
22048 
22049   // wrapper function for command vkCmdSetRenderingInputAttachmentIndicesKHR, see
22050   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetRenderingInputAttachmentIndicesKHR.html
22051   template <typename Dispatch>
22052   VULKAN_HPP_INLINE void
setRenderingInputAttachmentIndicesKHR(const VULKAN_HPP_NAMESPACE::RenderingInputAttachmentIndexInfo * pInputAttachmentIndexInfo,Dispatch const & d) const22053     CommandBuffer::setRenderingInputAttachmentIndicesKHR( const VULKAN_HPP_NAMESPACE::RenderingInputAttachmentIndexInfo * pInputAttachmentIndexInfo,
22054                                                           Dispatch const &                                                d ) const VULKAN_HPP_NOEXCEPT
22055   {
22056     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22057     d.vkCmdSetRenderingInputAttachmentIndicesKHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
22058                                                   reinterpret_cast<const VkRenderingInputAttachmentIndexInfo *>( pInputAttachmentIndexInfo ) );
22059   }
22060 
22061 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
22062   // wrapper function for command vkCmdSetRenderingInputAttachmentIndicesKHR, see
22063   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetRenderingInputAttachmentIndicesKHR.html
22064   template <typename Dispatch>
22065   VULKAN_HPP_INLINE void
setRenderingInputAttachmentIndicesKHR(const VULKAN_HPP_NAMESPACE::RenderingInputAttachmentIndexInfo & inputAttachmentIndexInfo,Dispatch const & d) const22066     CommandBuffer::setRenderingInputAttachmentIndicesKHR( const VULKAN_HPP_NAMESPACE::RenderingInputAttachmentIndexInfo & inputAttachmentIndexInfo,
22067                                                           Dispatch const &                                                d ) const VULKAN_HPP_NOEXCEPT
22068   {
22069     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22070 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22071     VULKAN_HPP_ASSERT( d.vkCmdSetRenderingInputAttachmentIndicesKHR &&
22072                        "Function <vkCmdSetRenderingInputAttachmentIndicesKHR> requires <VK_KHR_dynamic_rendering_local_read> or <VK_VERSION_1_4>" );
22073 #  endif
22074 
22075     d.vkCmdSetRenderingInputAttachmentIndicesKHR( m_commandBuffer, reinterpret_cast<const VkRenderingInputAttachmentIndexInfo *>( &inputAttachmentIndexInfo ) );
22076   }
22077 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
22078 
22079   //=== VK_EXT_buffer_device_address ===
22080 
22081   // wrapper function for command vkGetBufferDeviceAddressEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferDeviceAddressEXT.html
22082   template <typename Dispatch>
getBufferAddressEXT(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const22083   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressEXT( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,
22084                                                                Dispatch const &                                      d ) const VULKAN_HPP_NOEXCEPT
22085   {
22086     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22087     return static_cast<DeviceAddress>(
22088       d.vkGetBufferDeviceAddressEXT( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) ) );
22089   }
22090 
22091 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
22092   // wrapper function for command vkGetBufferDeviceAddressEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferDeviceAddressEXT.html
22093   template <typename Dispatch>
getBufferAddressEXT(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info,Dispatch const & d) const22094   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress Device::getBufferAddressEXT( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info,
22095                                                                                      Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
22096   {
22097     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22098 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22099     VULKAN_HPP_ASSERT( d.vkGetBufferDeviceAddressEXT &&
22100                        "Function <vkGetBufferDeviceAddressEXT> requires <VK_EXT_buffer_device_address> or <VK_KHR_buffer_device_address> or <VK_VERSION_1_2>" );
22101 #  endif
22102 
22103     VkDeviceAddress result = d.vkGetBufferDeviceAddressEXT( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
22104 
22105     return static_cast<VULKAN_HPP_NAMESPACE::DeviceAddress>( result );
22106   }
22107 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
22108 
22109   //=== VK_EXT_tooling_info ===
22110 
22111   // wrapper function for command vkGetPhysicalDeviceToolPropertiesEXT, see
22112   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceToolPropertiesEXT.html
22113   template <typename Dispatch>
getToolPropertiesEXT(uint32_t * pToolCount,VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties * pToolProperties,Dispatch const & d) const22114   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getToolPropertiesEXT( uint32_t *                                           pToolCount,
22115                                                                                       VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties * pToolProperties,
22116                                                                                       Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
22117   {
22118     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22119     return static_cast<Result>( d.vkGetPhysicalDeviceToolPropertiesEXT(
22120       static_cast<VkPhysicalDevice>( m_physicalDevice ), pToolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>( pToolProperties ) ) );
22121   }
22122 
22123 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
22124   // wrapper function for command vkGetPhysicalDeviceToolPropertiesEXT, see
22125   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceToolPropertiesEXT.html
22126   template <
22127     typename PhysicalDeviceToolPropertiesAllocator,
22128     typename Dispatch,
22129     typename std::enable_if<std::is_same<typename PhysicalDeviceToolPropertiesAllocator::value_type, VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties>::value,
22130                             int>::type>
22131   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
22132     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties, PhysicalDeviceToolPropertiesAllocator>>::type
getToolPropertiesEXT(Dispatch const & d) const22133     PhysicalDevice::getToolPropertiesEXT( Dispatch const & d ) const
22134   {
22135     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22136 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22137     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceToolPropertiesEXT &&
22138                        "Function <vkGetPhysicalDeviceToolPropertiesEXT> requires <VK_EXT_tooling_info> or <VK_VERSION_1_3>" );
22139 #  endif
22140 
22141     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties, PhysicalDeviceToolPropertiesAllocator> toolProperties;
22142     uint32_t                                                                                               toolCount;
22143     VULKAN_HPP_NAMESPACE::Result                                                                           result;
22144     do
22145     {
22146       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr ) );
22147       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && toolCount )
22148       {
22149         toolProperties.resize( toolCount );
22150         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
22151           d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>( toolProperties.data() ) ) );
22152       }
22153     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
22154     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolPropertiesEXT" );
22155     VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
22156     if ( toolCount < toolProperties.size() )
22157     {
22158       toolProperties.resize( toolCount );
22159     }
22160     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( toolProperties ) );
22161   }
22162 
22163   // wrapper function for command vkGetPhysicalDeviceToolPropertiesEXT, see
22164   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceToolPropertiesEXT.html
22165   template <
22166     typename PhysicalDeviceToolPropertiesAllocator,
22167     typename Dispatch,
22168     typename std::enable_if<std::is_same<typename PhysicalDeviceToolPropertiesAllocator::value_type, VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties>::value,
22169                             int>::type>
22170   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
22171     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties, PhysicalDeviceToolPropertiesAllocator>>::type
getToolPropertiesEXT(PhysicalDeviceToolPropertiesAllocator & physicalDeviceToolPropertiesAllocator,Dispatch const & d) const22172     PhysicalDevice::getToolPropertiesEXT( PhysicalDeviceToolPropertiesAllocator & physicalDeviceToolPropertiesAllocator, Dispatch const & d ) const
22173   {
22174     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22175 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22176     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceToolPropertiesEXT &&
22177                        "Function <vkGetPhysicalDeviceToolPropertiesEXT> requires <VK_EXT_tooling_info> or <VK_VERSION_1_3>" );
22178 #  endif
22179 
22180     std::vector<VULKAN_HPP_NAMESPACE::PhysicalDeviceToolProperties, PhysicalDeviceToolPropertiesAllocator> toolProperties(
22181       physicalDeviceToolPropertiesAllocator );
22182     uint32_t                     toolCount;
22183     VULKAN_HPP_NAMESPACE::Result result;
22184     do
22185     {
22186       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, nullptr ) );
22187       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && toolCount )
22188       {
22189         toolProperties.resize( toolCount );
22190         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
22191           d.vkGetPhysicalDeviceToolPropertiesEXT( m_physicalDevice, &toolCount, reinterpret_cast<VkPhysicalDeviceToolProperties *>( toolProperties.data() ) ) );
22192       }
22193     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
22194     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getToolPropertiesEXT" );
22195     VULKAN_HPP_ASSERT( toolCount <= toolProperties.size() );
22196     if ( toolCount < toolProperties.size() )
22197     {
22198       toolProperties.resize( toolCount );
22199     }
22200     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( toolProperties ) );
22201   }
22202 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
22203 
22204   //=== VK_KHR_present_wait ===
22205 
22206 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
22207   // wrapper function for command vkWaitForPresentKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkWaitForPresentKHR.html
22208   template <typename Dispatch>
waitForPresentKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,uint64_t presentId,uint64_t timeout,Dispatch const & d) const22209   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::waitForPresentKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,
22210                                                                            uint64_t                           presentId,
22211                                                                            uint64_t                           timeout,
22212                                                                            Dispatch const &                   d ) const VULKAN_HPP_NOEXCEPT
22213   {
22214     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22215     return static_cast<Result>( d.vkWaitForPresentKHR( static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( swapchain ), presentId, timeout ) );
22216   }
22217 #else
22218   // wrapper function for command vkWaitForPresentKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkWaitForPresentKHR.html
22219   template <typename Dispatch>
22220   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result
waitForPresentKHR(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,uint64_t presentId,uint64_t timeout,Dispatch const & d) const22221     Device::waitForPresentKHR( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, uint64_t presentId, uint64_t timeout, Dispatch const & d ) const
22222   {
22223     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22224 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22225     VULKAN_HPP_ASSERT( d.vkWaitForPresentKHR && "Function <vkWaitForPresentKHR> requires <VK_KHR_present_wait>" );
22226 #  endif
22227 
22228     VULKAN_HPP_NAMESPACE::Result result =
22229       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkWaitForPresentKHR( m_device, static_cast<VkSwapchainKHR>( swapchain ), presentId, timeout ) );
22230     VULKAN_HPP_NAMESPACE::detail::resultCheck(
22231       result,
22232       VULKAN_HPP_NAMESPACE_STRING "::Device::waitForPresentKHR",
22233       { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eTimeout, VULKAN_HPP_NAMESPACE::Result::eSuboptimalKHR } );
22234 
22235     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
22236   }
22237 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
22238 
22239   //=== VK_NV_cooperative_matrix ===
22240 
22241   // wrapper function for command vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, see
22242   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeMatrixPropertiesNV.html
22243   template <typename Dispatch>
getCooperativeMatrixPropertiesNV(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV * pProperties,Dispatch const & d) const22244   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getCooperativeMatrixPropertiesNV(
22245     uint32_t * pPropertyCount, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV * pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
22246   {
22247     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22248     return static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
22249       static_cast<VkPhysicalDevice>( m_physicalDevice ), pPropertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV *>( pProperties ) ) );
22250   }
22251 
22252 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
22253   // wrapper function for command vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, see
22254   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeMatrixPropertiesNV.html
22255   template <typename CooperativeMatrixPropertiesNVAllocator,
22256             typename Dispatch,
22257             typename std::enable_if<
22258               std::is_same<typename CooperativeMatrixPropertiesNVAllocator::value_type, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV>::value,
22259               int>::type>
22260   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
22261     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV, CooperativeMatrixPropertiesNVAllocator>>::type
getCooperativeMatrixPropertiesNV(Dispatch const & d) const22262     PhysicalDevice::getCooperativeMatrixPropertiesNV( Dispatch const & d ) const
22263   {
22264     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22265 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22266     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV &&
22267                        "Function <vkGetPhysicalDeviceCooperativeMatrixPropertiesNV> requires <VK_NV_cooperative_matrix>" );
22268 #  endif
22269 
22270     std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV, CooperativeMatrixPropertiesNVAllocator> properties;
22271     uint32_t                                                                                                 propertyCount;
22272     VULKAN_HPP_NAMESPACE::Result                                                                             result;
22273     do
22274     {
22275       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) );
22276       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
22277       {
22278         properties.resize( propertyCount );
22279         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
22280           m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV *>( properties.data() ) ) );
22281       }
22282     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
22283     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesNV" );
22284     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
22285     if ( propertyCount < properties.size() )
22286     {
22287       properties.resize( propertyCount );
22288     }
22289     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
22290   }
22291 
22292   // wrapper function for command vkGetPhysicalDeviceCooperativeMatrixPropertiesNV, see
22293   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeMatrixPropertiesNV.html
22294   template <typename CooperativeMatrixPropertiesNVAllocator,
22295             typename Dispatch,
22296             typename std::enable_if<
22297               std::is_same<typename CooperativeMatrixPropertiesNVAllocator::value_type, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV>::value,
22298               int>::type>
22299   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
22300     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV, CooperativeMatrixPropertiesNVAllocator>>::type
getCooperativeMatrixPropertiesNV(CooperativeMatrixPropertiesNVAllocator & cooperativeMatrixPropertiesNVAllocator,Dispatch const & d) const22301     PhysicalDevice::getCooperativeMatrixPropertiesNV( CooperativeMatrixPropertiesNVAllocator & cooperativeMatrixPropertiesNVAllocator,
22302                                                       Dispatch const &                         d ) const
22303   {
22304     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22305 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22306     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV &&
22307                        "Function <vkGetPhysicalDeviceCooperativeMatrixPropertiesNV> requires <VK_NV_cooperative_matrix>" );
22308 #  endif
22309 
22310     std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesNV, CooperativeMatrixPropertiesNVAllocator> properties(
22311       cooperativeMatrixPropertiesNVAllocator );
22312     uint32_t                     propertyCount;
22313     VULKAN_HPP_NAMESPACE::Result result;
22314     do
22315     {
22316       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) );
22317       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
22318       {
22319         properties.resize( propertyCount );
22320         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesNV(
22321           m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesNV *>( properties.data() ) ) );
22322       }
22323     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
22324     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesNV" );
22325     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
22326     if ( propertyCount < properties.size() )
22327     {
22328       properties.resize( propertyCount );
22329     }
22330     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
22331   }
22332 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
22333 
22334   //=== VK_NV_coverage_reduction_mode ===
22335 
22336   // wrapper function for command vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, see
22337   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV.html
22338   template <typename Dispatch>
getSupportedFramebufferMixedSamplesCombinationsNV(uint32_t * pCombinationCount,VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV * pCombinations,Dispatch const & d) const22339   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV(
22340     uint32_t * pCombinationCount, VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV * pCombinations, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
22341   {
22342     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22343     return static_cast<Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
22344       static_cast<VkPhysicalDevice>( m_physicalDevice ), pCombinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV *>( pCombinations ) ) );
22345   }
22346 
22347 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
22348   // wrapper function for command vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, see
22349   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV.html
22350   template <typename FramebufferMixedSamplesCombinationNVAllocator,
22351             typename Dispatch,
22352             typename std::enable_if<std::is_same<typename FramebufferMixedSamplesCombinationNVAllocator::value_type,
22353                                                  VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV>::value,
22354                                     int>::type>
22355   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
22356     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV, FramebufferMixedSamplesCombinationNVAllocator>>::type
getSupportedFramebufferMixedSamplesCombinationsNV(Dispatch const & d) const22357     PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV( Dispatch const & d ) const
22358   {
22359     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22360 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22361     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV &&
22362                        "Function <vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV> requires <VK_NV_coverage_reduction_mode>" );
22363 #  endif
22364 
22365     std::vector<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV, FramebufferMixedSamplesCombinationNVAllocator> combinations;
22366     uint32_t                                                                                                               combinationCount;
22367     VULKAN_HPP_NAMESPACE::Result                                                                                           result;
22368     do
22369     {
22370       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
22371         d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) );
22372       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && combinationCount )
22373       {
22374         combinations.resize( combinationCount );
22375         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
22376           m_physicalDevice, &combinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV *>( combinations.data() ) ) );
22377       }
22378     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
22379     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" );
22380     VULKAN_HPP_ASSERT( combinationCount <= combinations.size() );
22381     if ( combinationCount < combinations.size() )
22382     {
22383       combinations.resize( combinationCount );
22384     }
22385     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( combinations ) );
22386   }
22387 
22388   // wrapper function for command vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV, see
22389   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV.html
22390   template <typename FramebufferMixedSamplesCombinationNVAllocator,
22391             typename Dispatch,
22392             typename std::enable_if<std::is_same<typename FramebufferMixedSamplesCombinationNVAllocator::value_type,
22393                                                  VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV>::value,
22394                                     int>::type>
22395   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
22396     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV, FramebufferMixedSamplesCombinationNVAllocator>>::type
getSupportedFramebufferMixedSamplesCombinationsNV(FramebufferMixedSamplesCombinationNVAllocator & framebufferMixedSamplesCombinationNVAllocator,Dispatch const & d) const22397     PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV(
22398       FramebufferMixedSamplesCombinationNVAllocator & framebufferMixedSamplesCombinationNVAllocator, Dispatch const & d ) const
22399   {
22400     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22401 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22402     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV &&
22403                        "Function <vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV> requires <VK_NV_coverage_reduction_mode>" );
22404 #  endif
22405 
22406     std::vector<VULKAN_HPP_NAMESPACE::FramebufferMixedSamplesCombinationNV, FramebufferMixedSamplesCombinationNVAllocator> combinations(
22407       framebufferMixedSamplesCombinationNVAllocator );
22408     uint32_t                     combinationCount;
22409     VULKAN_HPP_NAMESPACE::Result result;
22410     do
22411     {
22412       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
22413         d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV( m_physicalDevice, &combinationCount, nullptr ) );
22414       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && combinationCount )
22415       {
22416         combinations.resize( combinationCount );
22417         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSupportedFramebufferMixedSamplesCombinationsNV(
22418           m_physicalDevice, &combinationCount, reinterpret_cast<VkFramebufferMixedSamplesCombinationNV *>( combinations.data() ) ) );
22419       }
22420     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
22421     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSupportedFramebufferMixedSamplesCombinationsNV" );
22422     VULKAN_HPP_ASSERT( combinationCount <= combinations.size() );
22423     if ( combinationCount < combinations.size() )
22424     {
22425       combinations.resize( combinationCount );
22426     }
22427     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( combinations ) );
22428   }
22429 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
22430 
22431 #if defined( VK_USE_PLATFORM_WIN32_KHR )
22432   //=== VK_EXT_full_screen_exclusive ===
22433 
22434   // wrapper function for command vkGetPhysicalDeviceSurfacePresentModes2EXT, see
22435   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfacePresentModes2EXT.html
22436   template <typename Dispatch>
22437   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getSurfacePresentModes2EXT(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,uint32_t * pPresentModeCount,VULKAN_HPP_NAMESPACE::PresentModeKHR * pPresentModes,Dispatch const & d) const22438     PhysicalDevice::getSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,
22439                                                 uint32_t *                                                  pPresentModeCount,
22440                                                 VULKAN_HPP_NAMESPACE::PresentModeKHR *                      pPresentModes,
22441                                                 Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
22442   {
22443     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22444     return static_cast<Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT( static_cast<VkPhysicalDevice>( m_physicalDevice ),
22445                                                                               reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( pSurfaceInfo ),
22446                                                                               pPresentModeCount,
22447                                                                               reinterpret_cast<VkPresentModeKHR *>( pPresentModes ) ) );
22448   }
22449 
22450 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
22451   // wrapper function for command vkGetPhysicalDeviceSurfacePresentModes2EXT, see
22452   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfacePresentModes2EXT.html
22453   template <typename PresentModeKHRAllocator,
22454             typename Dispatch,
22455             typename std::enable_if<std::is_same<typename PresentModeKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::PresentModeKHR>::value, int>::type>
22456   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR, PresentModeKHRAllocator>>::type
getSurfacePresentModes2EXT(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const22457     PhysicalDevice::getSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const
22458   {
22459     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22460 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22461     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceSurfacePresentModes2EXT &&
22462                        "Function <vkGetPhysicalDeviceSurfacePresentModes2EXT> requires <VK_EXT_full_screen_exclusive>" );
22463 #    endif
22464 
22465     std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR, PresentModeKHRAllocator> presentModes;
22466     uint32_t                                                                   presentModeCount;
22467     VULKAN_HPP_NAMESPACE::Result                                               result;
22468     do
22469     {
22470       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT(
22471         m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &presentModeCount, nullptr ) );
22472       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentModeCount )
22473       {
22474         presentModes.resize( presentModeCount );
22475         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
22476           d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice,
22477                                                         reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
22478                                                         &presentModeCount,
22479                                                         reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) ) );
22480       }
22481     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
22482     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModes2EXT" );
22483     VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
22484     if ( presentModeCount < presentModes.size() )
22485     {
22486       presentModes.resize( presentModeCount );
22487     }
22488     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( presentModes ) );
22489   }
22490 
22491   // wrapper function for command vkGetPhysicalDeviceSurfacePresentModes2EXT, see
22492   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceSurfacePresentModes2EXT.html
22493   template <typename PresentModeKHRAllocator,
22494             typename Dispatch,
22495             typename std::enable_if<std::is_same<typename PresentModeKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::PresentModeKHR>::value, int>::type>
22496   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR, PresentModeKHRAllocator>>::type
getSurfacePresentModes2EXT(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,PresentModeKHRAllocator & presentModeKHRAllocator,Dispatch const & d) const22497                        PhysicalDevice::getSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,
22498                                                 PresentModeKHRAllocator &                                   presentModeKHRAllocator,
22499                                                 Dispatch const &                                            d ) const
22500   {
22501     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22502 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22503     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceSurfacePresentModes2EXT &&
22504                        "Function <vkGetPhysicalDeviceSurfacePresentModes2EXT> requires <VK_EXT_full_screen_exclusive>" );
22505 #    endif
22506 
22507     std::vector<VULKAN_HPP_NAMESPACE::PresentModeKHR, PresentModeKHRAllocator> presentModes( presentModeKHRAllocator );
22508     uint32_t                                                                   presentModeCount;
22509     VULKAN_HPP_NAMESPACE::Result                                               result;
22510     do
22511     {
22512       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceSurfacePresentModes2EXT(
22513         m_physicalDevice, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), &presentModeCount, nullptr ) );
22514       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && presentModeCount )
22515       {
22516         presentModes.resize( presentModeCount );
22517         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
22518           d.vkGetPhysicalDeviceSurfacePresentModes2EXT( m_physicalDevice,
22519                                                         reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ),
22520                                                         &presentModeCount,
22521                                                         reinterpret_cast<VkPresentModeKHR *>( presentModes.data() ) ) );
22522       }
22523     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
22524     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getSurfacePresentModes2EXT" );
22525     VULKAN_HPP_ASSERT( presentModeCount <= presentModes.size() );
22526     if ( presentModeCount < presentModes.size() )
22527     {
22528       presentModes.resize( presentModeCount );
22529     }
22530     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( presentModes ) );
22531   }
22532 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
22533 
22534 #  ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
22535   // wrapper function for command vkAcquireFullScreenExclusiveModeEXT, see
22536   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireFullScreenExclusiveModeEXT.html
22537   template <typename Dispatch>
acquireFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const22538   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,
22539                                                                                            Dispatch const &                   d ) const VULKAN_HPP_NOEXCEPT
22540   {
22541     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22542     return static_cast<Result>( d.vkAcquireFullScreenExclusiveModeEXT( static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( swapchain ) ) );
22543   }
22544 #  else
22545   // wrapper function for command vkAcquireFullScreenExclusiveModeEXT, see
22546   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireFullScreenExclusiveModeEXT.html
22547   template <typename Dispatch>
22548   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
acquireFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const22549     Device::acquireFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
22550   {
22551     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22552 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22553     VULKAN_HPP_ASSERT( d.vkAcquireFullScreenExclusiveModeEXT && "Function <vkAcquireFullScreenExclusiveModeEXT> requires <VK_EXT_full_screen_exclusive>" );
22554 #    endif
22555 
22556     VULKAN_HPP_NAMESPACE::Result result =
22557       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAcquireFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
22558     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::acquireFullScreenExclusiveModeEXT" );
22559 
22560     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
22561   }
22562 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
22563 
22564 #  ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
22565   // wrapper function for command vkReleaseFullScreenExclusiveModeEXT, see
22566   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseFullScreenExclusiveModeEXT.html
22567   template <typename Dispatch>
releaseFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const22568   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,
22569                                                                                            Dispatch const &                   d ) const VULKAN_HPP_NOEXCEPT
22570   {
22571     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22572     return static_cast<Result>( d.vkReleaseFullScreenExclusiveModeEXT( static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( swapchain ) ) );
22573   }
22574 #  else
22575   // wrapper function for command vkReleaseFullScreenExclusiveModeEXT, see
22576   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseFullScreenExclusiveModeEXT.html
22577   template <typename Dispatch>
22578   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
releaseFullScreenExclusiveModeEXT(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const22579     Device::releaseFullScreenExclusiveModeEXT( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
22580   {
22581     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22582 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22583     VULKAN_HPP_ASSERT( d.vkReleaseFullScreenExclusiveModeEXT && "Function <vkReleaseFullScreenExclusiveModeEXT> requires <VK_EXT_full_screen_exclusive>" );
22584 #    endif
22585 
22586     VULKAN_HPP_NAMESPACE::Result result =
22587       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkReleaseFullScreenExclusiveModeEXT( m_device, static_cast<VkSwapchainKHR>( swapchain ) ) );
22588     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releaseFullScreenExclusiveModeEXT" );
22589 
22590     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
22591   }
22592 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
22593 
22594   // wrapper function for command vkGetDeviceGroupSurfacePresentModes2EXT, see
22595   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceGroupSurfacePresentModes2EXT.html
22596   template <typename Dispatch>
22597   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getGroupSurfacePresentModes2EXT(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR * pModes,Dispatch const & d) const22598     Device::getGroupSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR * pSurfaceInfo,
22599                                              VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR *      pModes,
22600                                              Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
22601   {
22602     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22603     return static_cast<Result>( d.vkGetDeviceGroupSurfacePresentModes2EXT( static_cast<VkDevice>( m_device ),
22604                                                                            reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( pSurfaceInfo ),
22605                                                                            reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR *>( pModes ) ) );
22606   }
22607 
22608 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
22609   // wrapper function for command vkGetDeviceGroupSurfacePresentModes2EXT, see
22610   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceGroupSurfacePresentModes2EXT.html
22611   template <typename Dispatch>
22612   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR>::type
getGroupSurfacePresentModes2EXT(const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo,Dispatch const & d) const22613     Device::getGroupSurfacePresentModes2EXT( const VULKAN_HPP_NAMESPACE::PhysicalDeviceSurfaceInfo2KHR & surfaceInfo, Dispatch const & d ) const
22614   {
22615     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22616 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22617     VULKAN_HPP_ASSERT( d.vkGetDeviceGroupSurfacePresentModes2EXT &&
22618                        "Function <vkGetDeviceGroupSurfacePresentModes2EXT> requires <VK_EXT_full_screen_exclusive>" );
22619 #    endif
22620 
22621     VULKAN_HPP_NAMESPACE::DeviceGroupPresentModeFlagsKHR modes;
22622     VULKAN_HPP_NAMESPACE::Result                         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDeviceGroupSurfacePresentModes2EXT(
22623       m_device, reinterpret_cast<const VkPhysicalDeviceSurfaceInfo2KHR *>( &surfaceInfo ), reinterpret_cast<VkDeviceGroupPresentModeFlagsKHR *>( &modes ) ) );
22624     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getGroupSurfacePresentModes2EXT" );
22625 
22626     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( modes ) );
22627   }
22628 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
22629 #endif   /*VK_USE_PLATFORM_WIN32_KHR*/
22630 
22631   //=== VK_EXT_headless_surface ===
22632 
22633   // wrapper function for command vkCreateHeadlessSurfaceEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateHeadlessSurfaceEXT.html
22634   template <typename Dispatch>
createHeadlessSurfaceEXT(const VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const22635   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createHeadlessSurfaceEXT( const VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT * pCreateInfo,
22636                                                                                     const VULKAN_HPP_NAMESPACE::AllocationCallbacks *          pAllocator,
22637                                                                                     VULKAN_HPP_NAMESPACE::SurfaceKHR *                         pSurface,
22638                                                                                     Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
22639   {
22640     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22641     return static_cast<Result>( d.vkCreateHeadlessSurfaceEXT( static_cast<VkInstance>( m_instance ),
22642                                                               reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT *>( pCreateInfo ),
22643                                                               reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
22644                                                               reinterpret_cast<VkSurfaceKHR *>( pSurface ) ) );
22645   }
22646 
22647 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
22648   // wrapper function for command vkCreateHeadlessSurfaceEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateHeadlessSurfaceEXT.html
22649   template <typename Dispatch>
22650   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type
createHeadlessSurfaceEXT(const VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const22651                        Instance::createHeadlessSurfaceEXT( const VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT & createInfo,
22652                                         Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>  allocator,
22653                                         Dispatch const &                                           d ) const
22654   {
22655     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22656 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22657     VULKAN_HPP_ASSERT( d.vkCreateHeadlessSurfaceEXT && "Function <vkCreateHeadlessSurfaceEXT> requires <VK_EXT_headless_surface>" );
22658 #  endif
22659 
22660     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
22661     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateHeadlessSurfaceEXT(
22662       m_instance,
22663       reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT *>( &createInfo ),
22664       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
22665       reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
22666     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createHeadlessSurfaceEXT" );
22667 
22668     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surface ) );
22669   }
22670 
22671 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
22672   // wrapper function for command vkCreateHeadlessSurfaceEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateHeadlessSurfaceEXT.html
22673   template <typename Dispatch>
22674   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type
createHeadlessSurfaceEXTUnique(const VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const22675                        Instance::createHeadlessSurfaceEXTUnique( const VULKAN_HPP_NAMESPACE::HeadlessSurfaceCreateInfoEXT & createInfo,
22676                                               Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>  allocator,
22677                                               Dispatch const &                                           d ) const
22678   {
22679     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22680 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22681     VULKAN_HPP_ASSERT( d.vkCreateHeadlessSurfaceEXT && "Function <vkCreateHeadlessSurfaceEXT> requires <VK_EXT_headless_surface>" );
22682 #    endif
22683 
22684     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
22685     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateHeadlessSurfaceEXT(
22686       m_instance,
22687       reinterpret_cast<const VkHeadlessSurfaceCreateInfoEXT *>( &createInfo ),
22688       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
22689       reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
22690     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createHeadlessSurfaceEXTUnique" );
22691 
22692     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
22693       result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, detail::ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
22694   }
22695 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
22696 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
22697 
22698   //=== VK_KHR_buffer_device_address ===
22699 
22700   // wrapper function for command vkGetBufferDeviceAddressKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferDeviceAddressKHR.html
22701   template <typename Dispatch>
getBufferAddressKHR(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const22702   VULKAN_HPP_INLINE DeviceAddress Device::getBufferAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,
22703                                                                Dispatch const &                                      d ) const VULKAN_HPP_NOEXCEPT
22704   {
22705     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22706     return static_cast<DeviceAddress>(
22707       d.vkGetBufferDeviceAddressKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) ) );
22708   }
22709 
22710 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
22711   // wrapper function for command vkGetBufferDeviceAddressKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferDeviceAddressKHR.html
22712   template <typename Dispatch>
getBufferAddressKHR(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info,Dispatch const & d) const22713   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress Device::getBufferAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info,
22714                                                                                      Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
22715   {
22716     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22717 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22718     VULKAN_HPP_ASSERT( d.vkGetBufferDeviceAddressKHR &&
22719                        "Function <vkGetBufferDeviceAddressKHR> requires <VK_EXT_buffer_device_address> or <VK_KHR_buffer_device_address> or <VK_VERSION_1_2>" );
22720 #  endif
22721 
22722     VkDeviceAddress result = d.vkGetBufferDeviceAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
22723 
22724     return static_cast<VULKAN_HPP_NAMESPACE::DeviceAddress>( result );
22725   }
22726 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
22727 
22728   // wrapper function for command vkGetBufferOpaqueCaptureAddressKHR, see
22729   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferOpaqueCaptureAddressKHR.html
22730   template <typename Dispatch>
getBufferOpaqueCaptureAddressKHR(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,Dispatch const & d) const22731   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo * pInfo,
22732                                                                        Dispatch const &                                      d ) const VULKAN_HPP_NOEXCEPT
22733   {
22734     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22735     return d.vkGetBufferOpaqueCaptureAddressKHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferDeviceAddressInfo *>( pInfo ) );
22736   }
22737 
22738 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
22739   // wrapper function for command vkGetBufferOpaqueCaptureAddressKHR, see
22740   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferOpaqueCaptureAddressKHR.html
22741   template <typename Dispatch>
getBufferOpaqueCaptureAddressKHR(const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info,Dispatch const & d) const22742   VULKAN_HPP_INLINE uint64_t Device::getBufferOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::BufferDeviceAddressInfo & info,
22743                                                                        Dispatch const &                                      d ) const VULKAN_HPP_NOEXCEPT
22744   {
22745     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22746 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22747     VULKAN_HPP_ASSERT( d.vkGetBufferOpaqueCaptureAddressKHR &&
22748                        "Function <vkGetBufferOpaqueCaptureAddressKHR> requires <VK_KHR_buffer_device_address> or <VK_VERSION_1_2>" );
22749 #  endif
22750 
22751     uint64_t result = d.vkGetBufferOpaqueCaptureAddressKHR( m_device, reinterpret_cast<const VkBufferDeviceAddressInfo *>( &info ) );
22752 
22753     return result;
22754   }
22755 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
22756 
22757   // wrapper function for command vkGetDeviceMemoryOpaqueCaptureAddressKHR, see
22758   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceMemoryOpaqueCaptureAddressKHR.html
22759   template <typename Dispatch>
getMemoryOpaqueCaptureAddressKHR(const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo * pInfo,Dispatch const & d) const22760   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo * pInfo,
22761                                                                        Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
22762   {
22763     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22764     return d.vkGetDeviceMemoryOpaqueCaptureAddressKHR( static_cast<VkDevice>( m_device ),
22765                                                        reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( pInfo ) );
22766   }
22767 
22768 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
22769   // wrapper function for command vkGetDeviceMemoryOpaqueCaptureAddressKHR, see
22770   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceMemoryOpaqueCaptureAddressKHR.html
22771   template <typename Dispatch>
getMemoryOpaqueCaptureAddressKHR(const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo & info,Dispatch const & d) const22772   VULKAN_HPP_INLINE uint64_t Device::getMemoryOpaqueCaptureAddressKHR( const VULKAN_HPP_NAMESPACE::DeviceMemoryOpaqueCaptureAddressInfo & info,
22773                                                                        Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
22774   {
22775     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22776 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22777     VULKAN_HPP_ASSERT( d.vkGetDeviceMemoryOpaqueCaptureAddressKHR &&
22778                        "Function <vkGetDeviceMemoryOpaqueCaptureAddressKHR> requires <VK_KHR_buffer_device_address> or <VK_VERSION_1_2>" );
22779 #  endif
22780 
22781     uint64_t result = d.vkGetDeviceMemoryOpaqueCaptureAddressKHR( m_device, reinterpret_cast<const VkDeviceMemoryOpaqueCaptureAddressInfo *>( &info ) );
22782 
22783     return result;
22784   }
22785 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
22786 
22787   //=== VK_EXT_line_rasterization ===
22788 
22789   // wrapper function for command vkCmdSetLineStippleEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetLineStippleEXT.html
22790   template <typename Dispatch>
22791   VULKAN_HPP_INLINE void
setLineStippleEXT(uint32_t lineStippleFactor,uint16_t lineStipplePattern,Dispatch const & d) const22792     CommandBuffer::setLineStippleEXT( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
22793   {
22794     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22795     d.vkCmdSetLineStippleEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), lineStippleFactor, lineStipplePattern );
22796   }
22797 
22798   //=== VK_EXT_host_query_reset ===
22799 
22800   // wrapper function for command vkResetQueryPoolEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkResetQueryPoolEXT.html
22801   template <typename Dispatch>
resetQueryPoolEXT(VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,uint32_t queryCount,Dispatch const & d) const22802   VULKAN_HPP_INLINE void Device::resetQueryPoolEXT( VULKAN_HPP_NAMESPACE::QueryPool queryPool,
22803                                                     uint32_t                        firstQuery,
22804                                                     uint32_t                        queryCount,
22805                                                     Dispatch const &                d ) const VULKAN_HPP_NOEXCEPT
22806   {
22807     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22808     d.vkResetQueryPoolEXT( static_cast<VkDevice>( m_device ), static_cast<VkQueryPool>( queryPool ), firstQuery, queryCount );
22809   }
22810 
22811   //=== VK_EXT_extended_dynamic_state ===
22812 
22813   // wrapper function for command vkCmdSetCullModeEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetCullModeEXT.html
22814   template <typename Dispatch>
setCullModeEXT(VULKAN_HPP_NAMESPACE::CullModeFlags cullMode,Dispatch const & d) const22815   VULKAN_HPP_INLINE void CommandBuffer::setCullModeEXT( VULKAN_HPP_NAMESPACE::CullModeFlags cullMode, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
22816   {
22817     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22818     d.vkCmdSetCullModeEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkCullModeFlags>( cullMode ) );
22819   }
22820 
22821   // wrapper function for command vkCmdSetFrontFaceEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetFrontFaceEXT.html
22822   template <typename Dispatch>
setFrontFaceEXT(VULKAN_HPP_NAMESPACE::FrontFace frontFace,Dispatch const & d) const22823   VULKAN_HPP_INLINE void CommandBuffer::setFrontFaceEXT( VULKAN_HPP_NAMESPACE::FrontFace frontFace, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
22824   {
22825     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22826     d.vkCmdSetFrontFaceEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkFrontFace>( frontFace ) );
22827   }
22828 
22829   // wrapper function for command vkCmdSetPrimitiveTopologyEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPrimitiveTopologyEXT.html
22830   template <typename Dispatch>
setPrimitiveTopologyEXT(VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology,Dispatch const & d) const22831   VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveTopologyEXT( VULKAN_HPP_NAMESPACE::PrimitiveTopology primitiveTopology,
22832                                                                  Dispatch const &                        d ) const VULKAN_HPP_NOEXCEPT
22833   {
22834     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22835     d.vkCmdSetPrimitiveTopologyEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPrimitiveTopology>( primitiveTopology ) );
22836   }
22837 
22838   // wrapper function for command vkCmdSetViewportWithCountEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetViewportWithCountEXT.html
22839   template <typename Dispatch>
setViewportWithCountEXT(uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::Viewport * pViewports,Dispatch const & d) const22840   VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCountEXT( uint32_t                               viewportCount,
22841                                                                  const VULKAN_HPP_NAMESPACE::Viewport * pViewports,
22842                                                                  Dispatch const &                       d ) const VULKAN_HPP_NOEXCEPT
22843   {
22844     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22845     d.vkCmdSetViewportWithCountEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), viewportCount, reinterpret_cast<const VkViewport *>( pViewports ) );
22846   }
22847 
22848 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
22849   // wrapper function for command vkCmdSetViewportWithCountEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetViewportWithCountEXT.html
22850   template <typename Dispatch>
setViewportWithCountEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports,Dispatch const & d) const22851   VULKAN_HPP_INLINE void CommandBuffer::setViewportWithCountEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Viewport> const & viewports,
22852                                                                  Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
22853   {
22854     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22855 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22856     VULKAN_HPP_ASSERT( d.vkCmdSetViewportWithCountEXT &&
22857                        "Function <vkCmdSetViewportWithCountEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
22858 #  endif
22859 
22860     d.vkCmdSetViewportWithCountEXT( m_commandBuffer, viewports.size(), reinterpret_cast<const VkViewport *>( viewports.data() ) );
22861   }
22862 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
22863 
22864   // wrapper function for command vkCmdSetScissorWithCountEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetScissorWithCountEXT.html
22865   template <typename Dispatch>
22866   VULKAN_HPP_INLINE void
setScissorWithCountEXT(uint32_t scissorCount,const VULKAN_HPP_NAMESPACE::Rect2D * pScissors,Dispatch const & d) const22867     CommandBuffer::setScissorWithCountEXT( uint32_t scissorCount, const VULKAN_HPP_NAMESPACE::Rect2D * pScissors, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
22868   {
22869     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22870     d.vkCmdSetScissorWithCountEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), scissorCount, reinterpret_cast<const VkRect2D *>( pScissors ) );
22871   }
22872 
22873 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
22874   // wrapper function for command vkCmdSetScissorWithCountEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetScissorWithCountEXT.html
22875   template <typename Dispatch>
setScissorWithCountEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors,Dispatch const & d) const22876   VULKAN_HPP_INLINE void CommandBuffer::setScissorWithCountEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Rect2D> const & scissors,
22877                                                                 Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
22878   {
22879     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22880 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22881     VULKAN_HPP_ASSERT( d.vkCmdSetScissorWithCountEXT &&
22882                        "Function <vkCmdSetScissorWithCountEXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
22883 #  endif
22884 
22885     d.vkCmdSetScissorWithCountEXT( m_commandBuffer, scissors.size(), reinterpret_cast<const VkRect2D *>( scissors.data() ) );
22886   }
22887 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
22888 
22889   // wrapper function for command vkCmdBindVertexBuffers2EXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindVertexBuffers2EXT.html
22890   template <typename Dispatch>
bindVertexBuffers2EXT(uint32_t firstBinding,uint32_t bindingCount,const VULKAN_HPP_NAMESPACE::Buffer * pBuffers,const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets,const VULKAN_HPP_NAMESPACE::DeviceSize * pSizes,const VULKAN_HPP_NAMESPACE::DeviceSize * pStrides,Dispatch const & d) const22891   VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers2EXT( uint32_t                                 firstBinding,
22892                                                                uint32_t                                 bindingCount,
22893                                                                const VULKAN_HPP_NAMESPACE::Buffer *     pBuffers,
22894                                                                const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets,
22895                                                                const VULKAN_HPP_NAMESPACE::DeviceSize * pSizes,
22896                                                                const VULKAN_HPP_NAMESPACE::DeviceSize * pStrides,
22897                                                                Dispatch const &                         d ) const VULKAN_HPP_NOEXCEPT
22898   {
22899     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22900     d.vkCmdBindVertexBuffers2EXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
22901                                   firstBinding,
22902                                   bindingCount,
22903                                   reinterpret_cast<const VkBuffer *>( pBuffers ),
22904                                   reinterpret_cast<const VkDeviceSize *>( pOffsets ),
22905                                   reinterpret_cast<const VkDeviceSize *>( pSizes ),
22906                                   reinterpret_cast<const VkDeviceSize *>( pStrides ) );
22907   }
22908 
22909 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
22910   // wrapper function for command vkCmdBindVertexBuffers2EXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindVertexBuffers2EXT.html
22911   template <typename Dispatch>
bindVertexBuffers2EXT(uint32_t firstBinding,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const & buffers,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & strides,Dispatch const & d) const22912   VULKAN_HPP_INLINE void CommandBuffer::bindVertexBuffers2EXT( uint32_t                                                                         firstBinding,
22913                                                                VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Buffer> const &     buffers,
22914                                                                VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets,
22915                                                                VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & sizes,
22916                                                                VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & strides,
22917                                                                Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
22918   {
22919     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22920 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
22921     VULKAN_HPP_ASSERT( d.vkCmdBindVertexBuffers2EXT &&
22922                        "Function <vkCmdBindVertexBuffers2EXT> requires <VK_EXT_extended_dynamic_state> or <VK_EXT_shader_object> or <VK_VERSION_1_3>" );
22923 #  endif
22924 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
22925     VULKAN_HPP_ASSERT( buffers.size() == offsets.size() );
22926     VULKAN_HPP_ASSERT( sizes.empty() || buffers.size() == sizes.size() );
22927     VULKAN_HPP_ASSERT( strides.empty() || buffers.size() == strides.size() );
22928 #  else
22929     if ( buffers.size() != offsets.size() )
22930     {
22931       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != offsets.size()" );
22932     }
22933     if ( !sizes.empty() && buffers.size() != sizes.size() )
22934     {
22935       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != sizes.size()" );
22936     }
22937     if ( !strides.empty() && buffers.size() != strides.size() )
22938     {
22939       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindVertexBuffers2EXT: buffers.size() != strides.size()" );
22940     }
22941 #  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
22942 
22943     d.vkCmdBindVertexBuffers2EXT( m_commandBuffer,
22944                                   firstBinding,
22945                                   buffers.size(),
22946                                   reinterpret_cast<const VkBuffer *>( buffers.data() ),
22947                                   reinterpret_cast<const VkDeviceSize *>( offsets.data() ),
22948                                   reinterpret_cast<const VkDeviceSize *>( sizes.data() ),
22949                                   reinterpret_cast<const VkDeviceSize *>( strides.data() ) );
22950   }
22951 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
22952 
22953   // wrapper function for command vkCmdSetDepthTestEnableEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthTestEnableEXT.html
22954   template <typename Dispatch>
setDepthTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable,Dispatch const & d) const22955   VULKAN_HPP_INLINE void CommandBuffer::setDepthTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthTestEnable, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
22956   {
22957     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22958     d.vkCmdSetDepthTestEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthTestEnable ) );
22959   }
22960 
22961   // wrapper function for command vkCmdSetDepthWriteEnableEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthWriteEnableEXT.html
22962   template <typename Dispatch>
setDepthWriteEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable,Dispatch const & d) const22963   VULKAN_HPP_INLINE void CommandBuffer::setDepthWriteEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthWriteEnable, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
22964   {
22965     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22966     d.vkCmdSetDepthWriteEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthWriteEnable ) );
22967   }
22968 
22969   // wrapper function for command vkCmdSetDepthCompareOpEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthCompareOpEXT.html
22970   template <typename Dispatch>
setDepthCompareOpEXT(VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp,Dispatch const & d) const22971   VULKAN_HPP_INLINE void CommandBuffer::setDepthCompareOpEXT( VULKAN_HPP_NAMESPACE::CompareOp depthCompareOp, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
22972   {
22973     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22974     d.vkCmdSetDepthCompareOpEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkCompareOp>( depthCompareOp ) );
22975   }
22976 
22977   // wrapper function for command vkCmdSetDepthBoundsTestEnableEXT, see
22978   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthBoundsTestEnableEXT.html
22979   template <typename Dispatch>
setDepthBoundsTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable,Dispatch const & d) const22980   VULKAN_HPP_INLINE void CommandBuffer::setDepthBoundsTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBoundsTestEnable,
22981                                                                      Dispatch const &             d ) const VULKAN_HPP_NOEXCEPT
22982   {
22983     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22984     d.vkCmdSetDepthBoundsTestEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthBoundsTestEnable ) );
22985   }
22986 
22987   // wrapper function for command vkCmdSetStencilTestEnableEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetStencilTestEnableEXT.html
22988   template <typename Dispatch>
setStencilTestEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable,Dispatch const & d) const22989   VULKAN_HPP_INLINE void CommandBuffer::setStencilTestEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stencilTestEnable, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
22990   {
22991     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
22992     d.vkCmdSetStencilTestEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( stencilTestEnable ) );
22993   }
22994 
22995   // wrapper function for command vkCmdSetStencilOpEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetStencilOpEXT.html
22996   template <typename Dispatch>
setStencilOpEXT(VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,VULKAN_HPP_NAMESPACE::StencilOp failOp,VULKAN_HPP_NAMESPACE::StencilOp passOp,VULKAN_HPP_NAMESPACE::StencilOp depthFailOp,VULKAN_HPP_NAMESPACE::CompareOp compareOp,Dispatch const & d) const22997   VULKAN_HPP_INLINE void CommandBuffer::setStencilOpEXT( VULKAN_HPP_NAMESPACE::StencilFaceFlags faceMask,
22998                                                          VULKAN_HPP_NAMESPACE::StencilOp        failOp,
22999                                                          VULKAN_HPP_NAMESPACE::StencilOp        passOp,
23000                                                          VULKAN_HPP_NAMESPACE::StencilOp        depthFailOp,
23001                                                          VULKAN_HPP_NAMESPACE::CompareOp        compareOp,
23002                                                          Dispatch const &                       d ) const VULKAN_HPP_NOEXCEPT
23003   {
23004     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23005     d.vkCmdSetStencilOpEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
23006                             static_cast<VkStencilFaceFlags>( faceMask ),
23007                             static_cast<VkStencilOp>( failOp ),
23008                             static_cast<VkStencilOp>( passOp ),
23009                             static_cast<VkStencilOp>( depthFailOp ),
23010                             static_cast<VkCompareOp>( compareOp ) );
23011   }
23012 
23013   //=== VK_KHR_deferred_host_operations ===
23014 
23015   // wrapper function for command vkCreateDeferredOperationKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDeferredOperationKHR.html
23016   template <typename Dispatch>
createDeferredOperationKHR(const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::DeferredOperationKHR * pDeferredOperation,Dispatch const & d) const23017   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createDeferredOperationKHR( const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
23018                                                                                     VULKAN_HPP_NAMESPACE::DeferredOperationKHR *      pDeferredOperation,
23019                                                                                     Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
23020   {
23021     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23022     return static_cast<Result>( d.vkCreateDeferredOperationKHR( static_cast<VkDevice>( m_device ),
23023                                                                 reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
23024                                                                 reinterpret_cast<VkDeferredOperationKHR *>( pDeferredOperation ) ) );
23025   }
23026 
23027 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
23028   // wrapper function for command vkCreateDeferredOperationKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDeferredOperationKHR.html
23029   template <typename Dispatch>
23030   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DeferredOperationKHR>::type
createDeferredOperationKHR(Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const23031                        Device::createDeferredOperationKHR( Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator, Dispatch const & d ) const
23032   {
23033     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23034 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23035     VULKAN_HPP_ASSERT( d.vkCreateDeferredOperationKHR && "Function <vkCreateDeferredOperationKHR> requires <VK_KHR_deferred_host_operations>" );
23036 #  endif
23037 
23038     VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation;
23039     VULKAN_HPP_NAMESPACE::Result               result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDeferredOperationKHR(
23040       m_device,
23041       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
23042       reinterpret_cast<VkDeferredOperationKHR *>( &deferredOperation ) ) );
23043     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createDeferredOperationKHR" );
23044 
23045     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( deferredOperation ) );
23046   }
23047 
23048 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
23049   // wrapper function for command vkCreateDeferredOperationKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDeferredOperationKHR.html
23050   template <typename Dispatch>
23051   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DeferredOperationKHR, Dispatch>>::type
createDeferredOperationKHRUnique(Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const23052                        Device::createDeferredOperationKHRUnique( Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator, Dispatch const & d ) const
23053   {
23054     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23055 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23056     VULKAN_HPP_ASSERT( d.vkCreateDeferredOperationKHR && "Function <vkCreateDeferredOperationKHR> requires <VK_KHR_deferred_host_operations>" );
23057 #    endif
23058 
23059     VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation;
23060     VULKAN_HPP_NAMESPACE::Result               result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDeferredOperationKHR(
23061       m_device,
23062       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
23063       reinterpret_cast<VkDeferredOperationKHR *>( &deferredOperation ) ) );
23064     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createDeferredOperationKHRUnique" );
23065 
23066     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
23067       result,
23068       UniqueHandle<VULKAN_HPP_NAMESPACE::DeferredOperationKHR, Dispatch>( deferredOperation, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
23069   }
23070 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
23071 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
23072 
23073   // wrapper function for command vkDestroyDeferredOperationKHR, see
23074   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDeferredOperationKHR.html
23075   template <typename Dispatch>
destroyDeferredOperationKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const23076   VULKAN_HPP_INLINE void Device::destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR        operation,
23077                                                               const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
23078                                                               Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
23079   {
23080     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23081     d.vkDestroyDeferredOperationKHR(
23082       static_cast<VkDevice>( m_device ), static_cast<VkDeferredOperationKHR>( operation ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
23083   }
23084 
23085 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
23086   // wrapper function for command vkDestroyDeferredOperationKHR, see
23087   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDeferredOperationKHR.html
23088   template <typename Dispatch>
destroyDeferredOperationKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const23089   VULKAN_HPP_INLINE void Device::destroyDeferredOperationKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                operation,
23090                                                               Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
23091                                                               Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
23092   {
23093     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23094 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23095     VULKAN_HPP_ASSERT( d.vkDestroyDeferredOperationKHR && "Function <vkDestroyDeferredOperationKHR> requires <VK_KHR_deferred_host_operations>" );
23096 #  endif
23097 
23098     d.vkDestroyDeferredOperationKHR(
23099       m_device,
23100       static_cast<VkDeferredOperationKHR>( operation ),
23101       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
23102   }
23103 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
23104 
23105   // wrapper function for command vkDestroyDeferredOperationKHR, see
23106   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDeferredOperationKHR.html
23107   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const23108   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR        operation,
23109                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
23110                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
23111   {
23112     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23113     d.vkDestroyDeferredOperationKHR(
23114       static_cast<VkDevice>( m_device ), static_cast<VkDeferredOperationKHR>( operation ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
23115   }
23116 
23117 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
23118   // wrapper function for command vkDestroyDeferredOperationKHR, see
23119   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyDeferredOperationKHR.html
23120   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const23121   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                operation,
23122                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
23123                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
23124   {
23125     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23126 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23127     VULKAN_HPP_ASSERT( d.vkDestroyDeferredOperationKHR && "Function <vkDestroyDeferredOperationKHR> requires <VK_KHR_deferred_host_operations>" );
23128 #  endif
23129 
23130     d.vkDestroyDeferredOperationKHR(
23131       m_device,
23132       static_cast<VkDeferredOperationKHR>( operation ),
23133       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
23134   }
23135 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
23136 
23137   // wrapper function for command vkGetDeferredOperationMaxConcurrencyKHR, see
23138   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeferredOperationMaxConcurrencyKHR.html
23139   template <typename Dispatch>
getDeferredOperationMaxConcurrencyKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const23140   VULKAN_HPP_INLINE uint32_t Device::getDeferredOperationMaxConcurrencyKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,
23141                                                                             Dispatch const &                           d ) const VULKAN_HPP_NOEXCEPT
23142   {
23143     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23144     return d.vkGetDeferredOperationMaxConcurrencyKHR( static_cast<VkDevice>( m_device ), static_cast<VkDeferredOperationKHR>( operation ) );
23145   }
23146 
23147 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
23148   // wrapper function for command vkGetDeferredOperationResultKHR, see
23149   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeferredOperationResultKHR.html
23150   template <typename Dispatch>
getDeferredOperationResultKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const23151   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,
23152                                                                                        Dispatch const &                           d ) const VULKAN_HPP_NOEXCEPT
23153   {
23154     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23155     return static_cast<Result>( d.vkGetDeferredOperationResultKHR( static_cast<VkDevice>( m_device ), static_cast<VkDeferredOperationKHR>( operation ) ) );
23156   }
23157 #else
23158   // wrapper function for command vkGetDeferredOperationResultKHR, see
23159   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeferredOperationResultKHR.html
23160   template <typename Dispatch>
23161   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result
getDeferredOperationResultKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const23162     Device::getDeferredOperationResultKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
23163   {
23164     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23165 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23166     VULKAN_HPP_ASSERT( d.vkGetDeferredOperationResultKHR && "Function <vkGetDeferredOperationResultKHR> requires <VK_KHR_deferred_host_operations>" );
23167 #  endif
23168 
23169     VULKAN_HPP_NAMESPACE::Result result =
23170       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDeferredOperationResultKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
23171 
23172     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
23173   }
23174 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
23175 
23176 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
23177   // wrapper function for command vkDeferredOperationJoinKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDeferredOperationJoinKHR.html
23178   template <typename Dispatch>
deferredOperationJoinKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const23179   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,
23180                                                                                   Dispatch const &                           d ) const VULKAN_HPP_NOEXCEPT
23181   {
23182     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23183     return static_cast<Result>( d.vkDeferredOperationJoinKHR( static_cast<VkDevice>( m_device ), static_cast<VkDeferredOperationKHR>( operation ) ) );
23184   }
23185 #else
23186   // wrapper function for command vkDeferredOperationJoinKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDeferredOperationJoinKHR.html
23187   template <typename Dispatch>
deferredOperationJoinKHR(VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,Dispatch const & d) const23188   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::deferredOperationJoinKHR( VULKAN_HPP_NAMESPACE::DeferredOperationKHR operation,
23189                                                                                                         Dispatch const &                           d ) const
23190   {
23191     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23192 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23193     VULKAN_HPP_ASSERT( d.vkDeferredOperationJoinKHR && "Function <vkDeferredOperationJoinKHR> requires <VK_KHR_deferred_host_operations>" );
23194 #  endif
23195 
23196     VULKAN_HPP_NAMESPACE::Result result =
23197       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkDeferredOperationJoinKHR( m_device, static_cast<VkDeferredOperationKHR>( operation ) ) );
23198     VULKAN_HPP_NAMESPACE::detail::resultCheck(
23199       result,
23200       VULKAN_HPP_NAMESPACE_STRING "::Device::deferredOperationJoinKHR",
23201       { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eThreadDoneKHR, VULKAN_HPP_NAMESPACE::Result::eThreadIdleKHR } );
23202 
23203     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
23204   }
23205 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
23206 
23207   //=== VK_KHR_pipeline_executable_properties ===
23208 
23209   // wrapper function for command vkGetPipelineExecutablePropertiesKHR, see
23210   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineExecutablePropertiesKHR.html
23211   template <typename Dispatch>
getPipelineExecutablePropertiesKHR(const VULKAN_HPP_NAMESPACE::PipelineInfoKHR * pPipelineInfo,uint32_t * pExecutableCount,VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR * pProperties,Dispatch const & d) const23212   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPipelineExecutablePropertiesKHR( const VULKAN_HPP_NAMESPACE::PipelineInfoKHR * pPipelineInfo,
23213                                                                                             uint32_t *                                    pExecutableCount,
23214                                                                                             VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR * pProperties,
23215                                                                                             Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
23216   {
23217     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23218     return static_cast<Result>( d.vkGetPipelineExecutablePropertiesKHR( static_cast<VkDevice>( m_device ),
23219                                                                         reinterpret_cast<const VkPipelineInfoKHR *>( pPipelineInfo ),
23220                                                                         pExecutableCount,
23221                                                                         reinterpret_cast<VkPipelineExecutablePropertiesKHR *>( pProperties ) ) );
23222   }
23223 
23224 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
23225   // wrapper function for command vkGetPipelineExecutablePropertiesKHR, see
23226   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineExecutablePropertiesKHR.html
23227   template <typename PipelineExecutablePropertiesKHRAllocator,
23228             typename Dispatch,
23229             typename std::enable_if<
23230               std::is_same<typename PipelineExecutablePropertiesKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR>::value,
23231               int>::type>
23232   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
23233     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR, PipelineExecutablePropertiesKHRAllocator>>::type
getPipelineExecutablePropertiesKHR(const VULKAN_HPP_NAMESPACE::PipelineInfoKHR & pipelineInfo,Dispatch const & d) const23234     Device::getPipelineExecutablePropertiesKHR( const VULKAN_HPP_NAMESPACE::PipelineInfoKHR & pipelineInfo, Dispatch const & d ) const
23235   {
23236     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23237 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23238     VULKAN_HPP_ASSERT( d.vkGetPipelineExecutablePropertiesKHR &&
23239                        "Function <vkGetPipelineExecutablePropertiesKHR> requires <VK_KHR_pipeline_executable_properties>" );
23240 #  endif
23241 
23242     std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR, PipelineExecutablePropertiesKHRAllocator> properties;
23243     uint32_t                                                                                                     executableCount;
23244     VULKAN_HPP_NAMESPACE::Result                                                                                 result;
23245     do
23246     {
23247       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
23248         d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ), &executableCount, nullptr ) );
23249       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && executableCount )
23250       {
23251         properties.resize( executableCount );
23252         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
23253           d.vkGetPipelineExecutablePropertiesKHR( m_device,
23254                                                   reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ),
23255                                                   &executableCount,
23256                                                   reinterpret_cast<VkPipelineExecutablePropertiesKHR *>( properties.data() ) ) );
23257       }
23258     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
23259     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutablePropertiesKHR" );
23260     VULKAN_HPP_ASSERT( executableCount <= properties.size() );
23261     if ( executableCount < properties.size() )
23262     {
23263       properties.resize( executableCount );
23264     }
23265     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
23266   }
23267 
23268   // wrapper function for command vkGetPipelineExecutablePropertiesKHR, see
23269   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineExecutablePropertiesKHR.html
23270   template <typename PipelineExecutablePropertiesKHRAllocator,
23271             typename Dispatch,
23272             typename std::enable_if<
23273               std::is_same<typename PipelineExecutablePropertiesKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR>::value,
23274               int>::type>
23275   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
23276     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR, PipelineExecutablePropertiesKHRAllocator>>::type
getPipelineExecutablePropertiesKHR(const VULKAN_HPP_NAMESPACE::PipelineInfoKHR & pipelineInfo,PipelineExecutablePropertiesKHRAllocator & pipelineExecutablePropertiesKHRAllocator,Dispatch const & d) const23277     Device::getPipelineExecutablePropertiesKHR( const VULKAN_HPP_NAMESPACE::PipelineInfoKHR & pipelineInfo,
23278                                                 PipelineExecutablePropertiesKHRAllocator &    pipelineExecutablePropertiesKHRAllocator,
23279                                                 Dispatch const &                              d ) const
23280   {
23281     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23282 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23283     VULKAN_HPP_ASSERT( d.vkGetPipelineExecutablePropertiesKHR &&
23284                        "Function <vkGetPipelineExecutablePropertiesKHR> requires <VK_KHR_pipeline_executable_properties>" );
23285 #  endif
23286 
23287     std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutablePropertiesKHR, PipelineExecutablePropertiesKHRAllocator> properties(
23288       pipelineExecutablePropertiesKHRAllocator );
23289     uint32_t                     executableCount;
23290     VULKAN_HPP_NAMESPACE::Result result;
23291     do
23292     {
23293       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
23294         d.vkGetPipelineExecutablePropertiesKHR( m_device, reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ), &executableCount, nullptr ) );
23295       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && executableCount )
23296       {
23297         properties.resize( executableCount );
23298         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
23299           d.vkGetPipelineExecutablePropertiesKHR( m_device,
23300                                                   reinterpret_cast<const VkPipelineInfoKHR *>( &pipelineInfo ),
23301                                                   &executableCount,
23302                                                   reinterpret_cast<VkPipelineExecutablePropertiesKHR *>( properties.data() ) ) );
23303       }
23304     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
23305     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutablePropertiesKHR" );
23306     VULKAN_HPP_ASSERT( executableCount <= properties.size() );
23307     if ( executableCount < properties.size() )
23308     {
23309       properties.resize( executableCount );
23310     }
23311     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
23312   }
23313 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
23314 
23315   // wrapper function for command vkGetPipelineExecutableStatisticsKHR, see
23316   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineExecutableStatisticsKHR.html
23317   template <typename Dispatch>
23318   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getPipelineExecutableStatisticsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pStatisticCount,VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR * pStatistics,Dispatch const & d) const23319     Device::getPipelineExecutableStatisticsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR * pExecutableInfo,
23320                                                 uint32_t *                                              pStatisticCount,
23321                                                 VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR *  pStatistics,
23322                                                 Dispatch const &                                        d ) const VULKAN_HPP_NOEXCEPT
23323   {
23324     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23325     return static_cast<Result>( d.vkGetPipelineExecutableStatisticsKHR( static_cast<VkDevice>( m_device ),
23326                                                                         reinterpret_cast<const VkPipelineExecutableInfoKHR *>( pExecutableInfo ),
23327                                                                         pStatisticCount,
23328                                                                         reinterpret_cast<VkPipelineExecutableStatisticKHR *>( pStatistics ) ) );
23329   }
23330 
23331 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
23332   // wrapper function for command vkGetPipelineExecutableStatisticsKHR, see
23333   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineExecutableStatisticsKHR.html
23334   template <typename PipelineExecutableStatisticKHRAllocator,
23335             typename Dispatch,
23336             typename std::enable_if<
23337               std::is_same<typename PipelineExecutableStatisticKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR>::value,
23338               int>::type>
23339   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
23340     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR, PipelineExecutableStatisticKHRAllocator>>::type
getPipelineExecutableStatisticsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo,Dispatch const & d) const23341     Device::getPipelineExecutableStatisticsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo, Dispatch const & d ) const
23342   {
23343     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23344 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23345     VULKAN_HPP_ASSERT( d.vkGetPipelineExecutableStatisticsKHR &&
23346                        "Function <vkGetPipelineExecutableStatisticsKHR> requires <VK_KHR_pipeline_executable_properties>" );
23347 #  endif
23348 
23349     std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR, PipelineExecutableStatisticKHRAllocator> statistics;
23350     uint32_t                                                                                                   statisticCount;
23351     VULKAN_HPP_NAMESPACE::Result                                                                               result;
23352     do
23353     {
23354       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPipelineExecutableStatisticsKHR(
23355         m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &statisticCount, nullptr ) );
23356       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && statisticCount )
23357       {
23358         statistics.resize( statisticCount );
23359         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
23360           d.vkGetPipelineExecutableStatisticsKHR( m_device,
23361                                                   reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ),
23362                                                   &statisticCount,
23363                                                   reinterpret_cast<VkPipelineExecutableStatisticKHR *>( statistics.data() ) ) );
23364       }
23365     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
23366     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableStatisticsKHR" );
23367     VULKAN_HPP_ASSERT( statisticCount <= statistics.size() );
23368     if ( statisticCount < statistics.size() )
23369     {
23370       statistics.resize( statisticCount );
23371     }
23372     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( statistics ) );
23373   }
23374 
23375   // wrapper function for command vkGetPipelineExecutableStatisticsKHR, see
23376   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineExecutableStatisticsKHR.html
23377   template <typename PipelineExecutableStatisticKHRAllocator,
23378             typename Dispatch,
23379             typename std::enable_if<
23380               std::is_same<typename PipelineExecutableStatisticKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR>::value,
23381               int>::type>
23382   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
23383     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR, PipelineExecutableStatisticKHRAllocator>>::type
getPipelineExecutableStatisticsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo,PipelineExecutableStatisticKHRAllocator & pipelineExecutableStatisticKHRAllocator,Dispatch const & d) const23384     Device::getPipelineExecutableStatisticsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo,
23385                                                 PipelineExecutableStatisticKHRAllocator &               pipelineExecutableStatisticKHRAllocator,
23386                                                 Dispatch const &                                        d ) const
23387   {
23388     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23389 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23390     VULKAN_HPP_ASSERT( d.vkGetPipelineExecutableStatisticsKHR &&
23391                        "Function <vkGetPipelineExecutableStatisticsKHR> requires <VK_KHR_pipeline_executable_properties>" );
23392 #  endif
23393 
23394     std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableStatisticKHR, PipelineExecutableStatisticKHRAllocator> statistics(
23395       pipelineExecutableStatisticKHRAllocator );
23396     uint32_t                     statisticCount;
23397     VULKAN_HPP_NAMESPACE::Result result;
23398     do
23399     {
23400       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPipelineExecutableStatisticsKHR(
23401         m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &statisticCount, nullptr ) );
23402       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && statisticCount )
23403       {
23404         statistics.resize( statisticCount );
23405         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
23406           d.vkGetPipelineExecutableStatisticsKHR( m_device,
23407                                                   reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ),
23408                                                   &statisticCount,
23409                                                   reinterpret_cast<VkPipelineExecutableStatisticKHR *>( statistics.data() ) ) );
23410       }
23411     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
23412     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableStatisticsKHR" );
23413     VULKAN_HPP_ASSERT( statisticCount <= statistics.size() );
23414     if ( statisticCount < statistics.size() )
23415     {
23416       statistics.resize( statisticCount );
23417     }
23418     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( statistics ) );
23419   }
23420 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
23421 
23422   // wrapper function for command vkGetPipelineExecutableInternalRepresentationsKHR, see
23423   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineExecutableInternalRepresentationsKHR.html
23424   template <typename Dispatch>
23425   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getPipelineExecutableInternalRepresentationsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR * pExecutableInfo,uint32_t * pInternalRepresentationCount,VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR * pInternalRepresentations,Dispatch const & d) const23426     Device::getPipelineExecutableInternalRepresentationsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR *             pExecutableInfo,
23427                                                              uint32_t *                                                          pInternalRepresentationCount,
23428                                                              VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR * pInternalRepresentations,
23429                                                              Dispatch const &                                                    d ) const VULKAN_HPP_NOEXCEPT
23430   {
23431     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23432     return static_cast<Result>(
23433       d.vkGetPipelineExecutableInternalRepresentationsKHR( static_cast<VkDevice>( m_device ),
23434                                                            reinterpret_cast<const VkPipelineExecutableInfoKHR *>( pExecutableInfo ),
23435                                                            pInternalRepresentationCount,
23436                                                            reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR *>( pInternalRepresentations ) ) );
23437   }
23438 
23439 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
23440   // wrapper function for command vkGetPipelineExecutableInternalRepresentationsKHR, see
23441   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineExecutableInternalRepresentationsKHR.html
23442   template <typename PipelineExecutableInternalRepresentationKHRAllocator,
23443             typename Dispatch,
23444             typename std::enable_if<std::is_same<typename PipelineExecutableInternalRepresentationKHRAllocator::value_type,
23445                                                  VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR>::value,
23446                                     int>::type>
23447   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<
23448     std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR, PipelineExecutableInternalRepresentationKHRAllocator>>::type
getPipelineExecutableInternalRepresentationsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo,Dispatch const & d) const23449     Device::getPipelineExecutableInternalRepresentationsKHR( const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo, Dispatch const & d ) const
23450   {
23451     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23452 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23453     VULKAN_HPP_ASSERT( d.vkGetPipelineExecutableInternalRepresentationsKHR &&
23454                        "Function <vkGetPipelineExecutableInternalRepresentationsKHR> requires <VK_KHR_pipeline_executable_properties>" );
23455 #  endif
23456 
23457     std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR, PipelineExecutableInternalRepresentationKHRAllocator>
23458                                  internalRepresentations;
23459     uint32_t                     internalRepresentationCount;
23460     VULKAN_HPP_NAMESPACE::Result result;
23461     do
23462     {
23463       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR(
23464         m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &internalRepresentationCount, nullptr ) );
23465       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && internalRepresentationCount )
23466       {
23467         internalRepresentations.resize( internalRepresentationCount );
23468         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR(
23469           m_device,
23470           reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ),
23471           &internalRepresentationCount,
23472           reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR *>( internalRepresentations.data() ) ) );
23473       }
23474     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
23475     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableInternalRepresentationsKHR" );
23476     VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() );
23477     if ( internalRepresentationCount < internalRepresentations.size() )
23478     {
23479       internalRepresentations.resize( internalRepresentationCount );
23480     }
23481     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( internalRepresentations ) );
23482   }
23483 
23484   // wrapper function for command vkGetPipelineExecutableInternalRepresentationsKHR, see
23485   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineExecutableInternalRepresentationsKHR.html
23486   template <typename PipelineExecutableInternalRepresentationKHRAllocator,
23487             typename Dispatch,
23488             typename std::enable_if<std::is_same<typename PipelineExecutableInternalRepresentationKHRAllocator::value_type,
23489                                                  VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR>::value,
23490                                     int>::type>
23491   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<
23492     std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR, PipelineExecutableInternalRepresentationKHRAllocator>>::type
getPipelineExecutableInternalRepresentationsKHR(const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo,PipelineExecutableInternalRepresentationKHRAllocator & pipelineExecutableInternalRepresentationKHRAllocator,Dispatch const & d) const23493     Device::getPipelineExecutableInternalRepresentationsKHR(
23494       const VULKAN_HPP_NAMESPACE::PipelineExecutableInfoKHR & executableInfo,
23495       PipelineExecutableInternalRepresentationKHRAllocator &  pipelineExecutableInternalRepresentationKHRAllocator,
23496       Dispatch const &                                        d ) const
23497   {
23498     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23499 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23500     VULKAN_HPP_ASSERT( d.vkGetPipelineExecutableInternalRepresentationsKHR &&
23501                        "Function <vkGetPipelineExecutableInternalRepresentationsKHR> requires <VK_KHR_pipeline_executable_properties>" );
23502 #  endif
23503 
23504     std::vector<VULKAN_HPP_NAMESPACE::PipelineExecutableInternalRepresentationKHR, PipelineExecutableInternalRepresentationKHRAllocator>
23505                                  internalRepresentations( pipelineExecutableInternalRepresentationKHRAllocator );
23506     uint32_t                     internalRepresentationCount;
23507     VULKAN_HPP_NAMESPACE::Result result;
23508     do
23509     {
23510       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR(
23511         m_device, reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ), &internalRepresentationCount, nullptr ) );
23512       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && internalRepresentationCount )
23513       {
23514         internalRepresentations.resize( internalRepresentationCount );
23515         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPipelineExecutableInternalRepresentationsKHR(
23516           m_device,
23517           reinterpret_cast<const VkPipelineExecutableInfoKHR *>( &executableInfo ),
23518           &internalRepresentationCount,
23519           reinterpret_cast<VkPipelineExecutableInternalRepresentationKHR *>( internalRepresentations.data() ) ) );
23520       }
23521     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
23522     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineExecutableInternalRepresentationsKHR" );
23523     VULKAN_HPP_ASSERT( internalRepresentationCount <= internalRepresentations.size() );
23524     if ( internalRepresentationCount < internalRepresentations.size() )
23525     {
23526       internalRepresentations.resize( internalRepresentationCount );
23527     }
23528     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( internalRepresentations ) );
23529   }
23530 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
23531 
23532   //=== VK_EXT_host_image_copy ===
23533 
23534   // wrapper function for command vkCopyMemoryToImageEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyMemoryToImageEXT.html
23535   template <typename Dispatch>
copyMemoryToImageEXT(const VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfo * pCopyMemoryToImageInfo,Dispatch const & d) const23536   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyMemoryToImageEXT( const VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfo * pCopyMemoryToImageInfo,
23537                                                                               Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
23538   {
23539     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23540     return static_cast<Result>(
23541       d.vkCopyMemoryToImageEXT( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkCopyMemoryToImageInfo *>( pCopyMemoryToImageInfo ) ) );
23542   }
23543 
23544 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
23545   // wrapper function for command vkCopyMemoryToImageEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyMemoryToImageEXT.html
23546   template <typename Dispatch>
23547   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
copyMemoryToImageEXT(const VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfo & copyMemoryToImageInfo,Dispatch const & d) const23548     Device::copyMemoryToImageEXT( const VULKAN_HPP_NAMESPACE::CopyMemoryToImageInfo & copyMemoryToImageInfo, Dispatch const & d ) const
23549   {
23550     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23551 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23552     VULKAN_HPP_ASSERT( d.vkCopyMemoryToImageEXT && "Function <vkCopyMemoryToImageEXT> requires <VK_EXT_host_image_copy> or <VK_VERSION_1_4>" );
23553 #  endif
23554 
23555     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
23556       d.vkCopyMemoryToImageEXT( m_device, reinterpret_cast<const VkCopyMemoryToImageInfo *>( &copyMemoryToImageInfo ) ) );
23557     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToImageEXT" );
23558 
23559     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
23560   }
23561 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
23562 
23563   // wrapper function for command vkCopyImageToMemoryEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyImageToMemoryEXT.html
23564   template <typename Dispatch>
copyImageToMemoryEXT(const VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfo * pCopyImageToMemoryInfo,Dispatch const & d) const23565   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyImageToMemoryEXT( const VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfo * pCopyImageToMemoryInfo,
23566                                                                               Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
23567   {
23568     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23569     return static_cast<Result>(
23570       d.vkCopyImageToMemoryEXT( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkCopyImageToMemoryInfo *>( pCopyImageToMemoryInfo ) ) );
23571   }
23572 
23573 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
23574   // wrapper function for command vkCopyImageToMemoryEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyImageToMemoryEXT.html
23575   template <typename Dispatch>
23576   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
copyImageToMemoryEXT(const VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfo & copyImageToMemoryInfo,Dispatch const & d) const23577     Device::copyImageToMemoryEXT( const VULKAN_HPP_NAMESPACE::CopyImageToMemoryInfo & copyImageToMemoryInfo, Dispatch const & d ) const
23578   {
23579     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23580 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23581     VULKAN_HPP_ASSERT( d.vkCopyImageToMemoryEXT && "Function <vkCopyImageToMemoryEXT> requires <VK_EXT_host_image_copy> or <VK_VERSION_1_4>" );
23582 #  endif
23583 
23584     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
23585       d.vkCopyImageToMemoryEXT( m_device, reinterpret_cast<const VkCopyImageToMemoryInfo *>( &copyImageToMemoryInfo ) ) );
23586     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyImageToMemoryEXT" );
23587 
23588     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
23589   }
23590 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
23591 
23592   // wrapper function for command vkCopyImageToImageEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyImageToImageEXT.html
23593   template <typename Dispatch>
copyImageToImageEXT(const VULKAN_HPP_NAMESPACE::CopyImageToImageInfo * pCopyImageToImageInfo,Dispatch const & d) const23594   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyImageToImageEXT( const VULKAN_HPP_NAMESPACE::CopyImageToImageInfo * pCopyImageToImageInfo,
23595                                                                              Dispatch const &                                   d ) const VULKAN_HPP_NOEXCEPT
23596   {
23597     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23598     return static_cast<Result>(
23599       d.vkCopyImageToImageEXT( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkCopyImageToImageInfo *>( pCopyImageToImageInfo ) ) );
23600   }
23601 
23602 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
23603   // wrapper function for command vkCopyImageToImageEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyImageToImageEXT.html
23604   template <typename Dispatch>
23605   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
copyImageToImageEXT(const VULKAN_HPP_NAMESPACE::CopyImageToImageInfo & copyImageToImageInfo,Dispatch const & d) const23606     Device::copyImageToImageEXT( const VULKAN_HPP_NAMESPACE::CopyImageToImageInfo & copyImageToImageInfo, Dispatch const & d ) const
23607   {
23608     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23609 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23610     VULKAN_HPP_ASSERT( d.vkCopyImageToImageEXT && "Function <vkCopyImageToImageEXT> requires <VK_EXT_host_image_copy> or <VK_VERSION_1_4>" );
23611 #  endif
23612 
23613     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
23614       d.vkCopyImageToImageEXT( m_device, reinterpret_cast<const VkCopyImageToImageInfo *>( &copyImageToImageInfo ) ) );
23615     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::copyImageToImageEXT" );
23616 
23617     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
23618   }
23619 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
23620 
23621   // wrapper function for command vkTransitionImageLayoutEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkTransitionImageLayoutEXT.html
23622   template <typename Dispatch>
transitionImageLayoutEXT(uint32_t transitionCount,const VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfo * pTransitions,Dispatch const & d) const23623   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::transitionImageLayoutEXT( uint32_t                                                    transitionCount,
23624                                                                                   const VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfo * pTransitions,
23625                                                                                   Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
23626   {
23627     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23628     return static_cast<Result>( d.vkTransitionImageLayoutEXT(
23629       static_cast<VkDevice>( m_device ), transitionCount, reinterpret_cast<const VkHostImageLayoutTransitionInfo *>( pTransitions ) ) );
23630   }
23631 
23632 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
23633   // wrapper function for command vkTransitionImageLayoutEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkTransitionImageLayoutEXT.html
23634   template <typename Dispatch>
23635   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
transitionImageLayoutEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfo> const & transitions,Dispatch const & d) const23636     Device::transitionImageLayoutEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::HostImageLayoutTransitionInfo> const & transitions,
23637                                       Dispatch const &                                                                                    d ) const
23638   {
23639     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23640 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23641     VULKAN_HPP_ASSERT( d.vkTransitionImageLayoutEXT && "Function <vkTransitionImageLayoutEXT> requires <VK_EXT_host_image_copy> or <VK_VERSION_1_4>" );
23642 #  endif
23643 
23644     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
23645       d.vkTransitionImageLayoutEXT( m_device, transitions.size(), reinterpret_cast<const VkHostImageLayoutTransitionInfo *>( transitions.data() ) ) );
23646     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::transitionImageLayoutEXT" );
23647 
23648     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
23649   }
23650 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
23651 
23652   // wrapper function for command vkGetImageSubresourceLayout2EXT, see
23653   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSubresourceLayout2EXT.html
23654   template <typename Dispatch>
getImageSubresourceLayout2EXT(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::ImageSubresource2 * pSubresource,VULKAN_HPP_NAMESPACE::SubresourceLayout2 * pLayout,Dispatch const & d) const23655   VULKAN_HPP_INLINE void Device::getImageSubresourceLayout2EXT( VULKAN_HPP_NAMESPACE::Image                     image,
23656                                                                 const VULKAN_HPP_NAMESPACE::ImageSubresource2 * pSubresource,
23657                                                                 VULKAN_HPP_NAMESPACE::SubresourceLayout2 *      pLayout,
23658                                                                 Dispatch const &                                d ) const VULKAN_HPP_NOEXCEPT
23659   {
23660     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23661     d.vkGetImageSubresourceLayout2EXT( static_cast<VkDevice>( m_device ),
23662                                        static_cast<VkImage>( image ),
23663                                        reinterpret_cast<const VkImageSubresource2 *>( pSubresource ),
23664                                        reinterpret_cast<VkSubresourceLayout2 *>( pLayout ) );
23665   }
23666 
23667 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
23668   // wrapper function for command vkGetImageSubresourceLayout2EXT, see
23669   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSubresourceLayout2EXT.html
23670   template <typename Dispatch>
getImageSubresourceLayout2EXT(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::ImageSubresource2 & subresource,Dispatch const & d) const23671   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout2 Device::getImageSubresourceLayout2EXT(
23672     VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::ImageSubresource2 & subresource, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
23673   {
23674     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23675 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23676     VULKAN_HPP_ASSERT(
23677       d.vkGetImageSubresourceLayout2EXT &&
23678       "Function <vkGetImageSubresourceLayout2EXT> requires <VK_EXT_host_image_copy> or <VK_EXT_image_compression_control> or <VK_KHR_maintenance5> or <VK_VERSION_1_4>" );
23679 #  endif
23680 
23681     VULKAN_HPP_NAMESPACE::SubresourceLayout2 layout;
23682     d.vkGetImageSubresourceLayout2EXT( m_device,
23683                                        static_cast<VkImage>( image ),
23684                                        reinterpret_cast<const VkImageSubresource2 *>( &subresource ),
23685                                        reinterpret_cast<VkSubresourceLayout2 *>( &layout ) );
23686 
23687     return layout;
23688   }
23689 
23690   // wrapper function for command vkGetImageSubresourceLayout2EXT, see
23691   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSubresourceLayout2EXT.html
23692   template <typename X, typename Y, typename... Z, typename Dispatch>
getImageSubresourceLayout2EXT(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::ImageSubresource2 & subresource,Dispatch const & d) const23693   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> Device::getImageSubresourceLayout2EXT(
23694     VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::ImageSubresource2 & subresource, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
23695   {
23696     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23697 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23698     VULKAN_HPP_ASSERT(
23699       d.vkGetImageSubresourceLayout2EXT &&
23700       "Function <vkGetImageSubresourceLayout2EXT> requires <VK_EXT_host_image_copy> or <VK_EXT_image_compression_control> or <VK_KHR_maintenance5> or <VK_VERSION_1_4>" );
23701 #  endif
23702 
23703     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
23704     VULKAN_HPP_NAMESPACE::SubresourceLayout2 &       layout = structureChain.template get<VULKAN_HPP_NAMESPACE::SubresourceLayout2>();
23705     d.vkGetImageSubresourceLayout2EXT( m_device,
23706                                        static_cast<VkImage>( image ),
23707                                        reinterpret_cast<const VkImageSubresource2 *>( &subresource ),
23708                                        reinterpret_cast<VkSubresourceLayout2 *>( &layout ) );
23709 
23710     return structureChain;
23711   }
23712 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
23713 
23714   //=== VK_KHR_map_memory2 ===
23715 
23716   // wrapper function for command vkMapMemory2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkMapMemory2KHR.html
23717   template <typename Dispatch>
mapMemory2KHR(const VULKAN_HPP_NAMESPACE::MemoryMapInfo * pMemoryMapInfo,void ** ppData,Dispatch const & d) const23718   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::mapMemory2KHR( const VULKAN_HPP_NAMESPACE::MemoryMapInfo * pMemoryMapInfo,
23719                                                                        void **                                     ppData,
23720                                                                        Dispatch const &                            d ) const VULKAN_HPP_NOEXCEPT
23721   {
23722     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23723     return static_cast<Result>( d.vkMapMemory2KHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryMapInfo *>( pMemoryMapInfo ), ppData ) );
23724   }
23725 
23726 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
23727   // wrapper function for command vkMapMemory2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkMapMemory2KHR.html
23728   template <typename Dispatch>
23729   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<void *>::type
mapMemory2KHR(const VULKAN_HPP_NAMESPACE::MemoryMapInfo & memoryMapInfo,Dispatch const & d) const23730                        Device::mapMemory2KHR( const VULKAN_HPP_NAMESPACE::MemoryMapInfo & memoryMapInfo, Dispatch const & d ) const
23731   {
23732     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23733 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23734     VULKAN_HPP_ASSERT( d.vkMapMemory2KHR && "Function <vkMapMemory2KHR> requires <VK_KHR_map_memory2> or <VK_VERSION_1_4>" );
23735 #  endif
23736 
23737     void *                       pData;
23738     VULKAN_HPP_NAMESPACE::Result result =
23739       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkMapMemory2KHR( m_device, reinterpret_cast<const VkMemoryMapInfo *>( &memoryMapInfo ), &pData ) );
23740     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::mapMemory2KHR" );
23741 
23742     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( pData ) );
23743   }
23744 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
23745 
23746   // wrapper function for command vkUnmapMemory2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkUnmapMemory2KHR.html
23747   template <typename Dispatch>
unmapMemory2KHR(const VULKAN_HPP_NAMESPACE::MemoryUnmapInfo * pMemoryUnmapInfo,Dispatch const & d) const23748   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::unmapMemory2KHR( const VULKAN_HPP_NAMESPACE::MemoryUnmapInfo * pMemoryUnmapInfo,
23749                                                                          Dispatch const &                              d ) const VULKAN_HPP_NOEXCEPT
23750   {
23751     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23752     return static_cast<Result>( d.vkUnmapMemory2KHR( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryUnmapInfo *>( pMemoryUnmapInfo ) ) );
23753   }
23754 
23755 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
23756   // wrapper function for command vkUnmapMemory2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkUnmapMemory2KHR.html
23757   template <typename Dispatch>
unmapMemory2KHR(const VULKAN_HPP_NAMESPACE::MemoryUnmapInfo & memoryUnmapInfo,Dispatch const & d) const23758   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::unmapMemory2KHR( const VULKAN_HPP_NAMESPACE::MemoryUnmapInfo & memoryUnmapInfo,
23759                                                                                   Dispatch const &                              d ) const
23760   {
23761     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23762 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23763     VULKAN_HPP_ASSERT( d.vkUnmapMemory2KHR && "Function <vkUnmapMemory2KHR> requires <VK_KHR_map_memory2> or <VK_VERSION_1_4>" );
23764 #  endif
23765 
23766     VULKAN_HPP_NAMESPACE::Result result =
23767       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkUnmapMemory2KHR( m_device, reinterpret_cast<const VkMemoryUnmapInfo *>( &memoryUnmapInfo ) ) );
23768     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::unmapMemory2KHR" );
23769 
23770     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
23771   }
23772 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
23773 
23774   //=== VK_EXT_swapchain_maintenance1 ===
23775 
23776   // wrapper function for command vkReleaseSwapchainImagesEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseSwapchainImagesEXT.html
23777   template <typename Dispatch>
releaseSwapchainImagesEXT(const VULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT * pReleaseInfo,Dispatch const & d) const23778   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::releaseSwapchainImagesEXT( const VULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT * pReleaseInfo,
23779                                                                                    Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
23780   {
23781     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23782     return static_cast<Result>(
23783       d.vkReleaseSwapchainImagesEXT( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkReleaseSwapchainImagesInfoEXT *>( pReleaseInfo ) ) );
23784   }
23785 
23786 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
23787   // wrapper function for command vkReleaseSwapchainImagesEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseSwapchainImagesEXT.html
23788   template <typename Dispatch>
23789   VULKAN_HPP_INLINE typename ResultValueType<void>::type
releaseSwapchainImagesEXT(const VULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT & releaseInfo,Dispatch const & d) const23790     Device::releaseSwapchainImagesEXT( const VULKAN_HPP_NAMESPACE::ReleaseSwapchainImagesInfoEXT & releaseInfo, Dispatch const & d ) const
23791   {
23792     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23793 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23794     VULKAN_HPP_ASSERT( d.vkReleaseSwapchainImagesEXT && "Function <vkReleaseSwapchainImagesEXT> requires <VK_EXT_swapchain_maintenance1>" );
23795 #  endif
23796 
23797     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
23798       d.vkReleaseSwapchainImagesEXT( m_device, reinterpret_cast<const VkReleaseSwapchainImagesInfoEXT *>( &releaseInfo ) ) );
23799     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::releaseSwapchainImagesEXT" );
23800 
23801     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
23802   }
23803 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
23804 
23805   //=== VK_NV_device_generated_commands ===
23806 
23807   // wrapper function for command vkGetGeneratedCommandsMemoryRequirementsNV, see
23808   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetGeneratedCommandsMemoryRequirementsNV.html
23809   template <typename Dispatch>
getGeneratedCommandsMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const23810   VULKAN_HPP_INLINE void Device::getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV * pInfo,
23811                                                                            VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,
23812                                                                            Dispatch const &                            d ) const VULKAN_HPP_NOEXCEPT
23813   {
23814     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23815     d.vkGetGeneratedCommandsMemoryRequirementsNV( static_cast<VkDevice>( m_device ),
23816                                                   reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV *>( pInfo ),
23817                                                   reinterpret_cast<VkMemoryRequirements2 *>( pMemoryRequirements ) );
23818   }
23819 
23820 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
23821   // wrapper function for command vkGetGeneratedCommandsMemoryRequirementsNV, see
23822   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetGeneratedCommandsMemoryRequirementsNV.html
23823   template <typename Dispatch>
23824   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
getGeneratedCommandsMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV & info,Dispatch const & d) const23825     Device::getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV & info,
23826                                                       Dispatch const &                                                        d ) const VULKAN_HPP_NOEXCEPT
23827   {
23828     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23829 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23830     VULKAN_HPP_ASSERT( d.vkGetGeneratedCommandsMemoryRequirementsNV &&
23831                        "Function <vkGetGeneratedCommandsMemoryRequirementsNV> requires <VK_NV_device_generated_commands>" );
23832 #  endif
23833 
23834     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
23835     d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device,
23836                                                   reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV *>( &info ),
23837                                                   reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
23838 
23839     return memoryRequirements;
23840   }
23841 
23842   // wrapper function for command vkGetGeneratedCommandsMemoryRequirementsNV, see
23843   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetGeneratedCommandsMemoryRequirementsNV.html
23844   template <typename X, typename Y, typename... Z, typename Dispatch>
23845   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getGeneratedCommandsMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV & info,Dispatch const & d) const23846     Device::getGeneratedCommandsMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoNV & info,
23847                                                       Dispatch const &                                                        d ) const VULKAN_HPP_NOEXCEPT
23848   {
23849     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23850 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23851     VULKAN_HPP_ASSERT( d.vkGetGeneratedCommandsMemoryRequirementsNV &&
23852                        "Function <vkGetGeneratedCommandsMemoryRequirementsNV> requires <VK_NV_device_generated_commands>" );
23853 #  endif
23854 
23855     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
23856     VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
23857     d.vkGetGeneratedCommandsMemoryRequirementsNV( m_device,
23858                                                   reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoNV *>( &info ),
23859                                                   reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
23860 
23861     return structureChain;
23862   }
23863 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
23864 
23865   // wrapper function for command vkCmdPreprocessGeneratedCommandsNV, see
23866   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPreprocessGeneratedCommandsNV.html
23867   template <typename Dispatch>
preprocessGeneratedCommandsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV * pGeneratedCommandsInfo,Dispatch const & d) const23868   VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV * pGeneratedCommandsInfo,
23869                                                                        Dispatch const &                                      d ) const VULKAN_HPP_NOEXCEPT
23870   {
23871     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23872     d.vkCmdPreprocessGeneratedCommandsNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
23873                                           reinterpret_cast<const VkGeneratedCommandsInfoNV *>( pGeneratedCommandsInfo ) );
23874   }
23875 
23876 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
23877   // wrapper function for command vkCmdPreprocessGeneratedCommandsNV, see
23878   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPreprocessGeneratedCommandsNV.html
23879   template <typename Dispatch>
preprocessGeneratedCommandsNV(const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV & generatedCommandsInfo,Dispatch const & d) const23880   VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsNV( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV & generatedCommandsInfo,
23881                                                                        Dispatch const &                                      d ) const VULKAN_HPP_NOEXCEPT
23882   {
23883     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23884 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23885     VULKAN_HPP_ASSERT( d.vkCmdPreprocessGeneratedCommandsNV && "Function <vkCmdPreprocessGeneratedCommandsNV> requires <VK_NV_device_generated_commands>" );
23886 #  endif
23887 
23888     d.vkCmdPreprocessGeneratedCommandsNV( m_commandBuffer, reinterpret_cast<const VkGeneratedCommandsInfoNV *>( &generatedCommandsInfo ) );
23889   }
23890 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
23891 
23892   // wrapper function for command vkCmdExecuteGeneratedCommandsNV, see
23893   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdExecuteGeneratedCommandsNV.html
23894   template <typename Dispatch>
executeGeneratedCommandsNV(VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed,const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV * pGeneratedCommandsInfo,Dispatch const & d) const23895   VULKAN_HPP_INLINE void CommandBuffer::executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32                          isPreprocessed,
23896                                                                     const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV * pGeneratedCommandsInfo,
23897                                                                     Dispatch const &                                      d ) const VULKAN_HPP_NOEXCEPT
23898   {
23899     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23900     d.vkCmdExecuteGeneratedCommandsNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
23901                                        static_cast<VkBool32>( isPreprocessed ),
23902                                        reinterpret_cast<const VkGeneratedCommandsInfoNV *>( pGeneratedCommandsInfo ) );
23903   }
23904 
23905 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
23906   // wrapper function for command vkCmdExecuteGeneratedCommandsNV, see
23907   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdExecuteGeneratedCommandsNV.html
23908   template <typename Dispatch>
executeGeneratedCommandsNV(VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed,const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV & generatedCommandsInfo,Dispatch const & d) const23909   VULKAN_HPP_INLINE void CommandBuffer::executeGeneratedCommandsNV( VULKAN_HPP_NAMESPACE::Bool32                          isPreprocessed,
23910                                                                     const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoNV & generatedCommandsInfo,
23911                                                                     Dispatch const &                                      d ) const VULKAN_HPP_NOEXCEPT
23912   {
23913     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23914 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23915     VULKAN_HPP_ASSERT( d.vkCmdExecuteGeneratedCommandsNV && "Function <vkCmdExecuteGeneratedCommandsNV> requires <VK_NV_device_generated_commands>" );
23916 #  endif
23917 
23918     d.vkCmdExecuteGeneratedCommandsNV(
23919       m_commandBuffer, static_cast<VkBool32>( isPreprocessed ), reinterpret_cast<const VkGeneratedCommandsInfoNV *>( &generatedCommandsInfo ) );
23920   }
23921 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
23922 
23923   // wrapper function for command vkCmdBindPipelineShaderGroupNV, see
23924   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindPipelineShaderGroupNV.html
23925   template <typename Dispatch>
bindPipelineShaderGroupNV(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::Pipeline pipeline,uint32_t groupIndex,Dispatch const & d) const23926   VULKAN_HPP_INLINE void CommandBuffer::bindPipelineShaderGroupNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,
23927                                                                    VULKAN_HPP_NAMESPACE::Pipeline          pipeline,
23928                                                                    uint32_t                                groupIndex,
23929                                                                    Dispatch const &                        d ) const VULKAN_HPP_NOEXCEPT
23930   {
23931     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23932     d.vkCmdBindPipelineShaderGroupNV(
23933       static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ), groupIndex );
23934   }
23935 
23936   // wrapper function for command vkCreateIndirectCommandsLayoutNV, see
23937   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIndirectCommandsLayoutNV.html
23938   template <typename Dispatch>
23939   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
createIndirectCommandsLayoutNV(const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV * pIndirectCommandsLayout,Dispatch const & d) const23940     Device::createIndirectCommandsLayoutNV( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV * pCreateInfo,
23941                                             const VULKAN_HPP_NAMESPACE::AllocationCallbacks *                pAllocator,
23942                                             VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV *                 pIndirectCommandsLayout,
23943                                             Dispatch const &                                                 d ) const VULKAN_HPP_NOEXCEPT
23944   {
23945     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23946     return static_cast<Result>( d.vkCreateIndirectCommandsLayoutNV( static_cast<VkDevice>( m_device ),
23947                                                                     reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV *>( pCreateInfo ),
23948                                                                     reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
23949                                                                     reinterpret_cast<VkIndirectCommandsLayoutNV *>( pIndirectCommandsLayout ) ) );
23950   }
23951 
23952 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
23953   // wrapper function for command vkCreateIndirectCommandsLayoutNV, see
23954   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIndirectCommandsLayoutNV.html
23955   template <typename Dispatch>
23956   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV>::type
createIndirectCommandsLayoutNV(const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const23957                        Device::createIndirectCommandsLayoutNV( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV & createInfo,
23958                                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>        allocator,
23959                                             Dispatch const &                                                 d ) const
23960   {
23961     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23962 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23963     VULKAN_HPP_ASSERT( d.vkCreateIndirectCommandsLayoutNV && "Function <vkCreateIndirectCommandsLayoutNV> requires <VK_NV_device_generated_commands>" );
23964 #  endif
23965 
23966     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout;
23967     VULKAN_HPP_NAMESPACE::Result                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateIndirectCommandsLayoutNV(
23968       m_device,
23969       reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV *>( &createInfo ),
23970       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
23971       reinterpret_cast<VkIndirectCommandsLayoutNV *>( &indirectCommandsLayout ) ) );
23972     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutNV" );
23973 
23974     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( indirectCommandsLayout ) );
23975   }
23976 
23977 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
23978   // wrapper function for command vkCreateIndirectCommandsLayoutNV, see
23979   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIndirectCommandsLayoutNV.html
23980   template <typename Dispatch>
23981   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV, Dispatch>>::type
createIndirectCommandsLayoutNVUnique(const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const23982                        Device::createIndirectCommandsLayoutNVUnique( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoNV & createInfo,
23983                                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>        allocator,
23984                                                   Dispatch const &                                                 d ) const
23985   {
23986     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
23987 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
23988     VULKAN_HPP_ASSERT( d.vkCreateIndirectCommandsLayoutNV && "Function <vkCreateIndirectCommandsLayoutNV> requires <VK_NV_device_generated_commands>" );
23989 #    endif
23990 
23991     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout;
23992     VULKAN_HPP_NAMESPACE::Result                   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateIndirectCommandsLayoutNV(
23993       m_device,
23994       reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoNV *>( &createInfo ),
23995       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
23996       reinterpret_cast<VkIndirectCommandsLayoutNV *>( &indirectCommandsLayout ) ) );
23997     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutNVUnique" );
23998 
23999     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result,
24000                                                                 UniqueHandle<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV, Dispatch>(
24001                                                                   indirectCommandsLayout, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
24002   }
24003 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
24004 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
24005 
24006   // wrapper function for command vkDestroyIndirectCommandsLayoutNV, see
24007   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyIndirectCommandsLayoutNV.html
24008   template <typename Dispatch>
destroyIndirectCommandsLayoutNV(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const24009   VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV    indirectCommandsLayout,
24010                                                                   const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
24011                                                                   Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
24012   {
24013     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24014     d.vkDestroyIndirectCommandsLayoutNV( static_cast<VkDevice>( m_device ),
24015                                          static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ),
24016                                          reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
24017   }
24018 
24019 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
24020   // wrapper function for command vkDestroyIndirectCommandsLayoutNV, see
24021   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyIndirectCommandsLayoutNV.html
24022   template <typename Dispatch>
destroyIndirectCommandsLayoutNV(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const24023   VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutNV( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV            indirectCommandsLayout,
24024                                                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
24025                                                                   Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
24026   {
24027     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24028 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24029     VULKAN_HPP_ASSERT( d.vkDestroyIndirectCommandsLayoutNV && "Function <vkDestroyIndirectCommandsLayoutNV> requires <VK_NV_device_generated_commands>" );
24030 #  endif
24031 
24032     d.vkDestroyIndirectCommandsLayoutNV(
24033       m_device,
24034       static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ),
24035       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
24036   }
24037 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
24038 
24039   // wrapper function for command vkDestroyIndirectCommandsLayoutNV, see
24040   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyIndirectCommandsLayoutNV.html
24041   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const24042   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV    indirectCommandsLayout,
24043                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
24044                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
24045   {
24046     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24047     d.vkDestroyIndirectCommandsLayoutNV( static_cast<VkDevice>( m_device ),
24048                                          static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ),
24049                                          reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
24050   }
24051 
24052 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
24053   // wrapper function for command vkDestroyIndirectCommandsLayoutNV, see
24054   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyIndirectCommandsLayoutNV.html
24055   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV indirectCommandsLayout,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const24056   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutNV            indirectCommandsLayout,
24057                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
24058                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
24059   {
24060     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24061 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24062     VULKAN_HPP_ASSERT( d.vkDestroyIndirectCommandsLayoutNV && "Function <vkDestroyIndirectCommandsLayoutNV> requires <VK_NV_device_generated_commands>" );
24063 #  endif
24064 
24065     d.vkDestroyIndirectCommandsLayoutNV(
24066       m_device,
24067       static_cast<VkIndirectCommandsLayoutNV>( indirectCommandsLayout ),
24068       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
24069   }
24070 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
24071 
24072   //=== VK_EXT_depth_bias_control ===
24073 
24074   // wrapper function for command vkCmdSetDepthBias2EXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthBias2EXT.html
24075   template <typename Dispatch>
setDepthBias2EXT(const VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT * pDepthBiasInfo,Dispatch const & d) const24076   VULKAN_HPP_INLINE void CommandBuffer::setDepthBias2EXT( const VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT * pDepthBiasInfo,
24077                                                           Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
24078   {
24079     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24080     d.vkCmdSetDepthBias2EXT( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkDepthBiasInfoEXT *>( pDepthBiasInfo ) );
24081   }
24082 
24083 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
24084   // wrapper function for command vkCmdSetDepthBias2EXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthBias2EXT.html
24085   template <typename Dispatch>
setDepthBias2EXT(const VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT & depthBiasInfo,Dispatch const & d) const24086   VULKAN_HPP_INLINE void CommandBuffer::setDepthBias2EXT( const VULKAN_HPP_NAMESPACE::DepthBiasInfoEXT & depthBiasInfo,
24087                                                           Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
24088   {
24089     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24090 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24091     VULKAN_HPP_ASSERT( d.vkCmdSetDepthBias2EXT && "Function <vkCmdSetDepthBias2EXT> requires <VK_EXT_depth_bias_control>" );
24092 #  endif
24093 
24094     d.vkCmdSetDepthBias2EXT( m_commandBuffer, reinterpret_cast<const VkDepthBiasInfoEXT *>( &depthBiasInfo ) );
24095   }
24096 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
24097 
24098   //=== VK_EXT_acquire_drm_display ===
24099 
24100 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
24101   // wrapper function for command vkAcquireDrmDisplayEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireDrmDisplayEXT.html
24102   template <typename Dispatch>
acquireDrmDisplayEXT(int32_t drmFd,VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const24103   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::acquireDrmDisplayEXT( int32_t                          drmFd,
24104                                                                                       VULKAN_HPP_NAMESPACE::DisplayKHR display,
24105                                                                                       Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
24106   {
24107     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24108     return static_cast<Result>( d.vkAcquireDrmDisplayEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), drmFd, static_cast<VkDisplayKHR>( display ) ) );
24109   }
24110 #else
24111   // wrapper function for command vkAcquireDrmDisplayEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireDrmDisplayEXT.html
24112   template <typename Dispatch>
24113   VULKAN_HPP_INLINE typename ResultValueType<void>::type
acquireDrmDisplayEXT(int32_t drmFd,VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const24114     PhysicalDevice::acquireDrmDisplayEXT( int32_t drmFd, VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const
24115   {
24116     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24117 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24118     VULKAN_HPP_ASSERT( d.vkAcquireDrmDisplayEXT && "Function <vkAcquireDrmDisplayEXT> requires <VK_EXT_acquire_drm_display>" );
24119 #  endif
24120 
24121     VULKAN_HPP_NAMESPACE::Result result =
24122       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAcquireDrmDisplayEXT( m_physicalDevice, drmFd, static_cast<VkDisplayKHR>( display ) ) );
24123     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireDrmDisplayEXT" );
24124 
24125     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
24126   }
24127 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
24128 
24129   // wrapper function for command vkGetDrmDisplayEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDrmDisplayEXT.html
24130   template <typename Dispatch>
getDrmDisplayEXT(int32_t drmFd,uint32_t connectorId,VULKAN_HPP_NAMESPACE::DisplayKHR * display,Dispatch const & d) const24131   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getDrmDisplayEXT( int32_t                            drmFd,
24132                                                                                   uint32_t                           connectorId,
24133                                                                                   VULKAN_HPP_NAMESPACE::DisplayKHR * display,
24134                                                                                   Dispatch const &                   d ) const VULKAN_HPP_NOEXCEPT
24135   {
24136     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24137     return static_cast<Result>(
24138       d.vkGetDrmDisplayEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), drmFd, connectorId, reinterpret_cast<VkDisplayKHR *>( display ) ) );
24139   }
24140 
24141 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
24142   // wrapper function for command vkGetDrmDisplayEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDrmDisplayEXT.html
24143   template <typename Dispatch>
24144   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayKHR>::type
getDrmDisplayEXT(int32_t drmFd,uint32_t connectorId,Dispatch const & d) const24145                        PhysicalDevice::getDrmDisplayEXT( int32_t drmFd, uint32_t connectorId, Dispatch const & d ) const
24146   {
24147     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24148 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24149     VULKAN_HPP_ASSERT( d.vkGetDrmDisplayEXT && "Function <vkGetDrmDisplayEXT> requires <VK_EXT_acquire_drm_display>" );
24150 #  endif
24151 
24152     VULKAN_HPP_NAMESPACE::DisplayKHR display;
24153     VULKAN_HPP_NAMESPACE::Result     result =
24154       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDrmDisplayEXT( m_physicalDevice, drmFd, connectorId, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
24155     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDrmDisplayEXT" );
24156 
24157     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( display ) );
24158   }
24159 
24160 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
24161   // wrapper function for command vkGetDrmDisplayEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDrmDisplayEXT.html
24162   template <typename Dispatch>
24163   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayKHR, Dispatch>>::type
getDrmDisplayEXTUnique(int32_t drmFd,uint32_t connectorId,Dispatch const & d) const24164                        PhysicalDevice::getDrmDisplayEXTUnique( int32_t drmFd, uint32_t connectorId, Dispatch const & d ) const
24165   {
24166     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24167 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24168     VULKAN_HPP_ASSERT( d.vkGetDrmDisplayEXT && "Function <vkGetDrmDisplayEXT> requires <VK_EXT_acquire_drm_display>" );
24169 #    endif
24170 
24171     VULKAN_HPP_NAMESPACE::DisplayKHR display;
24172     VULKAN_HPP_NAMESPACE::Result     result =
24173       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDrmDisplayEXT( m_physicalDevice, drmFd, connectorId, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
24174     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getDrmDisplayEXTUnique" );
24175 
24176     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
24177       result, UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayKHR, Dispatch>( display, detail::ObjectRelease<PhysicalDevice, Dispatch>( *this, d ) ) );
24178   }
24179 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
24180 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
24181 
24182   //=== VK_EXT_private_data ===
24183 
24184   // wrapper function for command vkCreatePrivateDataSlotEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePrivateDataSlotEXT.html
24185   template <typename Dispatch>
createPrivateDataSlotEXT(const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::PrivateDataSlot * pPrivateDataSlot,Dispatch const & d) const24186   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createPrivateDataSlotEXT( const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo * pCreateInfo,
24187                                                                                   const VULKAN_HPP_NAMESPACE::AllocationCallbacks *       pAllocator,
24188                                                                                   VULKAN_HPP_NAMESPACE::PrivateDataSlot *                 pPrivateDataSlot,
24189                                                                                   Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
24190   {
24191     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24192     return static_cast<Result>( d.vkCreatePrivateDataSlotEXT( static_cast<VkDevice>( m_device ),
24193                                                               reinterpret_cast<const VkPrivateDataSlotCreateInfo *>( pCreateInfo ),
24194                                                               reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
24195                                                               reinterpret_cast<VkPrivateDataSlot *>( pPrivateDataSlot ) ) );
24196   }
24197 
24198 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
24199   // wrapper function for command vkCreatePrivateDataSlotEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePrivateDataSlotEXT.html
24200   template <typename Dispatch>
24201   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::PrivateDataSlot>::type
createPrivateDataSlotEXT(const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const24202                        Device::createPrivateDataSlotEXT( const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo &   createInfo,
24203                                       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
24204                                       Dispatch const &                                          d ) const
24205   {
24206     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24207 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24208     VULKAN_HPP_ASSERT( d.vkCreatePrivateDataSlotEXT && "Function <vkCreatePrivateDataSlotEXT> requires <VK_EXT_private_data> or <VK_VERSION_1_3>" );
24209 #  endif
24210 
24211     VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot;
24212     VULKAN_HPP_NAMESPACE::Result          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreatePrivateDataSlotEXT(
24213       m_device,
24214       reinterpret_cast<const VkPrivateDataSlotCreateInfo *>( &createInfo ),
24215       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
24216       reinterpret_cast<VkPrivateDataSlot *>( &privateDataSlot ) ) );
24217     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlotEXT" );
24218 
24219     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( privateDataSlot ) );
24220   }
24221 
24222 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
24223   // wrapper function for command vkCreatePrivateDataSlotEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePrivateDataSlotEXT.html
24224   template <typename Dispatch>
24225   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::PrivateDataSlot, Dispatch>>::type
createPrivateDataSlotEXTUnique(const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const24226                        Device::createPrivateDataSlotEXTUnique( const VULKAN_HPP_NAMESPACE::PrivateDataSlotCreateInfo &   createInfo,
24227                                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
24228                                             Dispatch const &                                          d ) const
24229   {
24230     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24231 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24232     VULKAN_HPP_ASSERT( d.vkCreatePrivateDataSlotEXT && "Function <vkCreatePrivateDataSlotEXT> requires <VK_EXT_private_data> or <VK_VERSION_1_3>" );
24233 #    endif
24234 
24235     VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot;
24236     VULKAN_HPP_NAMESPACE::Result          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreatePrivateDataSlotEXT(
24237       m_device,
24238       reinterpret_cast<const VkPrivateDataSlotCreateInfo *>( &createInfo ),
24239       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
24240       reinterpret_cast<VkPrivateDataSlot *>( &privateDataSlot ) ) );
24241     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createPrivateDataSlotEXTUnique" );
24242 
24243     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
24244       result,
24245       UniqueHandle<VULKAN_HPP_NAMESPACE::PrivateDataSlot, Dispatch>( privateDataSlot, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
24246   }
24247 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
24248 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
24249 
24250   // wrapper function for command vkDestroyPrivateDataSlotEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPrivateDataSlotEXT.html
24251   template <typename Dispatch>
destroyPrivateDataSlotEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const24252   VULKAN_HPP_INLINE void Device::destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlot             privateDataSlot,
24253                                                             const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
24254                                                             Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
24255   {
24256     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24257     d.vkDestroyPrivateDataSlotEXT(
24258       static_cast<VkDevice>( m_device ), static_cast<VkPrivateDataSlot>( privateDataSlot ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
24259   }
24260 
24261 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
24262   // wrapper function for command vkDestroyPrivateDataSlotEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPrivateDataSlotEXT.html
24263   template <typename Dispatch>
destroyPrivateDataSlotEXT(VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const24264   VULKAN_HPP_INLINE void Device::destroyPrivateDataSlotEXT( VULKAN_HPP_NAMESPACE::PrivateDataSlot                     privateDataSlot,
24265                                                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
24266                                                             Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
24267   {
24268     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24269 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24270     VULKAN_HPP_ASSERT( d.vkDestroyPrivateDataSlotEXT && "Function <vkDestroyPrivateDataSlotEXT> requires <VK_EXT_private_data> or <VK_VERSION_1_3>" );
24271 #  endif
24272 
24273     d.vkDestroyPrivateDataSlotEXT(
24274       m_device,
24275       static_cast<VkPrivateDataSlot>( privateDataSlot ),
24276       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
24277   }
24278 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
24279 
24280 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
24281   // wrapper function for command vkSetPrivateDataEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetPrivateDataEXT.html
24282   template <typename Dispatch>
setPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType_,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,uint64_t data,Dispatch const & d) const24283   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
24284                                                                            uint64_t                              objectHandle,
24285                                                                            VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
24286                                                                            uint64_t                              data,
24287                                                                            Dispatch const &                      d ) const VULKAN_HPP_NOEXCEPT
24288   {
24289     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24290     return static_cast<Result>( d.vkSetPrivateDataEXT(
24291       static_cast<VkDevice>( m_device ), static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), data ) );
24292   }
24293 #else
24294   // wrapper function for command vkSetPrivateDataEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetPrivateDataEXT.html
24295   template <typename Dispatch>
setPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType_,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,uint64_t data,Dispatch const & d) const24296   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
24297                                                                                     uint64_t                              objectHandle,
24298                                                                                     VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
24299                                                                                     uint64_t                              data,
24300                                                                                     Dispatch const &                      d ) const
24301   {
24302     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24303 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24304     VULKAN_HPP_ASSERT( d.vkSetPrivateDataEXT && "Function <vkSetPrivateDataEXT> requires <VK_EXT_private_data> or <VK_VERSION_1_3>" );
24305 #  endif
24306 
24307     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
24308       d.vkSetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), data ) );
24309     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setPrivateDataEXT" );
24310 
24311     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
24312   }
24313 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
24314 
24315   // wrapper function for command vkGetPrivateDataEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPrivateDataEXT.html
24316   template <typename Dispatch>
getPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType_,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,uint64_t * pData,Dispatch const & d) const24317   VULKAN_HPP_INLINE void Device::getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
24318                                                     uint64_t                              objectHandle,
24319                                                     VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
24320                                                     uint64_t *                            pData,
24321                                                     Dispatch const &                      d ) const VULKAN_HPP_NOEXCEPT
24322   {
24323     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24324     d.vkGetPrivateDataEXT(
24325       static_cast<VkDevice>( m_device ), static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), pData );
24326   }
24327 
24328 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
24329   // wrapper function for command vkGetPrivateDataEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPrivateDataEXT.html
24330   template <typename Dispatch>
getPrivateDataEXT(VULKAN_HPP_NAMESPACE::ObjectType objectType_,uint64_t objectHandle,VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,Dispatch const & d) const24331   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE uint64_t Device::getPrivateDataEXT( VULKAN_HPP_NAMESPACE::ObjectType      objectType_,
24332                                                                              uint64_t                              objectHandle,
24333                                                                              VULKAN_HPP_NAMESPACE::PrivateDataSlot privateDataSlot,
24334                                                                              Dispatch const &                      d ) const VULKAN_HPP_NOEXCEPT
24335   {
24336     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24337 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24338     VULKAN_HPP_ASSERT( d.vkGetPrivateDataEXT && "Function <vkGetPrivateDataEXT> requires <VK_EXT_private_data> or <VK_VERSION_1_3>" );
24339 #  endif
24340 
24341     uint64_t data;
24342     d.vkGetPrivateDataEXT( m_device, static_cast<VkObjectType>( objectType_ ), objectHandle, static_cast<VkPrivateDataSlot>( privateDataSlot ), &data );
24343 
24344     return data;
24345   }
24346 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
24347 
24348   //=== VK_KHR_video_encode_queue ===
24349 
24350   // wrapper function for command vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR, see
24351   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR.html
24352   template <typename Dispatch>
24353   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getVideoEncodeQualityLevelPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR * pQualityLevelInfo,VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR * pQualityLevelProperties,Dispatch const & d) const24354     PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR * pQualityLevelInfo,
24355                                                              VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR *               pQualityLevelProperties,
24356                                                              Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
24357   {
24358     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24359     return static_cast<Result>(
24360       d.vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR( static_cast<VkPhysicalDevice>( m_physicalDevice ),
24361                                                                  reinterpret_cast<const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR *>( pQualityLevelInfo ),
24362                                                                  reinterpret_cast<VkVideoEncodeQualityLevelPropertiesKHR *>( pQualityLevelProperties ) ) );
24363   }
24364 
24365 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
24366   // wrapper function for command vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR, see
24367   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR.html
24368   template <typename Dispatch>
24369   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR>::type
getVideoEncodeQualityLevelPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo,Dispatch const & d) const24370     PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo,
24371                                                              Dispatch const &                                                           d ) const
24372   {
24373     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24374 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24375     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR &&
24376                        "Function <vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR> requires <VK_KHR_video_encode_queue>" );
24377 #  endif
24378 
24379     VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR qualityLevelProperties;
24380     VULKAN_HPP_NAMESPACE::Result                               result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
24381       d.vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR( m_physicalDevice,
24382                                                                  reinterpret_cast<const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR *>( &qualityLevelInfo ),
24383                                                                  reinterpret_cast<VkVideoEncodeQualityLevelPropertiesKHR *>( &qualityLevelProperties ) ) );
24384     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR" );
24385 
24386     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( qualityLevelProperties ) );
24387   }
24388 
24389   // wrapper function for command vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR, see
24390   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR.html
24391   template <typename X, typename Y, typename... Z, typename Dispatch>
24392   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>>::type
getVideoEncodeQualityLevelPropertiesKHR(const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo,Dispatch const & d) const24393     PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR( const VULKAN_HPP_NAMESPACE::PhysicalDeviceVideoEncodeQualityLevelInfoKHR & qualityLevelInfo,
24394                                                              Dispatch const &                                                           d ) const
24395   {
24396     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24397 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24398     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR &&
24399                        "Function <vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR> requires <VK_KHR_video_encode_queue>" );
24400 #  endif
24401 
24402     StructureChain<X, Y, Z...>                                   structureChain;
24403     VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR & qualityLevelProperties =
24404       structureChain.template get<VULKAN_HPP_NAMESPACE::VideoEncodeQualityLevelPropertiesKHR>();
24405     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
24406       d.vkGetPhysicalDeviceVideoEncodeQualityLevelPropertiesKHR( m_physicalDevice,
24407                                                                  reinterpret_cast<const VkPhysicalDeviceVideoEncodeQualityLevelInfoKHR *>( &qualityLevelInfo ),
24408                                                                  reinterpret_cast<VkVideoEncodeQualityLevelPropertiesKHR *>( &qualityLevelProperties ) ) );
24409     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getVideoEncodeQualityLevelPropertiesKHR" );
24410 
24411     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( structureChain ) );
24412   }
24413 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
24414 
24415   // wrapper function for command vkGetEncodedVideoSessionParametersKHR, see
24416   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetEncodedVideoSessionParametersKHR.html
24417   template <typename Dispatch>
24418   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getEncodedVideoSessionParametersKHR(const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR * pVideoSessionParametersInfo,VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR * pFeedbackInfo,size_t * pDataSize,void * pData,Dispatch const & d) const24419     Device::getEncodedVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR * pVideoSessionParametersInfo,
24420                                                  VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR *  pFeedbackInfo,
24421                                                  size_t *                                                             pDataSize,
24422                                                  void *                                                               pData,
24423                                                  Dispatch const &                                                     d ) const VULKAN_HPP_NOEXCEPT
24424   {
24425     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24426     return static_cast<Result>(
24427       d.vkGetEncodedVideoSessionParametersKHR( static_cast<VkDevice>( m_device ),
24428                                                reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( pVideoSessionParametersInfo ),
24429                                                reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( pFeedbackInfo ),
24430                                                pDataSize,
24431                                                pData ) );
24432   }
24433 
24434 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
24435   // wrapper function for command vkGetEncodedVideoSessionParametersKHR, see
24436   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetEncodedVideoSessionParametersKHR.html
24437   template <typename Uint8_tAllocator,
24438             typename Dispatch,
24439             typename std::enable_if<std::is_same<typename Uint8_tAllocator::value_type, uint8_t>::value, int>::type>
24440   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
24441     typename ResultValueType<std::pair<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR, std::vector<uint8_t, Uint8_tAllocator>>>::type
getEncodedVideoSessionParametersKHR(const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo,Dispatch const & d) const24442     Device::getEncodedVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo,
24443                                                  Dispatch const &                                                     d ) const
24444   {
24445     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24446 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24447     VULKAN_HPP_ASSERT( d.vkGetEncodedVideoSessionParametersKHR && "Function <vkGetEncodedVideoSessionParametersKHR> requires <VK_KHR_video_encode_queue>" );
24448 #  endif
24449 
24450     std::pair<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR, std::vector<uint8_t, Uint8_tAllocator>> data_;
24451     VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR &                                                  feedbackInfo = data_.first;
24452     std::vector<uint8_t, Uint8_tAllocator> &                                                                             data         = data_.second;
24453     size_t                                                                                                               dataSize;
24454     VULKAN_HPP_NAMESPACE::Result                                                                                         result;
24455     do
24456     {
24457       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
24458         d.vkGetEncodedVideoSessionParametersKHR( m_device,
24459                                                  reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ),
24460                                                  reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ),
24461                                                  &dataSize,
24462                                                  nullptr ) );
24463       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
24464       {
24465         data.resize( dataSize );
24466         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
24467           d.vkGetEncodedVideoSessionParametersKHR( m_device,
24468                                                    reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ),
24469                                                    reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ),
24470                                                    &dataSize,
24471                                                    reinterpret_cast<void *>( data.data() ) ) );
24472       }
24473     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
24474     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getEncodedVideoSessionParametersKHR" );
24475 
24476     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data_ ) );
24477   }
24478 
24479   // wrapper function for command vkGetEncodedVideoSessionParametersKHR, see
24480   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetEncodedVideoSessionParametersKHR.html
24481   template <typename Uint8_tAllocator,
24482             typename Dispatch,
24483             typename std::enable_if<std::is_same<typename Uint8_tAllocator::value_type, uint8_t>::value, int>::type>
24484   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
24485     typename ResultValueType<std::pair<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR, std::vector<uint8_t, Uint8_tAllocator>>>::type
getEncodedVideoSessionParametersKHR(const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo,Uint8_tAllocator & uint8_tAllocator,Dispatch const & d) const24486     Device::getEncodedVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo,
24487                                                  Uint8_tAllocator &                                                   uint8_tAllocator,
24488                                                  Dispatch const &                                                     d ) const
24489   {
24490     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24491 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24492     VULKAN_HPP_ASSERT( d.vkGetEncodedVideoSessionParametersKHR && "Function <vkGetEncodedVideoSessionParametersKHR> requires <VK_KHR_video_encode_queue>" );
24493 #  endif
24494 
24495     std::pair<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR, std::vector<uint8_t, Uint8_tAllocator>> data_(
24496       std::piecewise_construct, std::forward_as_tuple(), std::forward_as_tuple( uint8_tAllocator ) );
24497     VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR & feedbackInfo = data_.first;
24498     std::vector<uint8_t, Uint8_tAllocator> &                            data         = data_.second;
24499     size_t                                                              dataSize;
24500     VULKAN_HPP_NAMESPACE::Result                                        result;
24501     do
24502     {
24503       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
24504         d.vkGetEncodedVideoSessionParametersKHR( m_device,
24505                                                  reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ),
24506                                                  reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ),
24507                                                  &dataSize,
24508                                                  nullptr ) );
24509       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
24510       {
24511         data.resize( dataSize );
24512         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
24513           d.vkGetEncodedVideoSessionParametersKHR( m_device,
24514                                                    reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ),
24515                                                    reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ),
24516                                                    &dataSize,
24517                                                    reinterpret_cast<void *>( data.data() ) ) );
24518       }
24519     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
24520     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getEncodedVideoSessionParametersKHR" );
24521 
24522     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data_ ) );
24523   }
24524 
24525   // wrapper function for command vkGetEncodedVideoSessionParametersKHR, see
24526   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetEncodedVideoSessionParametersKHR.html
24527   template <typename X,
24528             typename Y,
24529             typename... Z,
24530             typename Uint8_tAllocator,
24531             typename Dispatch,
24532             typename std::enable_if<std::is_same<typename Uint8_tAllocator::value_type, uint8_t>::value, int>::type>
24533   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
24534     typename ResultValueType<std::pair<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>, std::vector<uint8_t, Uint8_tAllocator>>>::type
getEncodedVideoSessionParametersKHR(const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo,Dispatch const & d) const24535     Device::getEncodedVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo,
24536                                                  Dispatch const &                                                     d ) const
24537   {
24538     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24539 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24540     VULKAN_HPP_ASSERT( d.vkGetEncodedVideoSessionParametersKHR && "Function <vkGetEncodedVideoSessionParametersKHR> requires <VK_KHR_video_encode_queue>" );
24541 #  endif
24542 
24543     std::pair<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>, std::vector<uint8_t, Uint8_tAllocator>> data_;
24544     VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR &                                 feedbackInfo =
24545       data_.first.template get<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR>();
24546     std::vector<uint8_t, Uint8_tAllocator> & data = data_.second;
24547     size_t                                   dataSize;
24548     VULKAN_HPP_NAMESPACE::Result             result;
24549     do
24550     {
24551       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
24552         d.vkGetEncodedVideoSessionParametersKHR( m_device,
24553                                                  reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ),
24554                                                  reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ),
24555                                                  &dataSize,
24556                                                  nullptr ) );
24557       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
24558       {
24559         data.resize( dataSize );
24560         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
24561           d.vkGetEncodedVideoSessionParametersKHR( m_device,
24562                                                    reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ),
24563                                                    reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ),
24564                                                    &dataSize,
24565                                                    reinterpret_cast<void *>( data.data() ) ) );
24566       }
24567     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
24568     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getEncodedVideoSessionParametersKHR" );
24569 
24570     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data_ ) );
24571   }
24572 
24573   // wrapper function for command vkGetEncodedVideoSessionParametersKHR, see
24574   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetEncodedVideoSessionParametersKHR.html
24575   template <typename X,
24576             typename Y,
24577             typename... Z,
24578             typename Uint8_tAllocator,
24579             typename Dispatch,
24580             typename std::enable_if<std::is_same<typename Uint8_tAllocator::value_type, uint8_t>::value, int>::type>
24581   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
24582     typename ResultValueType<std::pair<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>, std::vector<uint8_t, Uint8_tAllocator>>>::type
getEncodedVideoSessionParametersKHR(const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo,Uint8_tAllocator & uint8_tAllocator,Dispatch const & d) const24583     Device::getEncodedVideoSessionParametersKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersGetInfoKHR & videoSessionParametersInfo,
24584                                                  Uint8_tAllocator &                                                   uint8_tAllocator,
24585                                                  Dispatch const &                                                     d ) const
24586   {
24587     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24588 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24589     VULKAN_HPP_ASSERT( d.vkGetEncodedVideoSessionParametersKHR && "Function <vkGetEncodedVideoSessionParametersKHR> requires <VK_KHR_video_encode_queue>" );
24590 #  endif
24591 
24592     std::pair<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>, std::vector<uint8_t, Uint8_tAllocator>> data_(
24593       std::piecewise_construct, std::forward_as_tuple(), std::forward_as_tuple( uint8_tAllocator ) );
24594     VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR & feedbackInfo =
24595       data_.first.template get<VULKAN_HPP_NAMESPACE::VideoEncodeSessionParametersFeedbackInfoKHR>();
24596     std::vector<uint8_t, Uint8_tAllocator> & data = data_.second;
24597     size_t                                   dataSize;
24598     VULKAN_HPP_NAMESPACE::Result             result;
24599     do
24600     {
24601       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
24602         d.vkGetEncodedVideoSessionParametersKHR( m_device,
24603                                                  reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ),
24604                                                  reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ),
24605                                                  &dataSize,
24606                                                  nullptr ) );
24607       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
24608       {
24609         data.resize( dataSize );
24610         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
24611           d.vkGetEncodedVideoSessionParametersKHR( m_device,
24612                                                    reinterpret_cast<const VkVideoEncodeSessionParametersGetInfoKHR *>( &videoSessionParametersInfo ),
24613                                                    reinterpret_cast<VkVideoEncodeSessionParametersFeedbackInfoKHR *>( &feedbackInfo ),
24614                                                    &dataSize,
24615                                                    reinterpret_cast<void *>( data.data() ) ) );
24616       }
24617     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
24618     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getEncodedVideoSessionParametersKHR" );
24619 
24620     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data_ ) );
24621   }
24622 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
24623 
24624   // wrapper function for command vkCmdEncodeVideoKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEncodeVideoKHR.html
24625   template <typename Dispatch>
encodeVideoKHR(const VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR * pEncodeInfo,Dispatch const & d) const24626   VULKAN_HPP_INLINE void CommandBuffer::encodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR * pEncodeInfo,
24627                                                         Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
24628   {
24629     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24630     d.vkCmdEncodeVideoKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkVideoEncodeInfoKHR *>( pEncodeInfo ) );
24631   }
24632 
24633 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
24634   // wrapper function for command vkCmdEncodeVideoKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdEncodeVideoKHR.html
24635   template <typename Dispatch>
encodeVideoKHR(const VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR & encodeInfo,Dispatch const & d) const24636   VULKAN_HPP_INLINE void CommandBuffer::encodeVideoKHR( const VULKAN_HPP_NAMESPACE::VideoEncodeInfoKHR & encodeInfo,
24637                                                         Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
24638   {
24639     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24640 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24641     VULKAN_HPP_ASSERT( d.vkCmdEncodeVideoKHR && "Function <vkCmdEncodeVideoKHR> requires <VK_KHR_video_encode_queue>" );
24642 #  endif
24643 
24644     d.vkCmdEncodeVideoKHR( m_commandBuffer, reinterpret_cast<const VkVideoEncodeInfoKHR *>( &encodeInfo ) );
24645   }
24646 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
24647 
24648 #if defined( VK_ENABLE_BETA_EXTENSIONS )
24649   //=== VK_NV_cuda_kernel_launch ===
24650 
24651   // wrapper function for command vkCreateCudaModuleNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCudaModuleNV.html
24652   template <typename Dispatch>
createCudaModuleNV(const VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::CudaModuleNV * pModule,Dispatch const & d) const24653   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createCudaModuleNV( const VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV * pCreateInfo,
24654                                                                             const VULKAN_HPP_NAMESPACE::AllocationCallbacks *    pAllocator,
24655                                                                             VULKAN_HPP_NAMESPACE::CudaModuleNV *                 pModule,
24656                                                                             Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
24657   {
24658     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24659     return static_cast<Result>( d.vkCreateCudaModuleNV( static_cast<VkDevice>( m_device ),
24660                                                         reinterpret_cast<const VkCudaModuleCreateInfoNV *>( pCreateInfo ),
24661                                                         reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
24662                                                         reinterpret_cast<VkCudaModuleNV *>( pModule ) ) );
24663   }
24664 
24665 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
24666   // wrapper function for command vkCreateCudaModuleNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCudaModuleNV.html
24667   template <typename Dispatch>
24668   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::CudaModuleNV>::type
createCudaModuleNV(const VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const24669                        Device::createCudaModuleNV( const VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV &      createInfo,
24670                                 Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
24671                                 Dispatch const &                                          d ) const
24672   {
24673     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24674 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24675     VULKAN_HPP_ASSERT( d.vkCreateCudaModuleNV && "Function <vkCreateCudaModuleNV> requires <VK_NV_cuda_kernel_launch>" );
24676 #    endif
24677 
24678     VULKAN_HPP_NAMESPACE::CudaModuleNV module;
24679     VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
24680       d.vkCreateCudaModuleNV( m_device,
24681                               reinterpret_cast<const VkCudaModuleCreateInfoNV *>( &createInfo ),
24682                               reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
24683                               reinterpret_cast<VkCudaModuleNV *>( &module ) ) );
24684     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createCudaModuleNV" );
24685 
24686     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( module ) );
24687   }
24688 
24689 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
24690   // wrapper function for command vkCreateCudaModuleNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCudaModuleNV.html
24691   template <typename Dispatch>
24692   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::CudaModuleNV, Dispatch>>::type
createCudaModuleNVUnique(const VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const24693                        Device::createCudaModuleNVUnique( const VULKAN_HPP_NAMESPACE::CudaModuleCreateInfoNV &      createInfo,
24694                                       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
24695                                       Dispatch const &                                          d ) const
24696   {
24697     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24698 #      if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24699     VULKAN_HPP_ASSERT( d.vkCreateCudaModuleNV && "Function <vkCreateCudaModuleNV> requires <VK_NV_cuda_kernel_launch>" );
24700 #      endif
24701 
24702     VULKAN_HPP_NAMESPACE::CudaModuleNV module;
24703     VULKAN_HPP_NAMESPACE::Result       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
24704       d.vkCreateCudaModuleNV( m_device,
24705                               reinterpret_cast<const VkCudaModuleCreateInfoNV *>( &createInfo ),
24706                               reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
24707                               reinterpret_cast<VkCudaModuleNV *>( &module ) ) );
24708     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createCudaModuleNVUnique" );
24709 
24710     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
24711       result, UniqueHandle<VULKAN_HPP_NAMESPACE::CudaModuleNV, Dispatch>( module, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
24712   }
24713 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
24714 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
24715 
24716   // wrapper function for command vkGetCudaModuleCacheNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCudaModuleCacheNV.html
24717   template <typename Dispatch>
getCudaModuleCacheNV(VULKAN_HPP_NAMESPACE::CudaModuleNV module,size_t * pCacheSize,void * pCacheData,Dispatch const & d) const24718   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getCudaModuleCacheNV( VULKAN_HPP_NAMESPACE::CudaModuleNV module,
24719                                                                               size_t *                           pCacheSize,
24720                                                                               void *                             pCacheData,
24721                                                                               Dispatch const &                   d ) const VULKAN_HPP_NOEXCEPT
24722   {
24723     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24724     return static_cast<Result>( d.vkGetCudaModuleCacheNV( static_cast<VkDevice>( m_device ), static_cast<VkCudaModuleNV>( module ), pCacheSize, pCacheData ) );
24725   }
24726 
24727 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
24728   // wrapper function for command vkGetCudaModuleCacheNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCudaModuleCacheNV.html
24729   template <typename Uint8_tAllocator,
24730             typename Dispatch,
24731             typename std::enable_if<std::is_same<typename Uint8_tAllocator::value_type, uint8_t>::value, int>::type>
24732   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type
getCudaModuleCacheNV(VULKAN_HPP_NAMESPACE::CudaModuleNV module,Dispatch const & d) const24733                        Device::getCudaModuleCacheNV( VULKAN_HPP_NAMESPACE::CudaModuleNV module, Dispatch const & d ) const
24734   {
24735     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24736 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24737     VULKAN_HPP_ASSERT( d.vkGetCudaModuleCacheNV && "Function <vkGetCudaModuleCacheNV> requires <VK_NV_cuda_kernel_launch>" );
24738 #    endif
24739 
24740     std::vector<uint8_t, Uint8_tAllocator> cacheData;
24741     size_t                                 cacheSize;
24742     VULKAN_HPP_NAMESPACE::Result           result;
24743     do
24744     {
24745       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetCudaModuleCacheNV( m_device, static_cast<VkCudaModuleNV>( module ), &cacheSize, nullptr ) );
24746       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && cacheSize )
24747       {
24748         cacheData.resize( cacheSize );
24749         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
24750           d.vkGetCudaModuleCacheNV( m_device, static_cast<VkCudaModuleNV>( module ), &cacheSize, reinterpret_cast<void *>( cacheData.data() ) ) );
24751       }
24752     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
24753     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCudaModuleCacheNV" );
24754     VULKAN_HPP_ASSERT( cacheSize <= cacheData.size() );
24755     if ( cacheSize < cacheData.size() )
24756     {
24757       cacheData.resize( cacheSize );
24758     }
24759     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( cacheData ) );
24760   }
24761 
24762   // wrapper function for command vkGetCudaModuleCacheNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCudaModuleCacheNV.html
24763   template <typename Uint8_tAllocator,
24764             typename Dispatch,
24765             typename std::enable_if<std::is_same<typename Uint8_tAllocator::value_type, uint8_t>::value, int>::type>
24766   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type
getCudaModuleCacheNV(VULKAN_HPP_NAMESPACE::CudaModuleNV module,Uint8_tAllocator & uint8_tAllocator,Dispatch const & d) const24767                        Device::getCudaModuleCacheNV( VULKAN_HPP_NAMESPACE::CudaModuleNV module, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d ) const
24768   {
24769     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24770 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24771     VULKAN_HPP_ASSERT( d.vkGetCudaModuleCacheNV && "Function <vkGetCudaModuleCacheNV> requires <VK_NV_cuda_kernel_launch>" );
24772 #    endif
24773 
24774     std::vector<uint8_t, Uint8_tAllocator> cacheData( uint8_tAllocator );
24775     size_t                                 cacheSize;
24776     VULKAN_HPP_NAMESPACE::Result           result;
24777     do
24778     {
24779       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetCudaModuleCacheNV( m_device, static_cast<VkCudaModuleNV>( module ), &cacheSize, nullptr ) );
24780       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && cacheSize )
24781       {
24782         cacheData.resize( cacheSize );
24783         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
24784           d.vkGetCudaModuleCacheNV( m_device, static_cast<VkCudaModuleNV>( module ), &cacheSize, reinterpret_cast<void *>( cacheData.data() ) ) );
24785       }
24786     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
24787     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCudaModuleCacheNV" );
24788     VULKAN_HPP_ASSERT( cacheSize <= cacheData.size() );
24789     if ( cacheSize < cacheData.size() )
24790     {
24791       cacheData.resize( cacheSize );
24792     }
24793     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( cacheData ) );
24794   }
24795 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
24796 
24797   // wrapper function for command vkCreateCudaFunctionNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCudaFunctionNV.html
24798   template <typename Dispatch>
createCudaFunctionNV(const VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::CudaFunctionNV * pFunction,Dispatch const & d) const24799   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createCudaFunctionNV( const VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV * pCreateInfo,
24800                                                                               const VULKAN_HPP_NAMESPACE::AllocationCallbacks *      pAllocator,
24801                                                                               VULKAN_HPP_NAMESPACE::CudaFunctionNV *                 pFunction,
24802                                                                               Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
24803   {
24804     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24805     return static_cast<Result>( d.vkCreateCudaFunctionNV( static_cast<VkDevice>( m_device ),
24806                                                           reinterpret_cast<const VkCudaFunctionCreateInfoNV *>( pCreateInfo ),
24807                                                           reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
24808                                                           reinterpret_cast<VkCudaFunctionNV *>( pFunction ) ) );
24809   }
24810 
24811 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
24812   // wrapper function for command vkCreateCudaFunctionNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCudaFunctionNV.html
24813   template <typename Dispatch>
24814   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::CudaFunctionNV>::type
createCudaFunctionNV(const VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const24815                        Device::createCudaFunctionNV( const VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV &    createInfo,
24816                                   Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
24817                                   Dispatch const &                                          d ) const
24818   {
24819     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24820 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24821     VULKAN_HPP_ASSERT( d.vkCreateCudaFunctionNV && "Function <vkCreateCudaFunctionNV> requires <VK_NV_cuda_kernel_launch>" );
24822 #    endif
24823 
24824     VULKAN_HPP_NAMESPACE::CudaFunctionNV function;
24825     VULKAN_HPP_NAMESPACE::Result         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
24826       d.vkCreateCudaFunctionNV( m_device,
24827                                 reinterpret_cast<const VkCudaFunctionCreateInfoNV *>( &createInfo ),
24828                                 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
24829                                 reinterpret_cast<VkCudaFunctionNV *>( &function ) ) );
24830     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createCudaFunctionNV" );
24831 
24832     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( function ) );
24833   }
24834 
24835 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
24836   // wrapper function for command vkCreateCudaFunctionNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateCudaFunctionNV.html
24837   template <typename Dispatch>
24838   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::CudaFunctionNV, Dispatch>>::type
createCudaFunctionNVUnique(const VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const24839                        Device::createCudaFunctionNVUnique( const VULKAN_HPP_NAMESPACE::CudaFunctionCreateInfoNV &    createInfo,
24840                                         Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
24841                                         Dispatch const &                                          d ) const
24842   {
24843     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24844 #      if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24845     VULKAN_HPP_ASSERT( d.vkCreateCudaFunctionNV && "Function <vkCreateCudaFunctionNV> requires <VK_NV_cuda_kernel_launch>" );
24846 #      endif
24847 
24848     VULKAN_HPP_NAMESPACE::CudaFunctionNV function;
24849     VULKAN_HPP_NAMESPACE::Result         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
24850       d.vkCreateCudaFunctionNV( m_device,
24851                                 reinterpret_cast<const VkCudaFunctionCreateInfoNV *>( &createInfo ),
24852                                 reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
24853                                 reinterpret_cast<VkCudaFunctionNV *>( &function ) ) );
24854     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createCudaFunctionNVUnique" );
24855 
24856     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
24857       result, UniqueHandle<VULKAN_HPP_NAMESPACE::CudaFunctionNV, Dispatch>( function, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
24858   }
24859 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
24860 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
24861 
24862   // wrapper function for command vkDestroyCudaModuleNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCudaModuleNV.html
24863   template <typename Dispatch>
destroyCudaModuleNV(VULKAN_HPP_NAMESPACE::CudaModuleNV module,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const24864   VULKAN_HPP_INLINE void Device::destroyCudaModuleNV( VULKAN_HPP_NAMESPACE::CudaModuleNV                module,
24865                                                       const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
24866                                                       Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
24867   {
24868     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24869     d.vkDestroyCudaModuleNV(
24870       static_cast<VkDevice>( m_device ), static_cast<VkCudaModuleNV>( module ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
24871   }
24872 
24873 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
24874   // wrapper function for command vkDestroyCudaModuleNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCudaModuleNV.html
24875   template <typename Dispatch>
destroyCudaModuleNV(VULKAN_HPP_NAMESPACE::CudaModuleNV module,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const24876   VULKAN_HPP_INLINE void Device::destroyCudaModuleNV( VULKAN_HPP_NAMESPACE::CudaModuleNV                        module,
24877                                                       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
24878                                                       Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
24879   {
24880     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24881 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24882     VULKAN_HPP_ASSERT( d.vkDestroyCudaModuleNV && "Function <vkDestroyCudaModuleNV> requires <VK_NV_cuda_kernel_launch>" );
24883 #    endif
24884 
24885     d.vkDestroyCudaModuleNV( m_device,
24886                              static_cast<VkCudaModuleNV>( module ),
24887                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
24888   }
24889 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
24890 
24891   // wrapper function for command vkDestroyCudaModuleNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCudaModuleNV.html
24892   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::CudaModuleNV module,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const24893   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CudaModuleNV                module,
24894                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
24895                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
24896   {
24897     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24898     d.vkDestroyCudaModuleNV(
24899       static_cast<VkDevice>( m_device ), static_cast<VkCudaModuleNV>( module ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
24900   }
24901 
24902 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
24903   // wrapper function for command vkDestroyCudaModuleNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCudaModuleNV.html
24904   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::CudaModuleNV module,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const24905   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CudaModuleNV                        module,
24906                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
24907                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
24908   {
24909     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24910 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24911     VULKAN_HPP_ASSERT( d.vkDestroyCudaModuleNV && "Function <vkDestroyCudaModuleNV> requires <VK_NV_cuda_kernel_launch>" );
24912 #    endif
24913 
24914     d.vkDestroyCudaModuleNV( m_device,
24915                              static_cast<VkCudaModuleNV>( module ),
24916                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
24917   }
24918 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
24919 
24920   // wrapper function for command vkDestroyCudaFunctionNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCudaFunctionNV.html
24921   template <typename Dispatch>
destroyCudaFunctionNV(VULKAN_HPP_NAMESPACE::CudaFunctionNV function,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const24922   VULKAN_HPP_INLINE void Device::destroyCudaFunctionNV( VULKAN_HPP_NAMESPACE::CudaFunctionNV              function,
24923                                                         const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
24924                                                         Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
24925   {
24926     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24927     d.vkDestroyCudaFunctionNV(
24928       static_cast<VkDevice>( m_device ), static_cast<VkCudaFunctionNV>( function ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
24929   }
24930 
24931 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
24932   // wrapper function for command vkDestroyCudaFunctionNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCudaFunctionNV.html
24933   template <typename Dispatch>
destroyCudaFunctionNV(VULKAN_HPP_NAMESPACE::CudaFunctionNV function,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const24934   VULKAN_HPP_INLINE void Device::destroyCudaFunctionNV( VULKAN_HPP_NAMESPACE::CudaFunctionNV                      function,
24935                                                         Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
24936                                                         Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
24937   {
24938     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24939 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24940     VULKAN_HPP_ASSERT( d.vkDestroyCudaFunctionNV && "Function <vkDestroyCudaFunctionNV> requires <VK_NV_cuda_kernel_launch>" );
24941 #    endif
24942 
24943     d.vkDestroyCudaFunctionNV( m_device,
24944                                static_cast<VkCudaFunctionNV>( function ),
24945                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
24946   }
24947 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
24948 
24949   // wrapper function for command vkDestroyCudaFunctionNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCudaFunctionNV.html
24950   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::CudaFunctionNV function,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const24951   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CudaFunctionNV              function,
24952                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
24953                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
24954   {
24955     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24956     d.vkDestroyCudaFunctionNV(
24957       static_cast<VkDevice>( m_device ), static_cast<VkCudaFunctionNV>( function ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
24958   }
24959 
24960 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
24961   // wrapper function for command vkDestroyCudaFunctionNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyCudaFunctionNV.html
24962   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::CudaFunctionNV function,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const24963   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::CudaFunctionNV                      function,
24964                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
24965                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
24966   {
24967     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24968 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24969     VULKAN_HPP_ASSERT( d.vkDestroyCudaFunctionNV && "Function <vkDestroyCudaFunctionNV> requires <VK_NV_cuda_kernel_launch>" );
24970 #    endif
24971 
24972     d.vkDestroyCudaFunctionNV( m_device,
24973                                static_cast<VkCudaFunctionNV>( function ),
24974                                reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
24975   }
24976 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
24977 
24978   // wrapper function for command vkCmdCudaLaunchKernelNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCudaLaunchKernelNV.html
24979   template <typename Dispatch>
cudaLaunchKernelNV(const VULKAN_HPP_NAMESPACE::CudaLaunchInfoNV * pLaunchInfo,Dispatch const & d) const24980   VULKAN_HPP_INLINE void CommandBuffer::cudaLaunchKernelNV( const VULKAN_HPP_NAMESPACE::CudaLaunchInfoNV * pLaunchInfo,
24981                                                             Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
24982   {
24983     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24984     d.vkCmdCudaLaunchKernelNV( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCudaLaunchInfoNV *>( pLaunchInfo ) );
24985   }
24986 
24987 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
24988   // wrapper function for command vkCmdCudaLaunchKernelNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCudaLaunchKernelNV.html
24989   template <typename Dispatch>
cudaLaunchKernelNV(const VULKAN_HPP_NAMESPACE::CudaLaunchInfoNV & launchInfo,Dispatch const & d) const24990   VULKAN_HPP_INLINE void CommandBuffer::cudaLaunchKernelNV( const VULKAN_HPP_NAMESPACE::CudaLaunchInfoNV & launchInfo,
24991                                                             Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
24992   {
24993     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
24994 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
24995     VULKAN_HPP_ASSERT( d.vkCmdCudaLaunchKernelNV && "Function <vkCmdCudaLaunchKernelNV> requires <VK_NV_cuda_kernel_launch>" );
24996 #    endif
24997 
24998     d.vkCmdCudaLaunchKernelNV( m_commandBuffer, reinterpret_cast<const VkCudaLaunchInfoNV *>( &launchInfo ) );
24999   }
25000 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25001 #endif   /*VK_ENABLE_BETA_EXTENSIONS*/
25002 
25003 #if defined( VK_USE_PLATFORM_METAL_EXT )
25004   //=== VK_EXT_metal_objects ===
25005 
25006   // wrapper function for command vkExportMetalObjectsEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkExportMetalObjectsEXT.html
25007   template <typename Dispatch>
exportMetalObjectsEXT(VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT * pMetalObjectsInfo,Dispatch const & d) const25008   VULKAN_HPP_INLINE void Device::exportMetalObjectsEXT( VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT * pMetalObjectsInfo,
25009                                                         Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
25010   {
25011     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25012     d.vkExportMetalObjectsEXT( static_cast<VkDevice>( m_device ), reinterpret_cast<VkExportMetalObjectsInfoEXT *>( pMetalObjectsInfo ) );
25013   }
25014 
25015 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25016   // wrapper function for command vkExportMetalObjectsEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkExportMetalObjectsEXT.html
25017   template <typename Dispatch>
25018   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT
exportMetalObjectsEXT(Dispatch const & d) const25019                                          Device::exportMetalObjectsEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
25020   {
25021     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25022 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25023     VULKAN_HPP_ASSERT( d.vkExportMetalObjectsEXT && "Function <vkExportMetalObjectsEXT> requires <VK_EXT_metal_objects>" );
25024 #    endif
25025 
25026     VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT metalObjectsInfo;
25027     d.vkExportMetalObjectsEXT( m_device, reinterpret_cast<VkExportMetalObjectsInfoEXT *>( &metalObjectsInfo ) );
25028 
25029     return metalObjectsInfo;
25030   }
25031 
25032   // wrapper function for command vkExportMetalObjectsEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkExportMetalObjectsEXT.html
25033   template <typename X, typename Y, typename... Z, typename Dispatch>
25034   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
exportMetalObjectsEXT(Dispatch const & d) const25035                                          Device::exportMetalObjectsEXT( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
25036   {
25037     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25038 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25039     VULKAN_HPP_ASSERT( d.vkExportMetalObjectsEXT && "Function <vkExportMetalObjectsEXT> requires <VK_EXT_metal_objects>" );
25040 #    endif
25041 
25042     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>  structureChain;
25043     VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT & metalObjectsInfo = structureChain.template get<VULKAN_HPP_NAMESPACE::ExportMetalObjectsInfoEXT>();
25044     d.vkExportMetalObjectsEXT( m_device, reinterpret_cast<VkExportMetalObjectsInfoEXT *>( &metalObjectsInfo ) );
25045 
25046     return structureChain;
25047   }
25048 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25049 #endif   /*VK_USE_PLATFORM_METAL_EXT*/
25050 
25051   //=== VK_KHR_synchronization2 ===
25052 
25053   // wrapper function for command vkCmdSetEvent2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetEvent2KHR.html
25054   template <typename Dispatch>
setEvent2KHR(VULKAN_HPP_NAMESPACE::Event event,const VULKAN_HPP_NAMESPACE::DependencyInfo * pDependencyInfo,Dispatch const & d) const25055   VULKAN_HPP_INLINE void CommandBuffer::setEvent2KHR( VULKAN_HPP_NAMESPACE::Event                  event,
25056                                                       const VULKAN_HPP_NAMESPACE::DependencyInfo * pDependencyInfo,
25057                                                       Dispatch const &                             d ) const VULKAN_HPP_NOEXCEPT
25058   {
25059     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25060     d.vkCmdSetEvent2KHR(
25061       static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkEvent>( event ), reinterpret_cast<const VkDependencyInfo *>( pDependencyInfo ) );
25062   }
25063 
25064 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25065   // wrapper function for command vkCmdSetEvent2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetEvent2KHR.html
25066   template <typename Dispatch>
setEvent2KHR(VULKAN_HPP_NAMESPACE::Event event,const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo,Dispatch const & d) const25067   VULKAN_HPP_INLINE void CommandBuffer::setEvent2KHR( VULKAN_HPP_NAMESPACE::Event                  event,
25068                                                       const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo,
25069                                                       Dispatch const &                             d ) const VULKAN_HPP_NOEXCEPT
25070   {
25071     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25072 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25073     VULKAN_HPP_ASSERT( d.vkCmdSetEvent2KHR && "Function <vkCmdSetEvent2KHR> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" );
25074 #  endif
25075 
25076     d.vkCmdSetEvent2KHR( m_commandBuffer, static_cast<VkEvent>( event ), reinterpret_cast<const VkDependencyInfo *>( &dependencyInfo ) );
25077   }
25078 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25079 
25080   // wrapper function for command vkCmdResetEvent2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdResetEvent2KHR.html
25081   template <typename Dispatch>
resetEvent2KHR(VULKAN_HPP_NAMESPACE::Event event,VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask,Dispatch const & d) const25082   VULKAN_HPP_INLINE void CommandBuffer::resetEvent2KHR( VULKAN_HPP_NAMESPACE::Event               event,
25083                                                         VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stageMask,
25084                                                         Dispatch const &                          d ) const VULKAN_HPP_NOEXCEPT
25085   {
25086     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25087     d.vkCmdResetEvent2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkEvent>( event ), static_cast<VkPipelineStageFlags2>( stageMask ) );
25088   }
25089 
25090   // wrapper function for command vkCmdWaitEvents2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWaitEvents2KHR.html
25091   template <typename Dispatch>
waitEvents2KHR(uint32_t eventCount,const VULKAN_HPP_NAMESPACE::Event * pEvents,const VULKAN_HPP_NAMESPACE::DependencyInfo * pDependencyInfos,Dispatch const & d) const25092   VULKAN_HPP_INLINE void CommandBuffer::waitEvents2KHR( uint32_t                                     eventCount,
25093                                                         const VULKAN_HPP_NAMESPACE::Event *          pEvents,
25094                                                         const VULKAN_HPP_NAMESPACE::DependencyInfo * pDependencyInfos,
25095                                                         Dispatch const &                             d ) const VULKAN_HPP_NOEXCEPT
25096   {
25097     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25098     d.vkCmdWaitEvents2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
25099                            eventCount,
25100                            reinterpret_cast<const VkEvent *>( pEvents ),
25101                            reinterpret_cast<const VkDependencyInfo *>( pDependencyInfos ) );
25102   }
25103 
25104 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25105   // wrapper function for command vkCmdWaitEvents2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWaitEvents2KHR.html
25106   template <typename Dispatch>
waitEvents2KHR(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const & events,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfo> const & dependencyInfos,Dispatch const & d) const25107   VULKAN_HPP_INLINE void CommandBuffer::waitEvents2KHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Event> const &          events,
25108                                                         VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DependencyInfo> const & dependencyInfos,
25109                                                         Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
25110   {
25111     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25112 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25113     VULKAN_HPP_ASSERT( d.vkCmdWaitEvents2KHR && "Function <vkCmdWaitEvents2KHR> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" );
25114 #  endif
25115 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
25116     VULKAN_HPP_ASSERT( events.size() == dependencyInfos.size() );
25117 #  else
25118     if ( events.size() != dependencyInfos.size() )
25119     {
25120       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::waitEvents2KHR: events.size() != dependencyInfos.size()" );
25121     }
25122 #  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
25123 
25124     d.vkCmdWaitEvents2KHR( m_commandBuffer,
25125                            events.size(),
25126                            reinterpret_cast<const VkEvent *>( events.data() ),
25127                            reinterpret_cast<const VkDependencyInfo *>( dependencyInfos.data() ) );
25128   }
25129 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25130 
25131   // wrapper function for command vkCmdPipelineBarrier2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPipelineBarrier2KHR.html
25132   template <typename Dispatch>
pipelineBarrier2KHR(const VULKAN_HPP_NAMESPACE::DependencyInfo * pDependencyInfo,Dispatch const & d) const25133   VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier2KHR( const VULKAN_HPP_NAMESPACE::DependencyInfo * pDependencyInfo,
25134                                                              Dispatch const &                             d ) const VULKAN_HPP_NOEXCEPT
25135   {
25136     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25137     d.vkCmdPipelineBarrier2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkDependencyInfo *>( pDependencyInfo ) );
25138   }
25139 
25140 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25141   // wrapper function for command vkCmdPipelineBarrier2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPipelineBarrier2KHR.html
25142   template <typename Dispatch>
pipelineBarrier2KHR(const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo,Dispatch const & d) const25143   VULKAN_HPP_INLINE void CommandBuffer::pipelineBarrier2KHR( const VULKAN_HPP_NAMESPACE::DependencyInfo & dependencyInfo,
25144                                                              Dispatch const &                             d ) const VULKAN_HPP_NOEXCEPT
25145   {
25146     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25147 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25148     VULKAN_HPP_ASSERT( d.vkCmdPipelineBarrier2KHR && "Function <vkCmdPipelineBarrier2KHR> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" );
25149 #  endif
25150 
25151     d.vkCmdPipelineBarrier2KHR( m_commandBuffer, reinterpret_cast<const VkDependencyInfo *>( &dependencyInfo ) );
25152   }
25153 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25154 
25155   // wrapper function for command vkCmdWriteTimestamp2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWriteTimestamp2KHR.html
25156   template <typename Dispatch>
writeTimestamp2KHR(VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t query,Dispatch const & d) const25157   VULKAN_HPP_INLINE void CommandBuffer::writeTimestamp2KHR( VULKAN_HPP_NAMESPACE::PipelineStageFlags2 stage,
25158                                                             VULKAN_HPP_NAMESPACE::QueryPool           queryPool,
25159                                                             uint32_t                                  query,
25160                                                             Dispatch const &                          d ) const VULKAN_HPP_NOEXCEPT
25161   {
25162     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25163     d.vkCmdWriteTimestamp2KHR(
25164       static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPipelineStageFlags2>( stage ), static_cast<VkQueryPool>( queryPool ), query );
25165   }
25166 
25167   // wrapper function for command vkQueueSubmit2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSubmit2KHR.html
25168   template <typename Dispatch>
submit2KHR(uint32_t submitCount,const VULKAN_HPP_NAMESPACE::SubmitInfo2 * pSubmits,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const25169   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Queue::submit2KHR( uint32_t                                  submitCount,
25170                                                                    const VULKAN_HPP_NAMESPACE::SubmitInfo2 * pSubmits,
25171                                                                    VULKAN_HPP_NAMESPACE::Fence               fence,
25172                                                                    Dispatch const &                          d ) const VULKAN_HPP_NOEXCEPT
25173   {
25174     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25175     return static_cast<Result>(
25176       d.vkQueueSubmit2KHR( static_cast<VkQueue>( m_queue ), submitCount, reinterpret_cast<const VkSubmitInfo2 *>( pSubmits ), static_cast<VkFence>( fence ) ) );
25177   }
25178 
25179 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25180   // wrapper function for command vkQueueSubmit2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueSubmit2KHR.html
25181   template <typename Dispatch>
submit2KHR(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2> const & submits,VULKAN_HPP_NAMESPACE::Fence fence,Dispatch const & d) const25182   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type Queue::submit2KHR(
25183     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SubmitInfo2> const & submits, VULKAN_HPP_NAMESPACE::Fence fence, Dispatch const & d ) const
25184   {
25185     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25186 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25187     VULKAN_HPP_ASSERT( d.vkQueueSubmit2KHR && "Function <vkQueueSubmit2KHR> requires <VK_KHR_synchronization2> or <VK_VERSION_1_3>" );
25188 #  endif
25189 
25190     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
25191       d.vkQueueSubmit2KHR( m_queue, submits.size(), reinterpret_cast<const VkSubmitInfo2 *>( submits.data() ), static_cast<VkFence>( fence ) ) );
25192     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Queue::submit2KHR" );
25193 
25194     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
25195   }
25196 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25197 
25198   //=== VK_EXT_descriptor_buffer ===
25199 
25200   // wrapper function for command vkGetDescriptorSetLayoutSizeEXT, see
25201   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorSetLayoutSizeEXT.html
25202   template <typename Dispatch>
getDescriptorSetLayoutSizeEXT(VULKAN_HPP_NAMESPACE::DescriptorSetLayout layout,VULKAN_HPP_NAMESPACE::DeviceSize * pLayoutSizeInBytes,Dispatch const & d) const25203   VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutSizeEXT( VULKAN_HPP_NAMESPACE::DescriptorSetLayout layout,
25204                                                                 VULKAN_HPP_NAMESPACE::DeviceSize *        pLayoutSizeInBytes,
25205                                                                 Dispatch const &                          d ) const VULKAN_HPP_NOEXCEPT
25206   {
25207     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25208     d.vkGetDescriptorSetLayoutSizeEXT(
25209       static_cast<VkDevice>( m_device ), static_cast<VkDescriptorSetLayout>( layout ), reinterpret_cast<VkDeviceSize *>( pLayoutSizeInBytes ) );
25210   }
25211 
25212 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25213   // wrapper function for command vkGetDescriptorSetLayoutSizeEXT, see
25214   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorSetLayoutSizeEXT.html
25215   template <typename Dispatch>
25216   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize
getDescriptorSetLayoutSizeEXT(VULKAN_HPP_NAMESPACE::DescriptorSetLayout layout,Dispatch const & d) const25217     Device::getDescriptorSetLayoutSizeEXT( VULKAN_HPP_NAMESPACE::DescriptorSetLayout layout, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
25218   {
25219     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25220 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25221     VULKAN_HPP_ASSERT( d.vkGetDescriptorSetLayoutSizeEXT && "Function <vkGetDescriptorSetLayoutSizeEXT> requires <VK_EXT_descriptor_buffer>" );
25222 #  endif
25223 
25224     VULKAN_HPP_NAMESPACE::DeviceSize layoutSizeInBytes;
25225     d.vkGetDescriptorSetLayoutSizeEXT( m_device, static_cast<VkDescriptorSetLayout>( layout ), reinterpret_cast<VkDeviceSize *>( &layoutSizeInBytes ) );
25226 
25227     return layoutSizeInBytes;
25228   }
25229 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25230 
25231   // wrapper function for command vkGetDescriptorSetLayoutBindingOffsetEXT, see
25232   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorSetLayoutBindingOffsetEXT.html
25233   template <typename Dispatch>
getDescriptorSetLayoutBindingOffsetEXT(VULKAN_HPP_NAMESPACE::DescriptorSetLayout layout,uint32_t binding,VULKAN_HPP_NAMESPACE::DeviceSize * pOffset,Dispatch const & d) const25234   VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutBindingOffsetEXT( VULKAN_HPP_NAMESPACE::DescriptorSetLayout layout,
25235                                                                          uint32_t                                  binding,
25236                                                                          VULKAN_HPP_NAMESPACE::DeviceSize *        pOffset,
25237                                                                          Dispatch const &                          d ) const VULKAN_HPP_NOEXCEPT
25238   {
25239     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25240     d.vkGetDescriptorSetLayoutBindingOffsetEXT(
25241       static_cast<VkDevice>( m_device ), static_cast<VkDescriptorSetLayout>( layout ), binding, reinterpret_cast<VkDeviceSize *>( pOffset ) );
25242   }
25243 
25244 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25245   // wrapper function for command vkGetDescriptorSetLayoutBindingOffsetEXT, see
25246   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorSetLayoutBindingOffsetEXT.html
25247   template <typename Dispatch>
getDescriptorSetLayoutBindingOffsetEXT(VULKAN_HPP_NAMESPACE::DescriptorSetLayout layout,uint32_t binding,Dispatch const & d) const25248   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceSize Device::getDescriptorSetLayoutBindingOffsetEXT(
25249     VULKAN_HPP_NAMESPACE::DescriptorSetLayout layout, uint32_t binding, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
25250   {
25251     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25252 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25253     VULKAN_HPP_ASSERT( d.vkGetDescriptorSetLayoutBindingOffsetEXT &&
25254                        "Function <vkGetDescriptorSetLayoutBindingOffsetEXT> requires <VK_EXT_descriptor_buffer>" );
25255 #  endif
25256 
25257     VULKAN_HPP_NAMESPACE::DeviceSize offset;
25258     d.vkGetDescriptorSetLayoutBindingOffsetEXT( m_device, static_cast<VkDescriptorSetLayout>( layout ), binding, reinterpret_cast<VkDeviceSize *>( &offset ) );
25259 
25260     return offset;
25261   }
25262 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25263 
25264   // wrapper function for command vkGetDescriptorEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorEXT.html
25265   template <typename Dispatch>
getDescriptorEXT(const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT * pDescriptorInfo,size_t dataSize,void * pDescriptor,Dispatch const & d) const25266   VULKAN_HPP_INLINE void Device::getDescriptorEXT( const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT * pDescriptorInfo,
25267                                                    size_t                                             dataSize,
25268                                                    void *                                             pDescriptor,
25269                                                    Dispatch const &                                   d ) const VULKAN_HPP_NOEXCEPT
25270   {
25271     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25272     d.vkGetDescriptorEXT( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDescriptorGetInfoEXT *>( pDescriptorInfo ), dataSize, pDescriptor );
25273   }
25274 
25275 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25276   // wrapper function for command vkGetDescriptorEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorEXT.html
25277   template <typename Dispatch>
getDescriptorEXT(const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo,size_t dataSize,void * pDescriptor,Dispatch const & d) const25278   VULKAN_HPP_INLINE void Device::getDescriptorEXT( const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo,
25279                                                    size_t                                             dataSize,
25280                                                    void *                                             pDescriptor,
25281                                                    Dispatch const &                                   d ) const VULKAN_HPP_NOEXCEPT
25282   {
25283     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25284 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25285     VULKAN_HPP_ASSERT( d.vkGetDescriptorEXT && "Function <vkGetDescriptorEXT> requires <VK_EXT_descriptor_buffer>" );
25286 #  endif
25287 
25288     d.vkGetDescriptorEXT( m_device, reinterpret_cast<const VkDescriptorGetInfoEXT *>( &descriptorInfo ), dataSize, pDescriptor );
25289   }
25290 
25291   // wrapper function for command vkGetDescriptorEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorEXT.html
25292   template <typename DescriptorType, typename Dispatch>
getDescriptorEXT(const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo,Dispatch const & d) const25293   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE DescriptorType Device::getDescriptorEXT( const VULKAN_HPP_NAMESPACE::DescriptorGetInfoEXT & descriptorInfo,
25294                                                                                   Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
25295   {
25296     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25297 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25298     VULKAN_HPP_ASSERT( d.vkGetDescriptorEXT && "Function <vkGetDescriptorEXT> requires <VK_EXT_descriptor_buffer>" );
25299 #  endif
25300 
25301     DescriptorType descriptor;
25302     d.vkGetDescriptorEXT(
25303       m_device, reinterpret_cast<const VkDescriptorGetInfoEXT *>( &descriptorInfo ), sizeof( DescriptorType ), reinterpret_cast<void *>( &descriptor ) );
25304 
25305     return descriptor;
25306   }
25307 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25308 
25309   // wrapper function for command vkCmdBindDescriptorBuffersEXT, see
25310   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindDescriptorBuffersEXT.html
25311   template <typename Dispatch>
bindDescriptorBuffersEXT(uint32_t bufferCount,const VULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT * pBindingInfos,Dispatch const & d) const25312   VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorBuffersEXT( uint32_t                                                     bufferCount,
25313                                                                   const VULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT * pBindingInfos,
25314                                                                   Dispatch const &                                             d ) const VULKAN_HPP_NOEXCEPT
25315   {
25316     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25317     d.vkCmdBindDescriptorBuffersEXT(
25318       static_cast<VkCommandBuffer>( m_commandBuffer ), bufferCount, reinterpret_cast<const VkDescriptorBufferBindingInfoEXT *>( pBindingInfos ) );
25319   }
25320 
25321 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25322   // wrapper function for command vkCmdBindDescriptorBuffersEXT, see
25323   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindDescriptorBuffersEXT.html
25324   template <typename Dispatch>
25325   VULKAN_HPP_INLINE void
bindDescriptorBuffersEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT> const & bindingInfos,Dispatch const & d) const25326     CommandBuffer::bindDescriptorBuffersEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DescriptorBufferBindingInfoEXT> const & bindingInfos,
25327                                              Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
25328   {
25329     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25330 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25331     VULKAN_HPP_ASSERT( d.vkCmdBindDescriptorBuffersEXT && "Function <vkCmdBindDescriptorBuffersEXT> requires <VK_EXT_descriptor_buffer>" );
25332 #  endif
25333 
25334     d.vkCmdBindDescriptorBuffersEXT( m_commandBuffer, bindingInfos.size(), reinterpret_cast<const VkDescriptorBufferBindingInfoEXT *>( bindingInfos.data() ) );
25335   }
25336 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25337 
25338   // wrapper function for command vkCmdSetDescriptorBufferOffsetsEXT, see
25339   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDescriptorBufferOffsetsEXT.html
25340   template <typename Dispatch>
setDescriptorBufferOffsetsEXT(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t firstSet,uint32_t setCount,const uint32_t * pBufferIndices,const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets,Dispatch const & d) const25341   VULKAN_HPP_INLINE void CommandBuffer::setDescriptorBufferOffsetsEXT( VULKAN_HPP_NAMESPACE::PipelineBindPoint  pipelineBindPoint,
25342                                                                        VULKAN_HPP_NAMESPACE::PipelineLayout     layout,
25343                                                                        uint32_t                                 firstSet,
25344                                                                        uint32_t                                 setCount,
25345                                                                        const uint32_t *                         pBufferIndices,
25346                                                                        const VULKAN_HPP_NAMESPACE::DeviceSize * pOffsets,
25347                                                                        Dispatch const &                         d ) const VULKAN_HPP_NOEXCEPT
25348   {
25349     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25350     d.vkCmdSetDescriptorBufferOffsetsEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
25351                                           static_cast<VkPipelineBindPoint>( pipelineBindPoint ),
25352                                           static_cast<VkPipelineLayout>( layout ),
25353                                           firstSet,
25354                                           setCount,
25355                                           pBufferIndices,
25356                                           reinterpret_cast<const VkDeviceSize *>( pOffsets ) );
25357   }
25358 
25359 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25360   // wrapper function for command vkCmdSetDescriptorBufferOffsetsEXT, see
25361   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDescriptorBufferOffsetsEXT.html
25362   template <typename Dispatch>
setDescriptorBufferOffsetsEXT(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t firstSet,VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t> const & bufferIndices,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets,Dispatch const & d) const25363   VULKAN_HPP_INLINE void CommandBuffer::setDescriptorBufferOffsetsEXT( VULKAN_HPP_NAMESPACE::PipelineBindPoint                  pipelineBindPoint,
25364                                                                        VULKAN_HPP_NAMESPACE::PipelineLayout                     layout,
25365                                                                        uint32_t                                                 firstSet,
25366                                                                        VULKAN_HPP_NAMESPACE::ArrayProxy<const uint32_t> const & bufferIndices,
25367                                                                        VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DeviceSize> const & offsets,
25368                                                                        Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
25369   {
25370     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25371 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25372     VULKAN_HPP_ASSERT( d.vkCmdSetDescriptorBufferOffsetsEXT && "Function <vkCmdSetDescriptorBufferOffsetsEXT> requires <VK_EXT_descriptor_buffer>" );
25373 #  endif
25374 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
25375     VULKAN_HPP_ASSERT( bufferIndices.size() == offsets.size() );
25376 #  else
25377     if ( bufferIndices.size() != offsets.size() )
25378     {
25379       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setDescriptorBufferOffsetsEXT: bufferIndices.size() != offsets.size()" );
25380     }
25381 #  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
25382 
25383     d.vkCmdSetDescriptorBufferOffsetsEXT( m_commandBuffer,
25384                                           static_cast<VkPipelineBindPoint>( pipelineBindPoint ),
25385                                           static_cast<VkPipelineLayout>( layout ),
25386                                           firstSet,
25387                                           bufferIndices.size(),
25388                                           bufferIndices.data(),
25389                                           reinterpret_cast<const VkDeviceSize *>( offsets.data() ) );
25390   }
25391 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25392 
25393   // wrapper function for command vkCmdBindDescriptorBufferEmbeddedSamplersEXT, see
25394   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindDescriptorBufferEmbeddedSamplersEXT.html
25395   template <typename Dispatch>
bindDescriptorBufferEmbeddedSamplersEXT(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::PipelineLayout layout,uint32_t set,Dispatch const & d) const25396   VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorBufferEmbeddedSamplersEXT( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,
25397                                                                                  VULKAN_HPP_NAMESPACE::PipelineLayout    layout,
25398                                                                                  uint32_t                                set,
25399                                                                                  Dispatch const &                        d ) const VULKAN_HPP_NOEXCEPT
25400   {
25401     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25402     d.vkCmdBindDescriptorBufferEmbeddedSamplersEXT(
25403       static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipelineLayout>( layout ), set );
25404   }
25405 
25406   // wrapper function for command vkGetBufferOpaqueCaptureDescriptorDataEXT, see
25407   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferOpaqueCaptureDescriptorDataEXT.html
25408   template <typename Dispatch>
getBufferOpaqueCaptureDescriptorDataEXT(const VULKAN_HPP_NAMESPACE::BufferCaptureDescriptorDataInfoEXT * pInfo,void * pData,Dispatch const & d) const25409   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getBufferOpaqueCaptureDescriptorDataEXT(
25410     const VULKAN_HPP_NAMESPACE::BufferCaptureDescriptorDataInfoEXT * pInfo, void * pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
25411   {
25412     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25413     return static_cast<Result>( d.vkGetBufferOpaqueCaptureDescriptorDataEXT(
25414       static_cast<VkDevice>( m_device ), reinterpret_cast<const VkBufferCaptureDescriptorDataInfoEXT *>( pInfo ), pData ) );
25415   }
25416 
25417 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25418   // wrapper function for command vkGetBufferOpaqueCaptureDescriptorDataEXT, see
25419   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferOpaqueCaptureDescriptorDataEXT.html
25420   template <typename DataType, typename Dispatch>
25421   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<DataType>::type
getBufferOpaqueCaptureDescriptorDataEXT(const VULKAN_HPP_NAMESPACE::BufferCaptureDescriptorDataInfoEXT & info,Dispatch const & d) const25422     Device::getBufferOpaqueCaptureDescriptorDataEXT( const VULKAN_HPP_NAMESPACE::BufferCaptureDescriptorDataInfoEXT & info, Dispatch const & d ) const
25423   {
25424     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25425 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25426     VULKAN_HPP_ASSERT( d.vkGetBufferOpaqueCaptureDescriptorDataEXT &&
25427                        "Function <vkGetBufferOpaqueCaptureDescriptorDataEXT> requires <VK_EXT_descriptor_buffer>" );
25428 #  endif
25429 
25430     DataType                     data;
25431     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
25432       d.vkGetBufferOpaqueCaptureDescriptorDataEXT( m_device, reinterpret_cast<const VkBufferCaptureDescriptorDataInfoEXT *>( &info ), &data ) );
25433     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getBufferOpaqueCaptureDescriptorDataEXT" );
25434 
25435     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) );
25436   }
25437 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25438 
25439   // wrapper function for command vkGetImageOpaqueCaptureDescriptorDataEXT, see
25440   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageOpaqueCaptureDescriptorDataEXT.html
25441   template <typename Dispatch>
getImageOpaqueCaptureDescriptorDataEXT(const VULKAN_HPP_NAMESPACE::ImageCaptureDescriptorDataInfoEXT * pInfo,void * pData,Dispatch const & d) const25442   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getImageOpaqueCaptureDescriptorDataEXT(
25443     const VULKAN_HPP_NAMESPACE::ImageCaptureDescriptorDataInfoEXT * pInfo, void * pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
25444   {
25445     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25446     return static_cast<Result>( d.vkGetImageOpaqueCaptureDescriptorDataEXT(
25447       static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImageCaptureDescriptorDataInfoEXT *>( pInfo ), pData ) );
25448   }
25449 
25450 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25451   // wrapper function for command vkGetImageOpaqueCaptureDescriptorDataEXT, see
25452   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageOpaqueCaptureDescriptorDataEXT.html
25453   template <typename DataType, typename Dispatch>
25454   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<DataType>::type
getImageOpaqueCaptureDescriptorDataEXT(const VULKAN_HPP_NAMESPACE::ImageCaptureDescriptorDataInfoEXT & info,Dispatch const & d) const25455     Device::getImageOpaqueCaptureDescriptorDataEXT( const VULKAN_HPP_NAMESPACE::ImageCaptureDescriptorDataInfoEXT & info, Dispatch const & d ) const
25456   {
25457     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25458 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25459     VULKAN_HPP_ASSERT( d.vkGetImageOpaqueCaptureDescriptorDataEXT &&
25460                        "Function <vkGetImageOpaqueCaptureDescriptorDataEXT> requires <VK_EXT_descriptor_buffer>" );
25461 #  endif
25462 
25463     DataType                     data;
25464     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
25465       d.vkGetImageOpaqueCaptureDescriptorDataEXT( m_device, reinterpret_cast<const VkImageCaptureDescriptorDataInfoEXT *>( &info ), &data ) );
25466     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageOpaqueCaptureDescriptorDataEXT" );
25467 
25468     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) );
25469   }
25470 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25471 
25472   // wrapper function for command vkGetImageViewOpaqueCaptureDescriptorDataEXT, see
25473   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageViewOpaqueCaptureDescriptorDataEXT.html
25474   template <typename Dispatch>
getImageViewOpaqueCaptureDescriptorDataEXT(const VULKAN_HPP_NAMESPACE::ImageViewCaptureDescriptorDataInfoEXT * pInfo,void * pData,Dispatch const & d) const25475   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getImageViewOpaqueCaptureDescriptorDataEXT(
25476     const VULKAN_HPP_NAMESPACE::ImageViewCaptureDescriptorDataInfoEXT * pInfo, void * pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
25477   {
25478     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25479     return static_cast<Result>( d.vkGetImageViewOpaqueCaptureDescriptorDataEXT(
25480       static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImageViewCaptureDescriptorDataInfoEXT *>( pInfo ), pData ) );
25481   }
25482 
25483 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25484   // wrapper function for command vkGetImageViewOpaqueCaptureDescriptorDataEXT, see
25485   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageViewOpaqueCaptureDescriptorDataEXT.html
25486   template <typename DataType, typename Dispatch>
25487   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<DataType>::type
getImageViewOpaqueCaptureDescriptorDataEXT(const VULKAN_HPP_NAMESPACE::ImageViewCaptureDescriptorDataInfoEXT & info,Dispatch const & d) const25488     Device::getImageViewOpaqueCaptureDescriptorDataEXT( const VULKAN_HPP_NAMESPACE::ImageViewCaptureDescriptorDataInfoEXT & info, Dispatch const & d ) const
25489   {
25490     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25491 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25492     VULKAN_HPP_ASSERT( d.vkGetImageViewOpaqueCaptureDescriptorDataEXT &&
25493                        "Function <vkGetImageViewOpaqueCaptureDescriptorDataEXT> requires <VK_EXT_descriptor_buffer>" );
25494 #  endif
25495 
25496     DataType                     data;
25497     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
25498       d.vkGetImageViewOpaqueCaptureDescriptorDataEXT( m_device, reinterpret_cast<const VkImageViewCaptureDescriptorDataInfoEXT *>( &info ), &data ) );
25499     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getImageViewOpaqueCaptureDescriptorDataEXT" );
25500 
25501     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) );
25502   }
25503 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25504 
25505   // wrapper function for command vkGetSamplerOpaqueCaptureDescriptorDataEXT, see
25506   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSamplerOpaqueCaptureDescriptorDataEXT.html
25507   template <typename Dispatch>
getSamplerOpaqueCaptureDescriptorDataEXT(const VULKAN_HPP_NAMESPACE::SamplerCaptureDescriptorDataInfoEXT * pInfo,void * pData,Dispatch const & d) const25508   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSamplerOpaqueCaptureDescriptorDataEXT(
25509     const VULKAN_HPP_NAMESPACE::SamplerCaptureDescriptorDataInfoEXT * pInfo, void * pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
25510   {
25511     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25512     return static_cast<Result>( d.vkGetSamplerOpaqueCaptureDescriptorDataEXT(
25513       static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSamplerCaptureDescriptorDataInfoEXT *>( pInfo ), pData ) );
25514   }
25515 
25516 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25517   // wrapper function for command vkGetSamplerOpaqueCaptureDescriptorDataEXT, see
25518   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSamplerOpaqueCaptureDescriptorDataEXT.html
25519   template <typename DataType, typename Dispatch>
25520   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<DataType>::type
getSamplerOpaqueCaptureDescriptorDataEXT(const VULKAN_HPP_NAMESPACE::SamplerCaptureDescriptorDataInfoEXT & info,Dispatch const & d) const25521     Device::getSamplerOpaqueCaptureDescriptorDataEXT( const VULKAN_HPP_NAMESPACE::SamplerCaptureDescriptorDataInfoEXT & info, Dispatch const & d ) const
25522   {
25523     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25524 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25525     VULKAN_HPP_ASSERT( d.vkGetSamplerOpaqueCaptureDescriptorDataEXT &&
25526                        "Function <vkGetSamplerOpaqueCaptureDescriptorDataEXT> requires <VK_EXT_descriptor_buffer>" );
25527 #  endif
25528 
25529     DataType                     data;
25530     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
25531       d.vkGetSamplerOpaqueCaptureDescriptorDataEXT( m_device, reinterpret_cast<const VkSamplerCaptureDescriptorDataInfoEXT *>( &info ), &data ) );
25532     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSamplerOpaqueCaptureDescriptorDataEXT" );
25533 
25534     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) );
25535   }
25536 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25537 
25538   // wrapper function for command vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT, see
25539   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT.html
25540   template <typename Dispatch>
getAccelerationStructureOpaqueCaptureDescriptorDataEXT(const VULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT * pInfo,void * pData,Dispatch const & d) const25541   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getAccelerationStructureOpaqueCaptureDescriptorDataEXT(
25542     const VULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT * pInfo, void * pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
25543   {
25544     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25545     return static_cast<Result>( d.vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
25546       static_cast<VkDevice>( m_device ), reinterpret_cast<const VkAccelerationStructureCaptureDescriptorDataInfoEXT *>( pInfo ), pData ) );
25547   }
25548 
25549 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25550   // wrapper function for command vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT, see
25551   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT.html
25552   template <typename DataType, typename Dispatch>
25553   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<DataType>::type
getAccelerationStructureOpaqueCaptureDescriptorDataEXT(const VULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT & info,Dispatch const & d) const25554     Device::getAccelerationStructureOpaqueCaptureDescriptorDataEXT( const VULKAN_HPP_NAMESPACE::AccelerationStructureCaptureDescriptorDataInfoEXT & info,
25555                                                                     Dispatch const &                                                                d ) const
25556   {
25557     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25558 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25559     VULKAN_HPP_ASSERT( d.vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT &&
25560                        "Function <vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT> requires <VK_EXT_descriptor_buffer>" );
25561 #  endif
25562 
25563     DataType                     data;
25564     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetAccelerationStructureOpaqueCaptureDescriptorDataEXT(
25565       m_device, reinterpret_cast<const VkAccelerationStructureCaptureDescriptorDataInfoEXT *>( &info ), &data ) );
25566     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getAccelerationStructureOpaqueCaptureDescriptorDataEXT" );
25567 
25568     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) );
25569   }
25570 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25571 
25572   //=== VK_NV_fragment_shading_rate_enums ===
25573 
25574   // wrapper function for command vkCmdSetFragmentShadingRateEnumNV, see
25575   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetFragmentShadingRateEnumNV.html
25576   template <typename Dispatch>
setFragmentShadingRateEnumNV(VULKAN_HPP_NAMESPACE::FragmentShadingRateNV shadingRate,const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2],Dispatch const & d) const25577   VULKAN_HPP_INLINE void CommandBuffer::setFragmentShadingRateEnumNV( VULKAN_HPP_NAMESPACE::FragmentShadingRateNV                  shadingRate,
25578                                                                       const VULKAN_HPP_NAMESPACE::FragmentShadingRateCombinerOpKHR combinerOps[2],
25579                                                                       Dispatch const &                                             d ) const VULKAN_HPP_NOEXCEPT
25580   {
25581     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25582     d.vkCmdSetFragmentShadingRateEnumNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
25583                                          static_cast<VkFragmentShadingRateNV>( shadingRate ),
25584                                          reinterpret_cast<const VkFragmentShadingRateCombinerOpKHR *>( combinerOps ) );
25585   }
25586 
25587   //=== VK_EXT_mesh_shader ===
25588 
25589   // wrapper function for command vkCmdDrawMeshTasksEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawMeshTasksEXT.html
25590   template <typename Dispatch>
25591   VULKAN_HPP_INLINE void
drawMeshTasksEXT(uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ,Dispatch const & d) const25592     CommandBuffer::drawMeshTasksEXT( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
25593   {
25594     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25595     d.vkCmdDrawMeshTasksEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), groupCountX, groupCountY, groupCountZ );
25596   }
25597 
25598   // wrapper function for command vkCmdDrawMeshTasksIndirectEXT, see
25599   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawMeshTasksIndirectEXT.html
25600   template <typename Dispatch>
drawMeshTasksIndirectEXT(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,uint32_t drawCount,uint32_t stride,Dispatch const & d) const25601   VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectEXT( VULKAN_HPP_NAMESPACE::Buffer     buffer,
25602                                                                   VULKAN_HPP_NAMESPACE::DeviceSize offset,
25603                                                                   uint32_t                         drawCount,
25604                                                                   uint32_t                         stride,
25605                                                                   Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
25606   {
25607     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25608     d.vkCmdDrawMeshTasksIndirectEXT(
25609       static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ), drawCount, stride );
25610   }
25611 
25612   // wrapper function for command vkCmdDrawMeshTasksIndirectCountEXT, see
25613   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawMeshTasksIndirectCountEXT.html
25614   template <typename Dispatch>
drawMeshTasksIndirectCountEXT(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::Buffer countBuffer,VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,uint32_t maxDrawCount,uint32_t stride,Dispatch const & d) const25615   VULKAN_HPP_INLINE void CommandBuffer::drawMeshTasksIndirectCountEXT( VULKAN_HPP_NAMESPACE::Buffer     buffer,
25616                                                                        VULKAN_HPP_NAMESPACE::DeviceSize offset,
25617                                                                        VULKAN_HPP_NAMESPACE::Buffer     countBuffer,
25618                                                                        VULKAN_HPP_NAMESPACE::DeviceSize countBufferOffset,
25619                                                                        uint32_t                         maxDrawCount,
25620                                                                        uint32_t                         stride,
25621                                                                        Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
25622   {
25623     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25624     d.vkCmdDrawMeshTasksIndirectCountEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
25625                                           static_cast<VkBuffer>( buffer ),
25626                                           static_cast<VkDeviceSize>( offset ),
25627                                           static_cast<VkBuffer>( countBuffer ),
25628                                           static_cast<VkDeviceSize>( countBufferOffset ),
25629                                           maxDrawCount,
25630                                           stride );
25631   }
25632 
25633   //=== VK_KHR_copy_commands2 ===
25634 
25635   // wrapper function for command vkCmdCopyBuffer2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyBuffer2KHR.html
25636   template <typename Dispatch>
copyBuffer2KHR(const VULKAN_HPP_NAMESPACE::CopyBufferInfo2 * pCopyBufferInfo,Dispatch const & d) const25637   VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2 * pCopyBufferInfo,
25638                                                         Dispatch const &                              d ) const VULKAN_HPP_NOEXCEPT
25639   {
25640     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25641     d.vkCmdCopyBuffer2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCopyBufferInfo2 *>( pCopyBufferInfo ) );
25642   }
25643 
25644 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25645   // wrapper function for command vkCmdCopyBuffer2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyBuffer2KHR.html
25646   template <typename Dispatch>
copyBuffer2KHR(const VULKAN_HPP_NAMESPACE::CopyBufferInfo2 & copyBufferInfo,Dispatch const & d) const25647   VULKAN_HPP_INLINE void CommandBuffer::copyBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferInfo2 & copyBufferInfo,
25648                                                         Dispatch const &                              d ) const VULKAN_HPP_NOEXCEPT
25649   {
25650     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25651 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25652     VULKAN_HPP_ASSERT( d.vkCmdCopyBuffer2KHR && "Function <vkCmdCopyBuffer2KHR> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
25653 #  endif
25654 
25655     d.vkCmdCopyBuffer2KHR( m_commandBuffer, reinterpret_cast<const VkCopyBufferInfo2 *>( &copyBufferInfo ) );
25656   }
25657 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25658 
25659   // wrapper function for command vkCmdCopyImage2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyImage2KHR.html
25660   template <typename Dispatch>
copyImage2KHR(const VULKAN_HPP_NAMESPACE::CopyImageInfo2 * pCopyImageInfo,Dispatch const & d) const25661   VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR( const VULKAN_HPP_NAMESPACE::CopyImageInfo2 * pCopyImageInfo,
25662                                                        Dispatch const &                             d ) const VULKAN_HPP_NOEXCEPT
25663   {
25664     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25665     d.vkCmdCopyImage2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCopyImageInfo2 *>( pCopyImageInfo ) );
25666   }
25667 
25668 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25669   // wrapper function for command vkCmdCopyImage2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyImage2KHR.html
25670   template <typename Dispatch>
copyImage2KHR(const VULKAN_HPP_NAMESPACE::CopyImageInfo2 & copyImageInfo,Dispatch const & d) const25671   VULKAN_HPP_INLINE void CommandBuffer::copyImage2KHR( const VULKAN_HPP_NAMESPACE::CopyImageInfo2 & copyImageInfo,
25672                                                        Dispatch const &                             d ) const VULKAN_HPP_NOEXCEPT
25673   {
25674     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25675 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25676     VULKAN_HPP_ASSERT( d.vkCmdCopyImage2KHR && "Function <vkCmdCopyImage2KHR> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
25677 #  endif
25678 
25679     d.vkCmdCopyImage2KHR( m_commandBuffer, reinterpret_cast<const VkCopyImageInfo2 *>( &copyImageInfo ) );
25680   }
25681 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25682 
25683   // wrapper function for command vkCmdCopyBufferToImage2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyBufferToImage2KHR.html
25684   template <typename Dispatch>
copyBufferToImage2KHR(const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 * pCopyBufferToImageInfo,Dispatch const & d) const25685   VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 * pCopyBufferToImageInfo,
25686                                                                Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
25687   {
25688     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25689     d.vkCmdCopyBufferToImage2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
25690                                   reinterpret_cast<const VkCopyBufferToImageInfo2 *>( pCopyBufferToImageInfo ) );
25691   }
25692 
25693 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25694   // wrapper function for command vkCmdCopyBufferToImage2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyBufferToImage2KHR.html
25695   template <typename Dispatch>
copyBufferToImage2KHR(const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 & copyBufferToImageInfo,Dispatch const & d) const25696   VULKAN_HPP_INLINE void CommandBuffer::copyBufferToImage2KHR( const VULKAN_HPP_NAMESPACE::CopyBufferToImageInfo2 & copyBufferToImageInfo,
25697                                                                Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
25698   {
25699     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25700 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25701     VULKAN_HPP_ASSERT( d.vkCmdCopyBufferToImage2KHR && "Function <vkCmdCopyBufferToImage2KHR> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
25702 #  endif
25703 
25704     d.vkCmdCopyBufferToImage2KHR( m_commandBuffer, reinterpret_cast<const VkCopyBufferToImageInfo2 *>( &copyBufferToImageInfo ) );
25705   }
25706 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25707 
25708   // wrapper function for command vkCmdCopyImageToBuffer2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyImageToBuffer2KHR.html
25709   template <typename Dispatch>
copyImageToBuffer2KHR(const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 * pCopyImageToBufferInfo,Dispatch const & d) const25710   VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 * pCopyImageToBufferInfo,
25711                                                                Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
25712   {
25713     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25714     d.vkCmdCopyImageToBuffer2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
25715                                   reinterpret_cast<const VkCopyImageToBufferInfo2 *>( pCopyImageToBufferInfo ) );
25716   }
25717 
25718 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25719   // wrapper function for command vkCmdCopyImageToBuffer2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyImageToBuffer2KHR.html
25720   template <typename Dispatch>
copyImageToBuffer2KHR(const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 & copyImageToBufferInfo,Dispatch const & d) const25721   VULKAN_HPP_INLINE void CommandBuffer::copyImageToBuffer2KHR( const VULKAN_HPP_NAMESPACE::CopyImageToBufferInfo2 & copyImageToBufferInfo,
25722                                                                Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
25723   {
25724     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25725 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25726     VULKAN_HPP_ASSERT( d.vkCmdCopyImageToBuffer2KHR && "Function <vkCmdCopyImageToBuffer2KHR> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
25727 #  endif
25728 
25729     d.vkCmdCopyImageToBuffer2KHR( m_commandBuffer, reinterpret_cast<const VkCopyImageToBufferInfo2 *>( &copyImageToBufferInfo ) );
25730   }
25731 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25732 
25733   // wrapper function for command vkCmdBlitImage2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBlitImage2KHR.html
25734   template <typename Dispatch>
blitImage2KHR(const VULKAN_HPP_NAMESPACE::BlitImageInfo2 * pBlitImageInfo,Dispatch const & d) const25735   VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR( const VULKAN_HPP_NAMESPACE::BlitImageInfo2 * pBlitImageInfo,
25736                                                        Dispatch const &                             d ) const VULKAN_HPP_NOEXCEPT
25737   {
25738     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25739     d.vkCmdBlitImage2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkBlitImageInfo2 *>( pBlitImageInfo ) );
25740   }
25741 
25742 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25743   // wrapper function for command vkCmdBlitImage2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBlitImage2KHR.html
25744   template <typename Dispatch>
blitImage2KHR(const VULKAN_HPP_NAMESPACE::BlitImageInfo2 & blitImageInfo,Dispatch const & d) const25745   VULKAN_HPP_INLINE void CommandBuffer::blitImage2KHR( const VULKAN_HPP_NAMESPACE::BlitImageInfo2 & blitImageInfo,
25746                                                        Dispatch const &                             d ) const VULKAN_HPP_NOEXCEPT
25747   {
25748     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25749 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25750     VULKAN_HPP_ASSERT( d.vkCmdBlitImage2KHR && "Function <vkCmdBlitImage2KHR> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
25751 #  endif
25752 
25753     d.vkCmdBlitImage2KHR( m_commandBuffer, reinterpret_cast<const VkBlitImageInfo2 *>( &blitImageInfo ) );
25754   }
25755 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25756 
25757   // wrapper function for command vkCmdResolveImage2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdResolveImage2KHR.html
25758   template <typename Dispatch>
resolveImage2KHR(const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 * pResolveImageInfo,Dispatch const & d) const25759   VULKAN_HPP_INLINE void CommandBuffer::resolveImage2KHR( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 * pResolveImageInfo,
25760                                                           Dispatch const &                                d ) const VULKAN_HPP_NOEXCEPT
25761   {
25762     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25763     d.vkCmdResolveImage2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkResolveImageInfo2 *>( pResolveImageInfo ) );
25764   }
25765 
25766 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25767   // wrapper function for command vkCmdResolveImage2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdResolveImage2KHR.html
25768   template <typename Dispatch>
resolveImage2KHR(const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 & resolveImageInfo,Dispatch const & d) const25769   VULKAN_HPP_INLINE void CommandBuffer::resolveImage2KHR( const VULKAN_HPP_NAMESPACE::ResolveImageInfo2 & resolveImageInfo,
25770                                                           Dispatch const &                                d ) const VULKAN_HPP_NOEXCEPT
25771   {
25772     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25773 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25774     VULKAN_HPP_ASSERT( d.vkCmdResolveImage2KHR && "Function <vkCmdResolveImage2KHR> requires <VK_KHR_copy_commands2> or <VK_VERSION_1_3>" );
25775 #  endif
25776 
25777     d.vkCmdResolveImage2KHR( m_commandBuffer, reinterpret_cast<const VkResolveImageInfo2 *>( &resolveImageInfo ) );
25778   }
25779 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25780 
25781   //=== VK_EXT_device_fault ===
25782 
25783   // wrapper function for command vkGetDeviceFaultInfoEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceFaultInfoEXT.html
25784   template <typename Dispatch>
getFaultInfoEXT(VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT * pFaultCounts,VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT * pFaultInfo,Dispatch const & d) const25785   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFaultInfoEXT( VULKAN_HPP_NAMESPACE::DeviceFaultCountsEXT * pFaultCounts,
25786                                                                          VULKAN_HPP_NAMESPACE::DeviceFaultInfoEXT *   pFaultInfo,
25787                                                                          Dispatch const &                             d ) const VULKAN_HPP_NOEXCEPT
25788   {
25789     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25790     return static_cast<Result>( d.vkGetDeviceFaultInfoEXT(
25791       static_cast<VkDevice>( m_device ), reinterpret_cast<VkDeviceFaultCountsEXT *>( pFaultCounts ), reinterpret_cast<VkDeviceFaultInfoEXT *>( pFaultInfo ) ) );
25792   }
25793 #if defined( VK_USE_PLATFORM_WIN32_KHR )
25794   //=== VK_NV_acquire_winrt_display ===
25795 
25796 #  ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
25797   // wrapper function for command vkAcquireWinrtDisplayNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireWinrtDisplayNV.html
25798   template <typename Dispatch>
acquireWinrtDisplayNV(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const25799   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::acquireWinrtDisplayNV( VULKAN_HPP_NAMESPACE::DisplayKHR display,
25800                                                                                        Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
25801   {
25802     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25803     return static_cast<Result>( d.vkAcquireWinrtDisplayNV( static_cast<VkPhysicalDevice>( m_physicalDevice ), static_cast<VkDisplayKHR>( display ) ) );
25804   }
25805 #  else
25806   // wrapper function for command vkAcquireWinrtDisplayNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAcquireWinrtDisplayNV.html
25807   template <typename Dispatch>
25808   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
acquireWinrtDisplayNV(VULKAN_HPP_NAMESPACE::DisplayKHR display,Dispatch const & d) const25809     PhysicalDevice::acquireWinrtDisplayNV( VULKAN_HPP_NAMESPACE::DisplayKHR display, Dispatch const & d ) const
25810   {
25811     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25812 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25813     VULKAN_HPP_ASSERT( d.vkAcquireWinrtDisplayNV && "Function <vkAcquireWinrtDisplayNV> requires <VK_NV_acquire_winrt_display>" );
25814 #    endif
25815 
25816     VULKAN_HPP_NAMESPACE::Result result =
25817       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkAcquireWinrtDisplayNV( m_physicalDevice, static_cast<VkDisplayKHR>( display ) ) );
25818     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::acquireWinrtDisplayNV" );
25819 
25820     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
25821   }
25822 #  endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
25823 
25824   // wrapper function for command vkGetWinrtDisplayNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetWinrtDisplayNV.html
25825   template <typename Dispatch>
getWinrtDisplayNV(uint32_t deviceRelativeId,VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplay,Dispatch const & d) const25826   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getWinrtDisplayNV( uint32_t                           deviceRelativeId,
25827                                                                                    VULKAN_HPP_NAMESPACE::DisplayKHR * pDisplay,
25828                                                                                    Dispatch const &                   d ) const VULKAN_HPP_NOEXCEPT
25829   {
25830     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25831     return static_cast<Result>(
25832       d.vkGetWinrtDisplayNV( static_cast<VkPhysicalDevice>( m_physicalDevice ), deviceRelativeId, reinterpret_cast<VkDisplayKHR *>( pDisplay ) ) );
25833   }
25834 
25835 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25836   // wrapper function for command vkGetWinrtDisplayNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetWinrtDisplayNV.html
25837   template <typename Dispatch>
25838   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::DisplayKHR>::type
getWinrtDisplayNV(uint32_t deviceRelativeId,Dispatch const & d) const25839                        PhysicalDevice::getWinrtDisplayNV( uint32_t deviceRelativeId, Dispatch const & d ) const
25840   {
25841     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25842 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25843     VULKAN_HPP_ASSERT( d.vkGetWinrtDisplayNV && "Function <vkGetWinrtDisplayNV> requires <VK_NV_acquire_winrt_display>" );
25844 #    endif
25845 
25846     VULKAN_HPP_NAMESPACE::DisplayKHR display;
25847     VULKAN_HPP_NAMESPACE::Result     result =
25848       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetWinrtDisplayNV( m_physicalDevice, deviceRelativeId, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
25849     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getWinrtDisplayNV" );
25850 
25851     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( display ) );
25852   }
25853 
25854 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
25855   // wrapper function for command vkGetWinrtDisplayNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetWinrtDisplayNV.html
25856   template <typename Dispatch>
25857   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayKHR, Dispatch>>::type
getWinrtDisplayNVUnique(uint32_t deviceRelativeId,Dispatch const & d) const25858                        PhysicalDevice::getWinrtDisplayNVUnique( uint32_t deviceRelativeId, Dispatch const & d ) const
25859   {
25860     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25861 #      if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25862     VULKAN_HPP_ASSERT( d.vkGetWinrtDisplayNV && "Function <vkGetWinrtDisplayNV> requires <VK_NV_acquire_winrt_display>" );
25863 #      endif
25864 
25865     VULKAN_HPP_NAMESPACE::DisplayKHR display;
25866     VULKAN_HPP_NAMESPACE::Result     result =
25867       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetWinrtDisplayNV( m_physicalDevice, deviceRelativeId, reinterpret_cast<VkDisplayKHR *>( &display ) ) );
25868     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getWinrtDisplayNVUnique" );
25869 
25870     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
25871       result, UniqueHandle<VULKAN_HPP_NAMESPACE::DisplayKHR, Dispatch>( display, detail::ObjectRelease<PhysicalDevice, Dispatch>( *this, d ) ) );
25872   }
25873 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
25874 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25875 #endif     /*VK_USE_PLATFORM_WIN32_KHR*/
25876 
25877 #if defined( VK_USE_PLATFORM_DIRECTFB_EXT )
25878   //=== VK_EXT_directfb_surface ===
25879 
25880   // wrapper function for command vkCreateDirectFBSurfaceEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDirectFBSurfaceEXT.html
25881   template <typename Dispatch>
createDirectFBSurfaceEXT(const VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const25882   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createDirectFBSurfaceEXT( const VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT * pCreateInfo,
25883                                                                                     const VULKAN_HPP_NAMESPACE::AllocationCallbacks *          pAllocator,
25884                                                                                     VULKAN_HPP_NAMESPACE::SurfaceKHR *                         pSurface,
25885                                                                                     Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
25886   {
25887     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25888     return static_cast<Result>( d.vkCreateDirectFBSurfaceEXT( static_cast<VkInstance>( m_instance ),
25889                                                               reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT *>( pCreateInfo ),
25890                                                               reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
25891                                                               reinterpret_cast<VkSurfaceKHR *>( pSurface ) ) );
25892   }
25893 
25894 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25895   // wrapper function for command vkCreateDirectFBSurfaceEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDirectFBSurfaceEXT.html
25896   template <typename Dispatch>
25897   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type
createDirectFBSurfaceEXT(const VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const25898                        Instance::createDirectFBSurfaceEXT( const VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT & createInfo,
25899                                         Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>  allocator,
25900                                         Dispatch const &                                           d ) const
25901   {
25902     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25903 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25904     VULKAN_HPP_ASSERT( d.vkCreateDirectFBSurfaceEXT && "Function <vkCreateDirectFBSurfaceEXT> requires <VK_EXT_directfb_surface>" );
25905 #    endif
25906 
25907     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
25908     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDirectFBSurfaceEXT(
25909       m_instance,
25910       reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT *>( &createInfo ),
25911       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
25912       reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
25913     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDirectFBSurfaceEXT" );
25914 
25915     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surface ) );
25916   }
25917 
25918 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
25919   // wrapper function for command vkCreateDirectFBSurfaceEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateDirectFBSurfaceEXT.html
25920   template <typename Dispatch>
25921   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type
createDirectFBSurfaceEXTUnique(const VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const25922                        Instance::createDirectFBSurfaceEXTUnique( const VULKAN_HPP_NAMESPACE::DirectFBSurfaceCreateInfoEXT & createInfo,
25923                                               Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>  allocator,
25924                                               Dispatch const &                                           d ) const
25925   {
25926     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25927 #      if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25928     VULKAN_HPP_ASSERT( d.vkCreateDirectFBSurfaceEXT && "Function <vkCreateDirectFBSurfaceEXT> requires <VK_EXT_directfb_surface>" );
25929 #      endif
25930 
25931     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
25932     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateDirectFBSurfaceEXT(
25933       m_instance,
25934       reinterpret_cast<const VkDirectFBSurfaceCreateInfoEXT *>( &createInfo ),
25935       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
25936       reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
25937     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createDirectFBSurfaceEXTUnique" );
25938 
25939     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
25940       result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, detail::ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
25941   }
25942 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
25943 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25944 
25945   // wrapper function for command vkGetPhysicalDeviceDirectFBPresentationSupportEXT, see
25946   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDirectFBPresentationSupportEXT.html
25947   template <typename Dispatch>
getDirectFBPresentationSupportEXT(uint32_t queueFamilyIndex,IDirectFB * dfb,Dispatch const & d) const25948   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getDirectFBPresentationSupportEXT( uint32_t         queueFamilyIndex,
25949                                                                               IDirectFB *      dfb,
25950                                                                               Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
25951   {
25952     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25953     return static_cast<Bool32>(
25954       d.vkGetPhysicalDeviceDirectFBPresentationSupportEXT( static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, dfb ) );
25955   }
25956 
25957 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25958   // wrapper function for command vkGetPhysicalDeviceDirectFBPresentationSupportEXT, see
25959   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceDirectFBPresentationSupportEXT.html
25960   template <typename Dispatch>
25961   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32
getDirectFBPresentationSupportEXT(uint32_t queueFamilyIndex,IDirectFB & dfb,Dispatch const & d) const25962     PhysicalDevice::getDirectFBPresentationSupportEXT( uint32_t queueFamilyIndex, IDirectFB & dfb, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
25963   {
25964     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25965 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
25966     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceDirectFBPresentationSupportEXT &&
25967                        "Function <vkGetPhysicalDeviceDirectFBPresentationSupportEXT> requires <VK_EXT_directfb_surface>" );
25968 #    endif
25969 
25970     VkBool32 result = d.vkGetPhysicalDeviceDirectFBPresentationSupportEXT( m_physicalDevice, queueFamilyIndex, &dfb );
25971 
25972     return static_cast<VULKAN_HPP_NAMESPACE::Bool32>( result );
25973   }
25974 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
25975 #endif   /*VK_USE_PLATFORM_DIRECTFB_EXT*/
25976 
25977   //=== VK_EXT_vertex_input_dynamic_state ===
25978 
25979   // wrapper function for command vkCmdSetVertexInputEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetVertexInputEXT.html
25980   template <typename Dispatch>
setVertexInputEXT(uint32_t vertexBindingDescriptionCount,const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT * pVertexBindingDescriptions,uint32_t vertexAttributeDescriptionCount,const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT * pVertexAttributeDescriptions,Dispatch const & d) const25981   VULKAN_HPP_INLINE void CommandBuffer::setVertexInputEXT( uint32_t                                                          vertexBindingDescriptionCount,
25982                                                            const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT *   pVertexBindingDescriptions,
25983                                                            uint32_t                                                          vertexAttributeDescriptionCount,
25984                                                            const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT * pVertexAttributeDescriptions,
25985                                                            Dispatch const &                                                  d ) const VULKAN_HPP_NOEXCEPT
25986   {
25987     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
25988     d.vkCmdSetVertexInputEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
25989                               vertexBindingDescriptionCount,
25990                               reinterpret_cast<const VkVertexInputBindingDescription2EXT *>( pVertexBindingDescriptions ),
25991                               vertexAttributeDescriptionCount,
25992                               reinterpret_cast<const VkVertexInputAttributeDescription2EXT *>( pVertexAttributeDescriptions ) );
25993   }
25994 
25995 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
25996   // wrapper function for command vkCmdSetVertexInputEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetVertexInputEXT.html
25997   template <typename Dispatch>
setVertexInputEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT> const & vertexBindingDescriptions,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT> const & vertexAttributeDescriptions,Dispatch const & d) const25998   VULKAN_HPP_INLINE void CommandBuffer::setVertexInputEXT(
25999     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::VertexInputBindingDescription2EXT> const &   vertexBindingDescriptions,
26000     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::VertexInputAttributeDescription2EXT> const & vertexAttributeDescriptions,
26001     Dispatch const &                                                                                          d ) const VULKAN_HPP_NOEXCEPT
26002   {
26003     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26004 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26005     VULKAN_HPP_ASSERT( d.vkCmdSetVertexInputEXT && "Function <vkCmdSetVertexInputEXT> requires <VK_EXT_shader_object> or <VK_EXT_vertex_input_dynamic_state>" );
26006 #  endif
26007 
26008     d.vkCmdSetVertexInputEXT( m_commandBuffer,
26009                               vertexBindingDescriptions.size(),
26010                               reinterpret_cast<const VkVertexInputBindingDescription2EXT *>( vertexBindingDescriptions.data() ),
26011                               vertexAttributeDescriptions.size(),
26012                               reinterpret_cast<const VkVertexInputAttributeDescription2EXT *>( vertexAttributeDescriptions.data() ) );
26013   }
26014 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
26015 
26016 #if defined( VK_USE_PLATFORM_FUCHSIA )
26017   //=== VK_FUCHSIA_external_memory ===
26018 
26019   // wrapper function for command vkGetMemoryZirconHandleFUCHSIA, see
26020   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryZirconHandleFUCHSIA.html
26021   template <typename Dispatch>
26022   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getMemoryZirconHandleFUCHSIA(const VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo,zx_handle_t * pZirconHandle,Dispatch const & d) const26023     Device::getMemoryZirconHandleFUCHSIA( const VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo,
26024                                           zx_handle_t *                                                  pZirconHandle,
26025                                           Dispatch const &                                               d ) const VULKAN_HPP_NOEXCEPT
26026   {
26027     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26028     return static_cast<Result>( d.vkGetMemoryZirconHandleFUCHSIA(
26029       static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryGetZirconHandleInfoFUCHSIA *>( pGetZirconHandleInfo ), pZirconHandle ) );
26030   }
26031 
26032 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
26033   // wrapper function for command vkGetMemoryZirconHandleFUCHSIA, see
26034   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryZirconHandleFUCHSIA.html
26035   template <typename Dispatch>
26036   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<zx_handle_t>::type
getMemoryZirconHandleFUCHSIA(const VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA & getZirconHandleInfo,Dispatch const & d) const26037     Device::getMemoryZirconHandleFUCHSIA( const VULKAN_HPP_NAMESPACE::MemoryGetZirconHandleInfoFUCHSIA & getZirconHandleInfo, Dispatch const & d ) const
26038   {
26039     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26040 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26041     VULKAN_HPP_ASSERT( d.vkGetMemoryZirconHandleFUCHSIA && "Function <vkGetMemoryZirconHandleFUCHSIA> requires <VK_FUCHSIA_external_memory>" );
26042 #    endif
26043 
26044     zx_handle_t                  zirconHandle;
26045     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
26046       d.vkGetMemoryZirconHandleFUCHSIA( m_device, reinterpret_cast<const VkMemoryGetZirconHandleInfoFUCHSIA *>( &getZirconHandleInfo ), &zirconHandle ) );
26047     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryZirconHandleFUCHSIA" );
26048 
26049     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( zirconHandle ) );
26050   }
26051 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
26052 
26053   // wrapper function for command vkGetMemoryZirconHandlePropertiesFUCHSIA, see
26054   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryZirconHandlePropertiesFUCHSIA.html
26055   template <typename Dispatch>
26056   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getMemoryZirconHandlePropertiesFUCHSIA(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,zx_handle_t zirconHandle,VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA * pMemoryZirconHandleProperties,Dispatch const & d) const26057     Device::getMemoryZirconHandlePropertiesFUCHSIA( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits      handleType,
26058                                                     zx_handle_t                                                 zirconHandle,
26059                                                     VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA * pMemoryZirconHandleProperties,
26060                                                     Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
26061   {
26062     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26063     return static_cast<Result>(
26064       d.vkGetMemoryZirconHandlePropertiesFUCHSIA( static_cast<VkDevice>( m_device ),
26065                                                   static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
26066                                                   zirconHandle,
26067                                                   reinterpret_cast<VkMemoryZirconHandlePropertiesFUCHSIA *>( pMemoryZirconHandleProperties ) ) );
26068   }
26069 
26070 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
26071   // wrapper function for command vkGetMemoryZirconHandlePropertiesFUCHSIA, see
26072   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryZirconHandlePropertiesFUCHSIA.html
26073   template <typename Dispatch>
26074   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA>::type
getMemoryZirconHandlePropertiesFUCHSIA(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,zx_handle_t zirconHandle,Dispatch const & d) const26075                        Device::getMemoryZirconHandlePropertiesFUCHSIA( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,
26076                                                     zx_handle_t                                            zirconHandle,
26077                                                     Dispatch const &                                       d ) const
26078   {
26079     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26080 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26081     VULKAN_HPP_ASSERT( d.vkGetMemoryZirconHandlePropertiesFUCHSIA &&
26082                        "Function <vkGetMemoryZirconHandlePropertiesFUCHSIA> requires <VK_FUCHSIA_external_memory>" );
26083 #    endif
26084 
26085     VULKAN_HPP_NAMESPACE::MemoryZirconHandlePropertiesFUCHSIA memoryZirconHandleProperties;
26086     VULKAN_HPP_NAMESPACE::Result                              result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
26087       d.vkGetMemoryZirconHandlePropertiesFUCHSIA( m_device,
26088                                                   static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
26089                                                   zirconHandle,
26090                                                   reinterpret_cast<VkMemoryZirconHandlePropertiesFUCHSIA *>( &memoryZirconHandleProperties ) ) );
26091     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryZirconHandlePropertiesFUCHSIA" );
26092 
26093     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( memoryZirconHandleProperties ) );
26094   }
26095 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
26096 #endif   /*VK_USE_PLATFORM_FUCHSIA*/
26097 
26098 #if defined( VK_USE_PLATFORM_FUCHSIA )
26099   //=== VK_FUCHSIA_external_semaphore ===
26100 
26101   // wrapper function for command vkImportSemaphoreZirconHandleFUCHSIA, see
26102   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportSemaphoreZirconHandleFUCHSIA.html
26103   template <typename Dispatch>
importSemaphoreZirconHandleFUCHSIA(const VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA * pImportSemaphoreZirconHandleInfo,Dispatch const & d) const26104   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::importSemaphoreZirconHandleFUCHSIA(
26105     const VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA * pImportSemaphoreZirconHandleInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
26106   {
26107     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26108     return static_cast<Result>( d.vkImportSemaphoreZirconHandleFUCHSIA(
26109       static_cast<VkDevice>( m_device ), reinterpret_cast<const VkImportSemaphoreZirconHandleInfoFUCHSIA *>( pImportSemaphoreZirconHandleInfo ) ) );
26110   }
26111 
26112 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
26113   // wrapper function for command vkImportSemaphoreZirconHandleFUCHSIA, see
26114   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkImportSemaphoreZirconHandleFUCHSIA.html
26115   template <typename Dispatch>
26116   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
importSemaphoreZirconHandleFUCHSIA(const VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA & importSemaphoreZirconHandleInfo,Dispatch const & d) const26117     Device::importSemaphoreZirconHandleFUCHSIA( const VULKAN_HPP_NAMESPACE::ImportSemaphoreZirconHandleInfoFUCHSIA & importSemaphoreZirconHandleInfo,
26118                                                 Dispatch const &                                                     d ) const
26119   {
26120     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26121 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26122     VULKAN_HPP_ASSERT( d.vkImportSemaphoreZirconHandleFUCHSIA && "Function <vkImportSemaphoreZirconHandleFUCHSIA> requires <VK_FUCHSIA_external_semaphore>" );
26123 #    endif
26124 
26125     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkImportSemaphoreZirconHandleFUCHSIA(
26126       m_device, reinterpret_cast<const VkImportSemaphoreZirconHandleInfoFUCHSIA *>( &importSemaphoreZirconHandleInfo ) ) );
26127     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::importSemaphoreZirconHandleFUCHSIA" );
26128 
26129     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
26130   }
26131 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
26132 
26133   // wrapper function for command vkGetSemaphoreZirconHandleFUCHSIA, see
26134   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreZirconHandleFUCHSIA.html
26135   template <typename Dispatch>
26136   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getSemaphoreZirconHandleFUCHSIA(const VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo,zx_handle_t * pZirconHandle,Dispatch const & d) const26137     Device::getSemaphoreZirconHandleFUCHSIA( const VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA * pGetZirconHandleInfo,
26138                                              zx_handle_t *                                                     pZirconHandle,
26139                                              Dispatch const &                                                  d ) const VULKAN_HPP_NOEXCEPT
26140   {
26141     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26142     return static_cast<Result>( d.vkGetSemaphoreZirconHandleFUCHSIA(
26143       static_cast<VkDevice>( m_device ), reinterpret_cast<const VkSemaphoreGetZirconHandleInfoFUCHSIA *>( pGetZirconHandleInfo ), pZirconHandle ) );
26144   }
26145 
26146 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
26147   // wrapper function for command vkGetSemaphoreZirconHandleFUCHSIA, see
26148   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetSemaphoreZirconHandleFUCHSIA.html
26149   template <typename Dispatch>
26150   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<zx_handle_t>::type
getSemaphoreZirconHandleFUCHSIA(const VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA & getZirconHandleInfo,Dispatch const & d) const26151     Device::getSemaphoreZirconHandleFUCHSIA( const VULKAN_HPP_NAMESPACE::SemaphoreGetZirconHandleInfoFUCHSIA & getZirconHandleInfo, Dispatch const & d ) const
26152   {
26153     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26154 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26155     VULKAN_HPP_ASSERT( d.vkGetSemaphoreZirconHandleFUCHSIA && "Function <vkGetSemaphoreZirconHandleFUCHSIA> requires <VK_FUCHSIA_external_semaphore>" );
26156 #    endif
26157 
26158     zx_handle_t                  zirconHandle;
26159     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
26160       d.vkGetSemaphoreZirconHandleFUCHSIA( m_device, reinterpret_cast<const VkSemaphoreGetZirconHandleInfoFUCHSIA *>( &getZirconHandleInfo ), &zirconHandle ) );
26161     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSemaphoreZirconHandleFUCHSIA" );
26162 
26163     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( zirconHandle ) );
26164   }
26165 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
26166 #endif   /*VK_USE_PLATFORM_FUCHSIA*/
26167 
26168 #if defined( VK_USE_PLATFORM_FUCHSIA )
26169   //=== VK_FUCHSIA_buffer_collection ===
26170 
26171   // wrapper function for command vkCreateBufferCollectionFUCHSIA, see
26172   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateBufferCollectionFUCHSIA.html
26173   template <typename Dispatch>
26174   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
createBufferCollectionFUCHSIA(const VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA * pCollection,Dispatch const & d) const26175     Device::createBufferCollectionFUCHSIA( const VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA * pCreateInfo,
26176                                            const VULKAN_HPP_NAMESPACE::AllocationCallbacks *               pAllocator,
26177                                            VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA *                 pCollection,
26178                                            Dispatch const &                                                d ) const VULKAN_HPP_NOEXCEPT
26179   {
26180     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26181     return static_cast<Result>( d.vkCreateBufferCollectionFUCHSIA( static_cast<VkDevice>( m_device ),
26182                                                                    reinterpret_cast<const VkBufferCollectionCreateInfoFUCHSIA *>( pCreateInfo ),
26183                                                                    reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
26184                                                                    reinterpret_cast<VkBufferCollectionFUCHSIA *>( pCollection ) ) );
26185   }
26186 
26187 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
26188   // wrapper function for command vkCreateBufferCollectionFUCHSIA, see
26189   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateBufferCollectionFUCHSIA.html
26190   template <typename Dispatch>
26191   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA>::type
createBufferCollectionFUCHSIA(const VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const26192                        Device::createBufferCollectionFUCHSIA( const VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA & createInfo,
26193                                            Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>       allocator,
26194                                            Dispatch const &                                                d ) const
26195   {
26196     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26197 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26198     VULKAN_HPP_ASSERT( d.vkCreateBufferCollectionFUCHSIA && "Function <vkCreateBufferCollectionFUCHSIA> requires <VK_FUCHSIA_buffer_collection>" );
26199 #    endif
26200 
26201     VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection;
26202     VULKAN_HPP_NAMESPACE::Result                  result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateBufferCollectionFUCHSIA(
26203       m_device,
26204       reinterpret_cast<const VkBufferCollectionCreateInfoFUCHSIA *>( &createInfo ),
26205       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
26206       reinterpret_cast<VkBufferCollectionFUCHSIA *>( &collection ) ) );
26207     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferCollectionFUCHSIA" );
26208 
26209     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( collection ) );
26210   }
26211 
26212 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
26213   // wrapper function for command vkCreateBufferCollectionFUCHSIA, see
26214   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateBufferCollectionFUCHSIA.html
26215   template <typename Dispatch>
26216   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA, Dispatch>>::type
createBufferCollectionFUCHSIAUnique(const VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const26217                        Device::createBufferCollectionFUCHSIAUnique( const VULKAN_HPP_NAMESPACE::BufferCollectionCreateInfoFUCHSIA & createInfo,
26218                                                  Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>       allocator,
26219                                                  Dispatch const &                                                d ) const
26220   {
26221     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26222 #      if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26223     VULKAN_HPP_ASSERT( d.vkCreateBufferCollectionFUCHSIA && "Function <vkCreateBufferCollectionFUCHSIA> requires <VK_FUCHSIA_buffer_collection>" );
26224 #      endif
26225 
26226     VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection;
26227     VULKAN_HPP_NAMESPACE::Result                  result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateBufferCollectionFUCHSIA(
26228       m_device,
26229       reinterpret_cast<const VkBufferCollectionCreateInfoFUCHSIA *>( &createInfo ),
26230       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
26231       reinterpret_cast<VkBufferCollectionFUCHSIA *>( &collection ) ) );
26232     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createBufferCollectionFUCHSIAUnique" );
26233 
26234     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
26235       result,
26236       UniqueHandle<VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA, Dispatch>( collection, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
26237   }
26238 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
26239 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
26240 
26241   // wrapper function for command vkSetBufferCollectionImageConstraintsFUCHSIA, see
26242   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetBufferCollectionImageConstraintsFUCHSIA.html
26243   template <typename Dispatch>
26244   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
setBufferCollectionImageConstraintsFUCHSIA(VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection,const VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA * pImageConstraintsInfo,Dispatch const & d) const26245     Device::setBufferCollectionImageConstraintsFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA             collection,
26246                                                         const VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA * pImageConstraintsInfo,
26247                                                         Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
26248   {
26249     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26250     return static_cast<Result>(
26251       d.vkSetBufferCollectionImageConstraintsFUCHSIA( static_cast<VkDevice>( m_device ),
26252                                                       static_cast<VkBufferCollectionFUCHSIA>( collection ),
26253                                                       reinterpret_cast<const VkImageConstraintsInfoFUCHSIA *>( pImageConstraintsInfo ) ) );
26254   }
26255 
26256 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
26257   // wrapper function for command vkSetBufferCollectionImageConstraintsFUCHSIA, see
26258   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetBufferCollectionImageConstraintsFUCHSIA.html
26259   template <typename Dispatch>
26260   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
setBufferCollectionImageConstraintsFUCHSIA(VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection,const VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA & imageConstraintsInfo,Dispatch const & d) const26261                                           Device::setBufferCollectionImageConstraintsFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA             collection,
26262                                                         const VULKAN_HPP_NAMESPACE::ImageConstraintsInfoFUCHSIA & imageConstraintsInfo,
26263                                                         Dispatch const &                                          d ) const
26264   {
26265     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26266 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26267     VULKAN_HPP_ASSERT( d.vkSetBufferCollectionImageConstraintsFUCHSIA &&
26268                        "Function <vkSetBufferCollectionImageConstraintsFUCHSIA> requires <VK_FUCHSIA_buffer_collection>" );
26269 #    endif
26270 
26271     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkSetBufferCollectionImageConstraintsFUCHSIA(
26272       m_device, static_cast<VkBufferCollectionFUCHSIA>( collection ), reinterpret_cast<const VkImageConstraintsInfoFUCHSIA *>( &imageConstraintsInfo ) ) );
26273     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setBufferCollectionImageConstraintsFUCHSIA" );
26274 
26275     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
26276   }
26277 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
26278 
26279   // wrapper function for command vkSetBufferCollectionBufferConstraintsFUCHSIA, see
26280   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetBufferCollectionBufferConstraintsFUCHSIA.html
26281   template <typename Dispatch>
26282   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
setBufferCollectionBufferConstraintsFUCHSIA(VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection,const VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA * pBufferConstraintsInfo,Dispatch const & d) const26283     Device::setBufferCollectionBufferConstraintsFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA              collection,
26284                                                          const VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA * pBufferConstraintsInfo,
26285                                                          Dispatch const &                                           d ) const VULKAN_HPP_NOEXCEPT
26286   {
26287     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26288     return static_cast<Result>(
26289       d.vkSetBufferCollectionBufferConstraintsFUCHSIA( static_cast<VkDevice>( m_device ),
26290                                                        static_cast<VkBufferCollectionFUCHSIA>( collection ),
26291                                                        reinterpret_cast<const VkBufferConstraintsInfoFUCHSIA *>( pBufferConstraintsInfo ) ) );
26292   }
26293 
26294 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
26295   // wrapper function for command vkSetBufferCollectionBufferConstraintsFUCHSIA, see
26296   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetBufferCollectionBufferConstraintsFUCHSIA.html
26297   template <typename Dispatch>
26298   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
setBufferCollectionBufferConstraintsFUCHSIA(VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection,const VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA & bufferConstraintsInfo,Dispatch const & d) const26299                                           Device::setBufferCollectionBufferConstraintsFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA              collection,
26300                                                          const VULKAN_HPP_NAMESPACE::BufferConstraintsInfoFUCHSIA & bufferConstraintsInfo,
26301                                                          Dispatch const &                                           d ) const
26302   {
26303     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26304 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26305     VULKAN_HPP_ASSERT( d.vkSetBufferCollectionBufferConstraintsFUCHSIA &&
26306                        "Function <vkSetBufferCollectionBufferConstraintsFUCHSIA> requires <VK_FUCHSIA_buffer_collection>" );
26307 #    endif
26308 
26309     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkSetBufferCollectionBufferConstraintsFUCHSIA(
26310       m_device, static_cast<VkBufferCollectionFUCHSIA>( collection ), reinterpret_cast<const VkBufferConstraintsInfoFUCHSIA *>( &bufferConstraintsInfo ) ) );
26311     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setBufferCollectionBufferConstraintsFUCHSIA" );
26312 
26313     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
26314   }
26315 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
26316 
26317   // wrapper function for command vkDestroyBufferCollectionFUCHSIA, see
26318   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyBufferCollectionFUCHSIA.html
26319   template <typename Dispatch>
destroyBufferCollectionFUCHSIA(VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const26320   VULKAN_HPP_INLINE void Device::destroyBufferCollectionFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA     collection,
26321                                                                  const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
26322                                                                  Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
26323   {
26324     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26325     d.vkDestroyBufferCollectionFUCHSIA(
26326       static_cast<VkDevice>( m_device ), static_cast<VkBufferCollectionFUCHSIA>( collection ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
26327   }
26328 
26329 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
26330   // wrapper function for command vkDestroyBufferCollectionFUCHSIA, see
26331   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyBufferCollectionFUCHSIA.html
26332   template <typename Dispatch>
destroyBufferCollectionFUCHSIA(VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const26333   VULKAN_HPP_INLINE void Device::destroyBufferCollectionFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA             collection,
26334                                                                  Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
26335                                                                  Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
26336   {
26337     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26338 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26339     VULKAN_HPP_ASSERT( d.vkDestroyBufferCollectionFUCHSIA && "Function <vkDestroyBufferCollectionFUCHSIA> requires <VK_FUCHSIA_buffer_collection>" );
26340 #    endif
26341 
26342     d.vkDestroyBufferCollectionFUCHSIA(
26343       m_device,
26344       static_cast<VkBufferCollectionFUCHSIA>( collection ),
26345       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
26346   }
26347 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
26348 
26349   // wrapper function for command vkDestroyBufferCollectionFUCHSIA, see
26350   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyBufferCollectionFUCHSIA.html
26351   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const26352   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA     collection,
26353                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
26354                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
26355   {
26356     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26357     d.vkDestroyBufferCollectionFUCHSIA(
26358       static_cast<VkDevice>( m_device ), static_cast<VkBufferCollectionFUCHSIA>( collection ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
26359   }
26360 
26361 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
26362   // wrapper function for command vkDestroyBufferCollectionFUCHSIA, see
26363   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyBufferCollectionFUCHSIA.html
26364   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const26365   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA             collection,
26366                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
26367                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
26368   {
26369     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26370 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26371     VULKAN_HPP_ASSERT( d.vkDestroyBufferCollectionFUCHSIA && "Function <vkDestroyBufferCollectionFUCHSIA> requires <VK_FUCHSIA_buffer_collection>" );
26372 #    endif
26373 
26374     d.vkDestroyBufferCollectionFUCHSIA(
26375       m_device,
26376       static_cast<VkBufferCollectionFUCHSIA>( collection ),
26377       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
26378   }
26379 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
26380 
26381   // wrapper function for command vkGetBufferCollectionPropertiesFUCHSIA, see
26382   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferCollectionPropertiesFUCHSIA.html
26383   template <typename Dispatch>
26384   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getBufferCollectionPropertiesFUCHSIA(VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection,VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA * pProperties,Dispatch const & d) const26385     Device::getBufferCollectionPropertiesFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA             collection,
26386                                                   VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA * pProperties,
26387                                                   Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
26388   {
26389     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26390     return static_cast<Result>( d.vkGetBufferCollectionPropertiesFUCHSIA( static_cast<VkDevice>( m_device ),
26391                                                                           static_cast<VkBufferCollectionFUCHSIA>( collection ),
26392                                                                           reinterpret_cast<VkBufferCollectionPropertiesFUCHSIA *>( pProperties ) ) );
26393   }
26394 
26395 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
26396   // wrapper function for command vkGetBufferCollectionPropertiesFUCHSIA, see
26397   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetBufferCollectionPropertiesFUCHSIA.html
26398   template <typename Dispatch>
26399   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA>::type
getBufferCollectionPropertiesFUCHSIA(VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection,Dispatch const & d) const26400                        Device::getBufferCollectionPropertiesFUCHSIA( VULKAN_HPP_NAMESPACE::BufferCollectionFUCHSIA collection, Dispatch const & d ) const
26401   {
26402     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26403 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26404     VULKAN_HPP_ASSERT( d.vkGetBufferCollectionPropertiesFUCHSIA &&
26405                        "Function <vkGetBufferCollectionPropertiesFUCHSIA> requires <VK_FUCHSIA_buffer_collection>" );
26406 #    endif
26407 
26408     VULKAN_HPP_NAMESPACE::BufferCollectionPropertiesFUCHSIA properties;
26409     VULKAN_HPP_NAMESPACE::Result                            result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetBufferCollectionPropertiesFUCHSIA(
26410       m_device, static_cast<VkBufferCollectionFUCHSIA>( collection ), reinterpret_cast<VkBufferCollectionPropertiesFUCHSIA *>( &properties ) ) );
26411     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getBufferCollectionPropertiesFUCHSIA" );
26412 
26413     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
26414   }
26415 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
26416 #endif   /*VK_USE_PLATFORM_FUCHSIA*/
26417 
26418   //=== VK_HUAWEI_subpass_shading ===
26419 
26420   // wrapper function for command vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, see
26421   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI.html
26422   template <typename Dispatch>
getSubpassShadingMaxWorkgroupSizeHUAWEI(VULKAN_HPP_NAMESPACE::RenderPass renderpass,VULKAN_HPP_NAMESPACE::Extent2D * pMaxWorkgroupSize,Dispatch const & d) const26423   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getSubpassShadingMaxWorkgroupSizeHUAWEI( VULKAN_HPP_NAMESPACE::RenderPass renderpass,
26424                                                                                                  VULKAN_HPP_NAMESPACE::Extent2D * pMaxWorkgroupSize,
26425                                                                                                  Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
26426   {
26427     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26428     return static_cast<Result>( d.vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
26429       static_cast<VkDevice>( m_device ), static_cast<VkRenderPass>( renderpass ), reinterpret_cast<VkExtent2D *>( pMaxWorkgroupSize ) ) );
26430   }
26431 
26432 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
26433   // wrapper function for command vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI, see
26434   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI.html
26435   template <typename Dispatch>
26436   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::Extent2D>::type
getSubpassShadingMaxWorkgroupSizeHUAWEI(VULKAN_HPP_NAMESPACE::RenderPass renderpass,Dispatch const & d) const26437                        Device::getSubpassShadingMaxWorkgroupSizeHUAWEI( VULKAN_HPP_NAMESPACE::RenderPass renderpass, Dispatch const & d ) const
26438   {
26439     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26440 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26441     VULKAN_HPP_ASSERT( d.vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI &&
26442                        "Function <vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI> requires <VK_HUAWEI_subpass_shading>" );
26443 #  endif
26444 
26445     VULKAN_HPP_NAMESPACE::Extent2D maxWorkgroupSize;
26446     VULKAN_HPP_NAMESPACE::Result   result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetDeviceSubpassShadingMaxWorkgroupSizeHUAWEI(
26447       m_device, static_cast<VkRenderPass>( renderpass ), reinterpret_cast<VkExtent2D *>( &maxWorkgroupSize ) ) );
26448     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getSubpassShadingMaxWorkgroupSizeHUAWEI" );
26449 
26450     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( maxWorkgroupSize ) );
26451   }
26452 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
26453 
26454   // wrapper function for command vkCmdSubpassShadingHUAWEI, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSubpassShadingHUAWEI.html
26455   template <typename Dispatch>
subpassShadingHUAWEI(Dispatch const & d) const26456   VULKAN_HPP_INLINE void CommandBuffer::subpassShadingHUAWEI( Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
26457   {
26458     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26459     d.vkCmdSubpassShadingHUAWEI( static_cast<VkCommandBuffer>( m_commandBuffer ) );
26460   }
26461 
26462   //=== VK_HUAWEI_invocation_mask ===
26463 
26464   // wrapper function for command vkCmdBindInvocationMaskHUAWEI, see
26465   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindInvocationMaskHUAWEI.html
26466   template <typename Dispatch>
bindInvocationMaskHUAWEI(VULKAN_HPP_NAMESPACE::ImageView imageView,VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,Dispatch const & d) const26467   VULKAN_HPP_INLINE void CommandBuffer::bindInvocationMaskHUAWEI( VULKAN_HPP_NAMESPACE::ImageView   imageView,
26468                                                                   VULKAN_HPP_NAMESPACE::ImageLayout imageLayout,
26469                                                                   Dispatch const &                  d ) const VULKAN_HPP_NOEXCEPT
26470   {
26471     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26472     d.vkCmdBindInvocationMaskHUAWEI(
26473       static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkImageView>( imageView ), static_cast<VkImageLayout>( imageLayout ) );
26474   }
26475 
26476   //=== VK_NV_external_memory_rdma ===
26477 
26478   // wrapper function for command vkGetMemoryRemoteAddressNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryRemoteAddressNV.html
26479   template <typename Dispatch>
26480   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getMemoryRemoteAddressNV(const VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo,VULKAN_HPP_NAMESPACE::RemoteAddressNV * pAddress,Dispatch const & d) const26481     Device::getMemoryRemoteAddressNV( const VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV * pMemoryGetRemoteAddressInfo,
26482                                       VULKAN_HPP_NAMESPACE::RemoteAddressNV *                    pAddress,
26483                                       Dispatch const &                                           d ) const VULKAN_HPP_NOEXCEPT
26484   {
26485     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26486     return static_cast<Result>( d.vkGetMemoryRemoteAddressNV( static_cast<VkDevice>( m_device ),
26487                                                               reinterpret_cast<const VkMemoryGetRemoteAddressInfoNV *>( pMemoryGetRemoteAddressInfo ),
26488                                                               reinterpret_cast<VkRemoteAddressNV *>( pAddress ) ) );
26489   }
26490 
26491 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
26492   // wrapper function for command vkGetMemoryRemoteAddressNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryRemoteAddressNV.html
26493   template <typename Dispatch>
26494   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::RemoteAddressNV>::type
getMemoryRemoteAddressNV(const VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV & memoryGetRemoteAddressInfo,Dispatch const & d) const26495     Device::getMemoryRemoteAddressNV( const VULKAN_HPP_NAMESPACE::MemoryGetRemoteAddressInfoNV & memoryGetRemoteAddressInfo, Dispatch const & d ) const
26496   {
26497     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26498 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26499     VULKAN_HPP_ASSERT( d.vkGetMemoryRemoteAddressNV && "Function <vkGetMemoryRemoteAddressNV> requires <VK_NV_external_memory_rdma>" );
26500 #  endif
26501 
26502     VULKAN_HPP_NAMESPACE::RemoteAddressNV address;
26503     VULKAN_HPP_NAMESPACE::Result          result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetMemoryRemoteAddressNV(
26504       m_device, reinterpret_cast<const VkMemoryGetRemoteAddressInfoNV *>( &memoryGetRemoteAddressInfo ), reinterpret_cast<VkRemoteAddressNV *>( &address ) ) );
26505     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryRemoteAddressNV" );
26506 
26507     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( address ) );
26508   }
26509 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
26510 
26511   //=== VK_EXT_pipeline_properties ===
26512 
26513   // wrapper function for command vkGetPipelinePropertiesEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelinePropertiesEXT.html
26514   template <typename Dispatch>
getPipelinePropertiesEXT(const VULKAN_HPP_NAMESPACE::PipelineInfoEXT * pPipelineInfo,VULKAN_HPP_NAMESPACE::BaseOutStructure * pPipelineProperties,Dispatch const & d) const26515   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPipelinePropertiesEXT( const VULKAN_HPP_NAMESPACE::PipelineInfoEXT * pPipelineInfo,
26516                                                                                   VULKAN_HPP_NAMESPACE::BaseOutStructure *      pPipelineProperties,
26517                                                                                   Dispatch const &                              d ) const VULKAN_HPP_NOEXCEPT
26518   {
26519     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26520     return static_cast<Result>( d.vkGetPipelinePropertiesEXT( static_cast<VkDevice>( m_device ),
26521                                                               reinterpret_cast<const VkPipelineInfoEXT *>( pPipelineInfo ),
26522                                                               reinterpret_cast<VkBaseOutStructure *>( pPipelineProperties ) ) );
26523   }
26524 
26525 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
26526   // wrapper function for command vkGetPipelinePropertiesEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelinePropertiesEXT.html
26527   template <typename Dispatch>
26528   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::BaseOutStructure>::type
getPipelinePropertiesEXT(const VULKAN_HPP_NAMESPACE::PipelineInfoEXT & pipelineInfo,Dispatch const & d) const26529                        Device::getPipelinePropertiesEXT( const VULKAN_HPP_NAMESPACE::PipelineInfoEXT & pipelineInfo, Dispatch const & d ) const
26530   {
26531     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26532 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26533     VULKAN_HPP_ASSERT( d.vkGetPipelinePropertiesEXT && "Function <vkGetPipelinePropertiesEXT> requires <VK_EXT_pipeline_properties>" );
26534 #  endif
26535 
26536     VULKAN_HPP_NAMESPACE::BaseOutStructure pipelineProperties;
26537     VULKAN_HPP_NAMESPACE::Result           result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPipelinePropertiesEXT(
26538       m_device, reinterpret_cast<const VkPipelineInfoEXT *>( &pipelineInfo ), reinterpret_cast<VkBaseOutStructure *>( &pipelineProperties ) ) );
26539     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelinePropertiesEXT" );
26540 
26541     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( pipelineProperties ) );
26542   }
26543 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
26544 
26545   //=== VK_EXT_extended_dynamic_state2 ===
26546 
26547   // wrapper function for command vkCmdSetPatchControlPointsEXT, see
26548   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPatchControlPointsEXT.html
26549   template <typename Dispatch>
setPatchControlPointsEXT(uint32_t patchControlPoints,Dispatch const & d) const26550   VULKAN_HPP_INLINE void CommandBuffer::setPatchControlPointsEXT( uint32_t patchControlPoints, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
26551   {
26552     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26553     d.vkCmdSetPatchControlPointsEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), patchControlPoints );
26554   }
26555 
26556   // wrapper function for command vkCmdSetRasterizerDiscardEnableEXT, see
26557   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetRasterizerDiscardEnableEXT.html
26558   template <typename Dispatch>
setRasterizerDiscardEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable,Dispatch const & d) const26559   VULKAN_HPP_INLINE void CommandBuffer::setRasterizerDiscardEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 rasterizerDiscardEnable,
26560                                                                        Dispatch const &             d ) const VULKAN_HPP_NOEXCEPT
26561   {
26562     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26563     d.vkCmdSetRasterizerDiscardEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( rasterizerDiscardEnable ) );
26564   }
26565 
26566   // wrapper function for command vkCmdSetDepthBiasEnableEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthBiasEnableEXT.html
26567   template <typename Dispatch>
setDepthBiasEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable,Dispatch const & d) const26568   VULKAN_HPP_INLINE void CommandBuffer::setDepthBiasEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthBiasEnable, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
26569   {
26570     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26571     d.vkCmdSetDepthBiasEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthBiasEnable ) );
26572   }
26573 
26574   // wrapper function for command vkCmdSetLogicOpEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetLogicOpEXT.html
26575   template <typename Dispatch>
setLogicOpEXT(VULKAN_HPP_NAMESPACE::LogicOp logicOp,Dispatch const & d) const26576   VULKAN_HPP_INLINE void CommandBuffer::setLogicOpEXT( VULKAN_HPP_NAMESPACE::LogicOp logicOp, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
26577   {
26578     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26579     d.vkCmdSetLogicOpEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkLogicOp>( logicOp ) );
26580   }
26581 
26582   // wrapper function for command vkCmdSetPrimitiveRestartEnableEXT, see
26583   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPrimitiveRestartEnableEXT.html
26584   template <typename Dispatch>
setPrimitiveRestartEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable,Dispatch const & d) const26585   VULKAN_HPP_INLINE void CommandBuffer::setPrimitiveRestartEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 primitiveRestartEnable,
26586                                                                       Dispatch const &             d ) const VULKAN_HPP_NOEXCEPT
26587   {
26588     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26589     d.vkCmdSetPrimitiveRestartEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( primitiveRestartEnable ) );
26590   }
26591 
26592 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
26593   //=== VK_QNX_screen_surface ===
26594 
26595   // wrapper function for command vkCreateScreenSurfaceQNX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateScreenSurfaceQNX.html
26596   template <typename Dispatch>
createScreenSurfaceQNX(const VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::SurfaceKHR * pSurface,Dispatch const & d) const26597   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Instance::createScreenSurfaceQNX( const VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX * pCreateInfo,
26598                                                                                   const VULKAN_HPP_NAMESPACE::AllocationCallbacks *        pAllocator,
26599                                                                                   VULKAN_HPP_NAMESPACE::SurfaceKHR *                       pSurface,
26600                                                                                   Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
26601   {
26602     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26603     return static_cast<Result>( d.vkCreateScreenSurfaceQNX( static_cast<VkInstance>( m_instance ),
26604                                                             reinterpret_cast<const VkScreenSurfaceCreateInfoQNX *>( pCreateInfo ),
26605                                                             reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
26606                                                             reinterpret_cast<VkSurfaceKHR *>( pSurface ) ) );
26607   }
26608 
26609 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
26610   // wrapper function for command vkCreateScreenSurfaceQNX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateScreenSurfaceQNX.html
26611   template <typename Dispatch>
26612   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::SurfaceKHR>::type
createScreenSurfaceQNX(const VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const26613                        Instance::createScreenSurfaceQNX( const VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX &  createInfo,
26614                                       Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
26615                                       Dispatch const &                                          d ) const
26616   {
26617     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26618 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26619     VULKAN_HPP_ASSERT( d.vkCreateScreenSurfaceQNX && "Function <vkCreateScreenSurfaceQNX> requires <VK_QNX_screen_surface>" );
26620 #    endif
26621 
26622     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
26623     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateScreenSurfaceQNX(
26624       m_instance,
26625       reinterpret_cast<const VkScreenSurfaceCreateInfoQNX *>( &createInfo ),
26626       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
26627       reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
26628     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createScreenSurfaceQNX" );
26629 
26630     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( surface ) );
26631   }
26632 
26633 #    ifndef VULKAN_HPP_NO_SMART_HANDLE
26634   // wrapper function for command vkCreateScreenSurfaceQNX, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateScreenSurfaceQNX.html
26635   template <typename Dispatch>
26636   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>>::type
createScreenSurfaceQNXUnique(const VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const26637                        Instance::createScreenSurfaceQNXUnique( const VULKAN_HPP_NAMESPACE::ScreenSurfaceCreateInfoQNX &  createInfo,
26638                                             Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
26639                                             Dispatch const &                                          d ) const
26640   {
26641     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26642 #      if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26643     VULKAN_HPP_ASSERT( d.vkCreateScreenSurfaceQNX && "Function <vkCreateScreenSurfaceQNX> requires <VK_QNX_screen_surface>" );
26644 #      endif
26645 
26646     VULKAN_HPP_NAMESPACE::SurfaceKHR surface;
26647     VULKAN_HPP_NAMESPACE::Result     result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateScreenSurfaceQNX(
26648       m_instance,
26649       reinterpret_cast<const VkScreenSurfaceCreateInfoQNX *>( &createInfo ),
26650       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
26651       reinterpret_cast<VkSurfaceKHR *>( &surface ) ) );
26652     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Instance::createScreenSurfaceQNXUnique" );
26653 
26654     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
26655       result, UniqueHandle<VULKAN_HPP_NAMESPACE::SurfaceKHR, Dispatch>( surface, detail::ObjectDestroy<Instance, Dispatch>( *this, allocator, d ) ) );
26656   }
26657 #    endif /* VULKAN_HPP_NO_SMART_HANDLE */
26658 #  endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
26659 
26660   // wrapper function for command vkGetPhysicalDeviceScreenPresentationSupportQNX, see
26661   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceScreenPresentationSupportQNX.html
26662   template <typename Dispatch>
getScreenPresentationSupportQNX(uint32_t queueFamilyIndex,struct _screen_window * window,Dispatch const & d) const26663   VULKAN_HPP_INLINE Bool32 PhysicalDevice::getScreenPresentationSupportQNX( uint32_t                queueFamilyIndex,
26664                                                                             struct _screen_window * window,
26665                                                                             Dispatch const &        d ) const VULKAN_HPP_NOEXCEPT
26666   {
26667     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26668     return static_cast<Bool32>(
26669       d.vkGetPhysicalDeviceScreenPresentationSupportQNX( static_cast<VkPhysicalDevice>( m_physicalDevice ), queueFamilyIndex, window ) );
26670   }
26671 
26672 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
26673   // wrapper function for command vkGetPhysicalDeviceScreenPresentationSupportQNX, see
26674   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceScreenPresentationSupportQNX.html
26675   template <typename Dispatch>
26676   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Bool32
getScreenPresentationSupportQNX(uint32_t queueFamilyIndex,struct _screen_window & window,Dispatch const & d) const26677     PhysicalDevice::getScreenPresentationSupportQNX( uint32_t queueFamilyIndex, struct _screen_window & window, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
26678   {
26679     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26680 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26681     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceScreenPresentationSupportQNX &&
26682                        "Function <vkGetPhysicalDeviceScreenPresentationSupportQNX> requires <VK_QNX_screen_surface>" );
26683 #    endif
26684 
26685     VkBool32 result = d.vkGetPhysicalDeviceScreenPresentationSupportQNX( m_physicalDevice, queueFamilyIndex, &window );
26686 
26687     return static_cast<VULKAN_HPP_NAMESPACE::Bool32>( result );
26688   }
26689 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
26690 #endif   /*VK_USE_PLATFORM_SCREEN_QNX*/
26691 
26692   //=== VK_EXT_color_write_enable ===
26693 
26694   // wrapper function for command vkCmdSetColorWriteEnableEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetColorWriteEnableEXT.html
26695   template <typename Dispatch>
setColorWriteEnableEXT(uint32_t attachmentCount,const VULKAN_HPP_NAMESPACE::Bool32 * pColorWriteEnables,Dispatch const & d) const26696   VULKAN_HPP_INLINE void CommandBuffer::setColorWriteEnableEXT( uint32_t                             attachmentCount,
26697                                                                 const VULKAN_HPP_NAMESPACE::Bool32 * pColorWriteEnables,
26698                                                                 Dispatch const &                     d ) const VULKAN_HPP_NOEXCEPT
26699   {
26700     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26701     d.vkCmdSetColorWriteEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), attachmentCount, reinterpret_cast<const VkBool32 *>( pColorWriteEnables ) );
26702   }
26703 
26704 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
26705   // wrapper function for command vkCmdSetColorWriteEnableEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetColorWriteEnableEXT.html
26706   template <typename Dispatch>
setColorWriteEnableEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & colorWriteEnables,Dispatch const & d) const26707   VULKAN_HPP_INLINE void CommandBuffer::setColorWriteEnableEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & colorWriteEnables,
26708                                                                 Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
26709   {
26710     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26711 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26712     VULKAN_HPP_ASSERT( d.vkCmdSetColorWriteEnableEXT && "Function <vkCmdSetColorWriteEnableEXT> requires <VK_EXT_color_write_enable>" );
26713 #  endif
26714 
26715     d.vkCmdSetColorWriteEnableEXT( m_commandBuffer, colorWriteEnables.size(), reinterpret_cast<const VkBool32 *>( colorWriteEnables.data() ) );
26716   }
26717 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
26718 
26719   //=== VK_KHR_ray_tracing_maintenance1 ===
26720 
26721   // wrapper function for command vkCmdTraceRaysIndirect2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdTraceRaysIndirect2KHR.html
26722   template <typename Dispatch>
traceRaysIndirect2KHR(VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress,Dispatch const & d) const26723   VULKAN_HPP_INLINE void CommandBuffer::traceRaysIndirect2KHR( VULKAN_HPP_NAMESPACE::DeviceAddress indirectDeviceAddress,
26724                                                                Dispatch const &                    d ) const VULKAN_HPP_NOEXCEPT
26725   {
26726     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26727     d.vkCmdTraceRaysIndirect2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkDeviceAddress>( indirectDeviceAddress ) );
26728   }
26729 
26730   //=== VK_EXT_multi_draw ===
26731 
26732   // wrapper function for command vkCmdDrawMultiEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawMultiEXT.html
26733   template <typename Dispatch>
drawMultiEXT(uint32_t drawCount,const VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT * pVertexInfo,uint32_t instanceCount,uint32_t firstInstance,uint32_t stride,Dispatch const & d) const26734   VULKAN_HPP_INLINE void CommandBuffer::drawMultiEXT( uint32_t                                       drawCount,
26735                                                       const VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT * pVertexInfo,
26736                                                       uint32_t                                       instanceCount,
26737                                                       uint32_t                                       firstInstance,
26738                                                       uint32_t                                       stride,
26739                                                       Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
26740   {
26741     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26742     d.vkCmdDrawMultiEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
26743                          drawCount,
26744                          reinterpret_cast<const VkMultiDrawInfoEXT *>( pVertexInfo ),
26745                          instanceCount,
26746                          firstInstance,
26747                          stride );
26748   }
26749 
26750 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
26751   // wrapper function for command vkCmdDrawMultiEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawMultiEXT.html
26752   template <typename Dispatch>
drawMultiEXT(VULKAN_HPP_NAMESPACE::StridedArrayProxy<const VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT> const & vertexInfo,uint32_t instanceCount,uint32_t firstInstance,Dispatch const & d) const26753   VULKAN_HPP_INLINE void CommandBuffer::drawMultiEXT( VULKAN_HPP_NAMESPACE::StridedArrayProxy<const VULKAN_HPP_NAMESPACE::MultiDrawInfoEXT> const & vertexInfo,
26754                                                       uint32_t         instanceCount,
26755                                                       uint32_t         firstInstance,
26756                                                       Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
26757   {
26758     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26759 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26760     VULKAN_HPP_ASSERT( d.vkCmdDrawMultiEXT && "Function <vkCmdDrawMultiEXT> requires <VK_EXT_multi_draw>" );
26761 #  endif
26762 
26763     d.vkCmdDrawMultiEXT( m_commandBuffer,
26764                          vertexInfo.size(),
26765                          reinterpret_cast<const VkMultiDrawInfoEXT *>( vertexInfo.data() ),
26766                          instanceCount,
26767                          firstInstance,
26768                          vertexInfo.stride() );
26769   }
26770 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
26771 
26772   // wrapper function for command vkCmdDrawMultiIndexedEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawMultiIndexedEXT.html
26773   template <typename Dispatch>
drawMultiIndexedEXT(uint32_t drawCount,const VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT * pIndexInfo,uint32_t instanceCount,uint32_t firstInstance,uint32_t stride,const int32_t * pVertexOffset,Dispatch const & d) const26774   VULKAN_HPP_INLINE void CommandBuffer::drawMultiIndexedEXT( uint32_t                                              drawCount,
26775                                                              const VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT * pIndexInfo,
26776                                                              uint32_t                                              instanceCount,
26777                                                              uint32_t                                              firstInstance,
26778                                                              uint32_t                                              stride,
26779                                                              const int32_t *                                       pVertexOffset,
26780                                                              Dispatch const &                                      d ) const VULKAN_HPP_NOEXCEPT
26781   {
26782     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26783     d.vkCmdDrawMultiIndexedEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
26784                                 drawCount,
26785                                 reinterpret_cast<const VkMultiDrawIndexedInfoEXT *>( pIndexInfo ),
26786                                 instanceCount,
26787                                 firstInstance,
26788                                 stride,
26789                                 pVertexOffset );
26790   }
26791 
26792 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
26793   // wrapper function for command vkCmdDrawMultiIndexedEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawMultiIndexedEXT.html
26794   template <typename Dispatch>
26795   VULKAN_HPP_INLINE void
drawMultiIndexedEXT(VULKAN_HPP_NAMESPACE::StridedArrayProxy<const VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT> const & indexInfo,uint32_t instanceCount,uint32_t firstInstance,Optional<const int32_t> vertexOffset,Dispatch const & d) const26796     CommandBuffer::drawMultiIndexedEXT( VULKAN_HPP_NAMESPACE::StridedArrayProxy<const VULKAN_HPP_NAMESPACE::MultiDrawIndexedInfoEXT> const & indexInfo,
26797                                         uint32_t                                                                                             instanceCount,
26798                                         uint32_t                                                                                             firstInstance,
26799                                         Optional<const int32_t>                                                                              vertexOffset,
26800                                         Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
26801   {
26802     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26803 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26804     VULKAN_HPP_ASSERT( d.vkCmdDrawMultiIndexedEXT && "Function <vkCmdDrawMultiIndexedEXT> requires <VK_EXT_multi_draw>" );
26805 #  endif
26806 
26807     d.vkCmdDrawMultiIndexedEXT( m_commandBuffer,
26808                                 indexInfo.size(),
26809                                 reinterpret_cast<const VkMultiDrawIndexedInfoEXT *>( indexInfo.data() ),
26810                                 instanceCount,
26811                                 firstInstance,
26812                                 indexInfo.stride(),
26813                                 static_cast<const int32_t *>( vertexOffset ) );
26814   }
26815 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
26816 
26817   //=== VK_EXT_opacity_micromap ===
26818 
26819   // wrapper function for command vkCreateMicromapEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateMicromapEXT.html
26820   template <typename Dispatch>
createMicromapEXT(const VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::MicromapEXT * pMicromap,Dispatch const & d) const26821   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createMicromapEXT( const VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT * pCreateInfo,
26822                                                                            const VULKAN_HPP_NAMESPACE::AllocationCallbacks *   pAllocator,
26823                                                                            VULKAN_HPP_NAMESPACE::MicromapEXT *                 pMicromap,
26824                                                                            Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
26825   {
26826     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26827     return static_cast<Result>( d.vkCreateMicromapEXT( static_cast<VkDevice>( m_device ),
26828                                                        reinterpret_cast<const VkMicromapCreateInfoEXT *>( pCreateInfo ),
26829                                                        reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
26830                                                        reinterpret_cast<VkMicromapEXT *>( pMicromap ) ) );
26831   }
26832 
26833 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
26834   // wrapper function for command vkCreateMicromapEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateMicromapEXT.html
26835   template <typename Dispatch>
26836   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::MicromapEXT>::type
createMicromapEXT(const VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const26837                        Device::createMicromapEXT( const VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT &       createInfo,
26838                                Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
26839                                Dispatch const &                                          d ) const
26840   {
26841     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26842 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26843     VULKAN_HPP_ASSERT( d.vkCreateMicromapEXT && "Function <vkCreateMicromapEXT> requires <VK_EXT_opacity_micromap>" );
26844 #  endif
26845 
26846     VULKAN_HPP_NAMESPACE::MicromapEXT micromap;
26847     VULKAN_HPP_NAMESPACE::Result      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
26848       d.vkCreateMicromapEXT( m_device,
26849                              reinterpret_cast<const VkMicromapCreateInfoEXT *>( &createInfo ),
26850                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
26851                              reinterpret_cast<VkMicromapEXT *>( &micromap ) ) );
26852     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createMicromapEXT" );
26853 
26854     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( micromap ) );
26855   }
26856 
26857 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
26858   // wrapper function for command vkCreateMicromapEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateMicromapEXT.html
26859   template <typename Dispatch>
26860   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::MicromapEXT, Dispatch>>::type
createMicromapEXTUnique(const VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const26861                        Device::createMicromapEXTUnique( const VULKAN_HPP_NAMESPACE::MicromapCreateInfoEXT &       createInfo,
26862                                      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
26863                                      Dispatch const &                                          d ) const
26864   {
26865     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26866 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26867     VULKAN_HPP_ASSERT( d.vkCreateMicromapEXT && "Function <vkCreateMicromapEXT> requires <VK_EXT_opacity_micromap>" );
26868 #    endif
26869 
26870     VULKAN_HPP_NAMESPACE::MicromapEXT micromap;
26871     VULKAN_HPP_NAMESPACE::Result      result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
26872       d.vkCreateMicromapEXT( m_device,
26873                              reinterpret_cast<const VkMicromapCreateInfoEXT *>( &createInfo ),
26874                              reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
26875                              reinterpret_cast<VkMicromapEXT *>( &micromap ) ) );
26876     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createMicromapEXTUnique" );
26877 
26878     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
26879       result, UniqueHandle<VULKAN_HPP_NAMESPACE::MicromapEXT, Dispatch>( micromap, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
26880   }
26881 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
26882 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
26883 
26884   // wrapper function for command vkDestroyMicromapEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyMicromapEXT.html
26885   template <typename Dispatch>
destroyMicromapEXT(VULKAN_HPP_NAMESPACE::MicromapEXT micromap,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const26886   VULKAN_HPP_INLINE void Device::destroyMicromapEXT( VULKAN_HPP_NAMESPACE::MicromapEXT                 micromap,
26887                                                      const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
26888                                                      Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
26889   {
26890     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26891     d.vkDestroyMicromapEXT(
26892       static_cast<VkDevice>( m_device ), static_cast<VkMicromapEXT>( micromap ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
26893   }
26894 
26895 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
26896   // wrapper function for command vkDestroyMicromapEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyMicromapEXT.html
26897   template <typename Dispatch>
destroyMicromapEXT(VULKAN_HPP_NAMESPACE::MicromapEXT micromap,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const26898   VULKAN_HPP_INLINE void Device::destroyMicromapEXT( VULKAN_HPP_NAMESPACE::MicromapEXT                         micromap,
26899                                                      Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
26900                                                      Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
26901   {
26902     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26903 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26904     VULKAN_HPP_ASSERT( d.vkDestroyMicromapEXT && "Function <vkDestroyMicromapEXT> requires <VK_EXT_opacity_micromap>" );
26905 #  endif
26906 
26907     d.vkDestroyMicromapEXT( m_device,
26908                             static_cast<VkMicromapEXT>( micromap ),
26909                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
26910   }
26911 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
26912 
26913   // wrapper function for command vkDestroyMicromapEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyMicromapEXT.html
26914   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::MicromapEXT micromap,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const26915   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::MicromapEXT                 micromap,
26916                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
26917                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
26918   {
26919     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26920     d.vkDestroyMicromapEXT(
26921       static_cast<VkDevice>( m_device ), static_cast<VkMicromapEXT>( micromap ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
26922   }
26923 
26924 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
26925   // wrapper function for command vkDestroyMicromapEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyMicromapEXT.html
26926   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::MicromapEXT micromap,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const26927   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::MicromapEXT                         micromap,
26928                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
26929                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
26930   {
26931     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26932 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26933     VULKAN_HPP_ASSERT( d.vkDestroyMicromapEXT && "Function <vkDestroyMicromapEXT> requires <VK_EXT_opacity_micromap>" );
26934 #  endif
26935 
26936     d.vkDestroyMicromapEXT( m_device,
26937                             static_cast<VkMicromapEXT>( micromap ),
26938                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
26939   }
26940 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
26941 
26942   // wrapper function for command vkCmdBuildMicromapsEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBuildMicromapsEXT.html
26943   template <typename Dispatch>
buildMicromapsEXT(uint32_t infoCount,const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT * pInfos,Dispatch const & d) const26944   VULKAN_HPP_INLINE void CommandBuffer::buildMicromapsEXT( uint32_t                                           infoCount,
26945                                                            const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT * pInfos,
26946                                                            Dispatch const &                                   d ) const VULKAN_HPP_NOEXCEPT
26947   {
26948     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26949     d.vkCmdBuildMicromapsEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), infoCount, reinterpret_cast<const VkMicromapBuildInfoEXT *>( pInfos ) );
26950   }
26951 
26952 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
26953   // wrapper function for command vkCmdBuildMicromapsEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBuildMicromapsEXT.html
26954   template <typename Dispatch>
buildMicromapsEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT> const & infos,Dispatch const & d) const26955   VULKAN_HPP_INLINE void CommandBuffer::buildMicromapsEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT> const & infos,
26956                                                            Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
26957   {
26958     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26959 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26960     VULKAN_HPP_ASSERT( d.vkCmdBuildMicromapsEXT && "Function <vkCmdBuildMicromapsEXT> requires <VK_EXT_opacity_micromap>" );
26961 #  endif
26962 
26963     d.vkCmdBuildMicromapsEXT( m_commandBuffer, infos.size(), reinterpret_cast<const VkMicromapBuildInfoEXT *>( infos.data() ) );
26964   }
26965 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
26966 
26967   // wrapper function for command vkBuildMicromapsEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBuildMicromapsEXT.html
26968   template <typename Dispatch>
buildMicromapsEXT(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,uint32_t infoCount,const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT * pInfos,Dispatch const & d) const26969   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::buildMicromapsEXT( VULKAN_HPP_NAMESPACE::DeferredOperationKHR         deferredOperation,
26970                                                                            uint32_t                                           infoCount,
26971                                                                            const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT * pInfos,
26972                                                                            Dispatch const &                                   d ) const VULKAN_HPP_NOEXCEPT
26973   {
26974     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26975     return static_cast<Result>( d.vkBuildMicromapsEXT( static_cast<VkDevice>( m_device ),
26976                                                        static_cast<VkDeferredOperationKHR>( deferredOperation ),
26977                                                        infoCount,
26978                                                        reinterpret_cast<const VkMicromapBuildInfoEXT *>( pInfos ) ) );
26979   }
26980 
26981 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
26982   // wrapper function for command vkBuildMicromapsEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkBuildMicromapsEXT.html
26983   template <typename Dispatch>
26984   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result
buildMicromapsEXT(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT> const & infos,Dispatch const & d) const26985                                          Device::buildMicromapsEXT( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                                                 deferredOperation,
26986                                VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT> const & infos,
26987                                Dispatch const &                                                                           d ) const
26988   {
26989     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
26990 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
26991     VULKAN_HPP_ASSERT( d.vkBuildMicromapsEXT && "Function <vkBuildMicromapsEXT> requires <VK_EXT_opacity_micromap>" );
26992 #  endif
26993 
26994     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkBuildMicromapsEXT(
26995       m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), infos.size(), reinterpret_cast<const VkMicromapBuildInfoEXT *>( infos.data() ) ) );
26996     VULKAN_HPP_NAMESPACE::detail::resultCheck(
26997       result,
26998       VULKAN_HPP_NAMESPACE_STRING "::Device::buildMicromapsEXT",
26999       { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
27000 
27001     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
27002   }
27003 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
27004 
27005   // wrapper function for command vkCopyMicromapEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyMicromapEXT.html
27006   template <typename Dispatch>
copyMicromapEXT(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT * pInfo,Dispatch const & d) const27007   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyMicromapEXT( VULKAN_HPP_NAMESPACE::DeferredOperationKHR        deferredOperation,
27008                                                                          const VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT * pInfo,
27009                                                                          Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
27010   {
27011     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27012     return static_cast<Result>( d.vkCopyMicromapEXT(
27013       static_cast<VkDevice>( m_device ), static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyMicromapInfoEXT *>( pInfo ) ) );
27014   }
27015 
27016 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
27017   // wrapper function for command vkCopyMicromapEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyMicromapEXT.html
27018   template <typename Dispatch>
copyMicromapEXT(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT & info,Dispatch const & d) const27019   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::copyMicromapEXT( VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,
27020                                                                                                const VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT & info,
27021                                                                                                Dispatch const &                                  d ) const
27022   {
27023     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27024 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27025     VULKAN_HPP_ASSERT( d.vkCopyMicromapEXT && "Function <vkCopyMicromapEXT> requires <VK_EXT_opacity_micromap>" );
27026 #  endif
27027 
27028     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
27029       d.vkCopyMicromapEXT( m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyMicromapInfoEXT *>( &info ) ) );
27030     VULKAN_HPP_NAMESPACE::detail::resultCheck(
27031       result,
27032       VULKAN_HPP_NAMESPACE_STRING "::Device::copyMicromapEXT",
27033       { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
27034 
27035     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
27036   }
27037 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
27038 
27039   // wrapper function for command vkCopyMicromapToMemoryEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyMicromapToMemoryEXT.html
27040   template <typename Dispatch>
copyMicromapToMemoryEXT(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT * pInfo,Dispatch const & d) const27041   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyMicromapToMemoryEXT( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                deferredOperation,
27042                                                                                  const VULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT * pInfo,
27043                                                                                  Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
27044   {
27045     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27046     return static_cast<Result>( d.vkCopyMicromapToMemoryEXT( static_cast<VkDevice>( m_device ),
27047                                                              static_cast<VkDeferredOperationKHR>( deferredOperation ),
27048                                                              reinterpret_cast<const VkCopyMicromapToMemoryInfoEXT *>( pInfo ) ) );
27049   }
27050 
27051 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
27052   // wrapper function for command vkCopyMicromapToMemoryEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyMicromapToMemoryEXT.html
27053   template <typename Dispatch>
copyMicromapToMemoryEXT(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT & info,Dispatch const & d) const27054   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::copyMicromapToMemoryEXT(
27055     VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const VULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT & info, Dispatch const & d ) const
27056   {
27057     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27058 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27059     VULKAN_HPP_ASSERT( d.vkCopyMicromapToMemoryEXT && "Function <vkCopyMicromapToMemoryEXT> requires <VK_EXT_opacity_micromap>" );
27060 #  endif
27061 
27062     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCopyMicromapToMemoryEXT(
27063       m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyMicromapToMemoryInfoEXT *>( &info ) ) );
27064     VULKAN_HPP_NAMESPACE::detail::resultCheck(
27065       result,
27066       VULKAN_HPP_NAMESPACE_STRING "::Device::copyMicromapToMemoryEXT",
27067       { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
27068 
27069     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
27070   }
27071 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
27072 
27073   // wrapper function for command vkCopyMemoryToMicromapEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyMemoryToMicromapEXT.html
27074   template <typename Dispatch>
copyMemoryToMicromapEXT(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT * pInfo,Dispatch const & d) const27075   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::copyMemoryToMicromapEXT( VULKAN_HPP_NAMESPACE::DeferredOperationKHR                deferredOperation,
27076                                                                                  const VULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT * pInfo,
27077                                                                                  Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
27078   {
27079     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27080     return static_cast<Result>( d.vkCopyMemoryToMicromapEXT( static_cast<VkDevice>( m_device ),
27081                                                              static_cast<VkDeferredOperationKHR>( deferredOperation ),
27082                                                              reinterpret_cast<const VkCopyMemoryToMicromapInfoEXT *>( pInfo ) ) );
27083   }
27084 
27085 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
27086   // wrapper function for command vkCopyMemoryToMicromapEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCopyMemoryToMicromapEXT.html
27087   template <typename Dispatch>
copyMemoryToMicromapEXT(VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation,const VULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT & info,Dispatch const & d) const27088   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result Device::copyMemoryToMicromapEXT(
27089     VULKAN_HPP_NAMESPACE::DeferredOperationKHR deferredOperation, const VULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT & info, Dispatch const & d ) const
27090   {
27091     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27092 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27093     VULKAN_HPP_ASSERT( d.vkCopyMemoryToMicromapEXT && "Function <vkCopyMemoryToMicromapEXT> requires <VK_EXT_opacity_micromap>" );
27094 #  endif
27095 
27096     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCopyMemoryToMicromapEXT(
27097       m_device, static_cast<VkDeferredOperationKHR>( deferredOperation ), reinterpret_cast<const VkCopyMemoryToMicromapInfoEXT *>( &info ) ) );
27098     VULKAN_HPP_NAMESPACE::detail::resultCheck(
27099       result,
27100       VULKAN_HPP_NAMESPACE_STRING "::Device::copyMemoryToMicromapEXT",
27101       { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eOperationDeferredKHR, VULKAN_HPP_NAMESPACE::Result::eOperationNotDeferredKHR } );
27102 
27103     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
27104   }
27105 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
27106 
27107   // wrapper function for command vkWriteMicromapsPropertiesEXT, see
27108   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkWriteMicromapsPropertiesEXT.html
27109   template <typename Dispatch>
writeMicromapsPropertiesEXT(uint32_t micromapCount,const VULKAN_HPP_NAMESPACE::MicromapEXT * pMicromaps,VULKAN_HPP_NAMESPACE::QueryType queryType,size_t dataSize,void * pData,size_t stride,Dispatch const & d) const27110   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::writeMicromapsPropertiesEXT( uint32_t                                  micromapCount,
27111                                                                                      const VULKAN_HPP_NAMESPACE::MicromapEXT * pMicromaps,
27112                                                                                      VULKAN_HPP_NAMESPACE::QueryType           queryType,
27113                                                                                      size_t                                    dataSize,
27114                                                                                      void *                                    pData,
27115                                                                                      size_t                                    stride,
27116                                                                                      Dispatch const &                          d ) const VULKAN_HPP_NOEXCEPT
27117   {
27118     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27119     return static_cast<Result>( d.vkWriteMicromapsPropertiesEXT( static_cast<VkDevice>( m_device ),
27120                                                                  micromapCount,
27121                                                                  reinterpret_cast<const VkMicromapEXT *>( pMicromaps ),
27122                                                                  static_cast<VkQueryType>( queryType ),
27123                                                                  dataSize,
27124                                                                  pData,
27125                                                                  stride ) );
27126   }
27127 
27128 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
27129   // wrapper function for command vkWriteMicromapsPropertiesEXT, see
27130   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkWriteMicromapsPropertiesEXT.html
27131   template <typename DataType,
27132             typename DataTypeAllocator,
27133             typename Dispatch,
27134             typename std::enable_if<std::is_same<typename DataTypeAllocator::value_type, DataType>::value, int>::type>
27135   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<DataType, DataTypeAllocator>>::type
writeMicromapsPropertiesEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapEXT> const & micromaps,VULKAN_HPP_NAMESPACE::QueryType queryType,size_t dataSize,size_t stride,Dispatch const & d) const27136                        Device::writeMicromapsPropertiesEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapEXT> const & micromaps,
27137                                          VULKAN_HPP_NAMESPACE::QueryType                                                   queryType,
27138                                          size_t                                                                            dataSize,
27139                                          size_t                                                                            stride,
27140                                          Dispatch const &                                                                  d ) const
27141   {
27142     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27143 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27144     VULKAN_HPP_ASSERT( d.vkWriteMicromapsPropertiesEXT && "Function <vkWriteMicromapsPropertiesEXT> requires <VK_EXT_opacity_micromap>" );
27145 #  endif
27146 
27147     VULKAN_HPP_ASSERT( dataSize % sizeof( DataType ) == 0 );
27148     std::vector<DataType, DataTypeAllocator> data( dataSize / sizeof( DataType ) );
27149     VULKAN_HPP_NAMESPACE::Result             result =
27150       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkWriteMicromapsPropertiesEXT( m_device,
27151                                                                                   micromaps.size(),
27152                                                                                   reinterpret_cast<const VkMicromapEXT *>( micromaps.data() ),
27153                                                                                   static_cast<VkQueryType>( queryType ),
27154                                                                                   data.size() * sizeof( DataType ),
27155                                                                                   reinterpret_cast<void *>( data.data() ),
27156                                                                                   stride ) );
27157     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeMicromapsPropertiesEXT" );
27158 
27159     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) );
27160   }
27161 
27162   // wrapper function for command vkWriteMicromapsPropertiesEXT, see
27163   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkWriteMicromapsPropertiesEXT.html
27164   template <typename DataType, typename Dispatch>
27165   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<DataType>::type
writeMicromapsPropertyEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapEXT> const & micromaps,VULKAN_HPP_NAMESPACE::QueryType queryType,size_t stride,Dispatch const & d) const27166                        Device::writeMicromapsPropertyEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapEXT> const & micromaps,
27167                                        VULKAN_HPP_NAMESPACE::QueryType                                                   queryType,
27168                                        size_t                                                                            stride,
27169                                        Dispatch const &                                                                  d ) const
27170   {
27171     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27172 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27173     VULKAN_HPP_ASSERT( d.vkWriteMicromapsPropertiesEXT && "Function <vkWriteMicromapsPropertiesEXT> requires <VK_EXT_opacity_micromap>" );
27174 #  endif
27175 
27176     DataType                     data;
27177     VULKAN_HPP_NAMESPACE::Result result =
27178       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkWriteMicromapsPropertiesEXT( m_device,
27179                                                                                   micromaps.size(),
27180                                                                                   reinterpret_cast<const VkMicromapEXT *>( micromaps.data() ),
27181                                                                                   static_cast<VkQueryType>( queryType ),
27182                                                                                   sizeof( DataType ),
27183                                                                                   reinterpret_cast<void *>( &data ),
27184                                                                                   stride ) );
27185     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::writeMicromapsPropertyEXT" );
27186 
27187     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) );
27188   }
27189 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
27190 
27191   // wrapper function for command vkCmdCopyMicromapEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMicromapEXT.html
27192   template <typename Dispatch>
copyMicromapEXT(const VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT * pInfo,Dispatch const & d) const27193   VULKAN_HPP_INLINE void CommandBuffer::copyMicromapEXT( const VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT * pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
27194   {
27195     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27196     d.vkCmdCopyMicromapEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCopyMicromapInfoEXT *>( pInfo ) );
27197   }
27198 
27199 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
27200   // wrapper function for command vkCmdCopyMicromapEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMicromapEXT.html
27201   template <typename Dispatch>
copyMicromapEXT(const VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT & info,Dispatch const & d) const27202   VULKAN_HPP_INLINE void CommandBuffer::copyMicromapEXT( const VULKAN_HPP_NAMESPACE::CopyMicromapInfoEXT & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
27203   {
27204     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27205 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27206     VULKAN_HPP_ASSERT( d.vkCmdCopyMicromapEXT && "Function <vkCmdCopyMicromapEXT> requires <VK_EXT_opacity_micromap>" );
27207 #  endif
27208 
27209     d.vkCmdCopyMicromapEXT( m_commandBuffer, reinterpret_cast<const VkCopyMicromapInfoEXT *>( &info ) );
27210   }
27211 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
27212 
27213   // wrapper function for command vkCmdCopyMicromapToMemoryEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMicromapToMemoryEXT.html
27214   template <typename Dispatch>
copyMicromapToMemoryEXT(const VULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT * pInfo,Dispatch const & d) const27215   VULKAN_HPP_INLINE void CommandBuffer::copyMicromapToMemoryEXT( const VULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT * pInfo,
27216                                                                  Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
27217   {
27218     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27219     d.vkCmdCopyMicromapToMemoryEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCopyMicromapToMemoryInfoEXT *>( pInfo ) );
27220   }
27221 
27222 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
27223   // wrapper function for command vkCmdCopyMicromapToMemoryEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMicromapToMemoryEXT.html
27224   template <typename Dispatch>
copyMicromapToMemoryEXT(const VULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT & info,Dispatch const & d) const27225   VULKAN_HPP_INLINE void CommandBuffer::copyMicromapToMemoryEXT( const VULKAN_HPP_NAMESPACE::CopyMicromapToMemoryInfoEXT & info,
27226                                                                  Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
27227   {
27228     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27229 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27230     VULKAN_HPP_ASSERT( d.vkCmdCopyMicromapToMemoryEXT && "Function <vkCmdCopyMicromapToMemoryEXT> requires <VK_EXT_opacity_micromap>" );
27231 #  endif
27232 
27233     d.vkCmdCopyMicromapToMemoryEXT( m_commandBuffer, reinterpret_cast<const VkCopyMicromapToMemoryInfoEXT *>( &info ) );
27234   }
27235 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
27236 
27237   // wrapper function for command vkCmdCopyMemoryToMicromapEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryToMicromapEXT.html
27238   template <typename Dispatch>
copyMemoryToMicromapEXT(const VULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT * pInfo,Dispatch const & d) const27239   VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToMicromapEXT( const VULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT * pInfo,
27240                                                                  Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
27241   {
27242     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27243     d.vkCmdCopyMemoryToMicromapEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkCopyMemoryToMicromapInfoEXT *>( pInfo ) );
27244   }
27245 
27246 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
27247   // wrapper function for command vkCmdCopyMemoryToMicromapEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryToMicromapEXT.html
27248   template <typename Dispatch>
copyMemoryToMicromapEXT(const VULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT & info,Dispatch const & d) const27249   VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToMicromapEXT( const VULKAN_HPP_NAMESPACE::CopyMemoryToMicromapInfoEXT & info,
27250                                                                  Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
27251   {
27252     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27253 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27254     VULKAN_HPP_ASSERT( d.vkCmdCopyMemoryToMicromapEXT && "Function <vkCmdCopyMemoryToMicromapEXT> requires <VK_EXT_opacity_micromap>" );
27255 #  endif
27256 
27257     d.vkCmdCopyMemoryToMicromapEXT( m_commandBuffer, reinterpret_cast<const VkCopyMemoryToMicromapInfoEXT *>( &info ) );
27258   }
27259 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
27260 
27261   // wrapper function for command vkCmdWriteMicromapsPropertiesEXT, see
27262   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWriteMicromapsPropertiesEXT.html
27263   template <typename Dispatch>
writeMicromapsPropertiesEXT(uint32_t micromapCount,const VULKAN_HPP_NAMESPACE::MicromapEXT * pMicromaps,VULKAN_HPP_NAMESPACE::QueryType queryType,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,Dispatch const & d) const27264   VULKAN_HPP_INLINE void CommandBuffer::writeMicromapsPropertiesEXT( uint32_t                                  micromapCount,
27265                                                                      const VULKAN_HPP_NAMESPACE::MicromapEXT * pMicromaps,
27266                                                                      VULKAN_HPP_NAMESPACE::QueryType           queryType,
27267                                                                      VULKAN_HPP_NAMESPACE::QueryPool           queryPool,
27268                                                                      uint32_t                                  firstQuery,
27269                                                                      Dispatch const &                          d ) const VULKAN_HPP_NOEXCEPT
27270   {
27271     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27272     d.vkCmdWriteMicromapsPropertiesEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
27273                                         micromapCount,
27274                                         reinterpret_cast<const VkMicromapEXT *>( pMicromaps ),
27275                                         static_cast<VkQueryType>( queryType ),
27276                                         static_cast<VkQueryPool>( queryPool ),
27277                                         firstQuery );
27278   }
27279 
27280 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
27281   // wrapper function for command vkCmdWriteMicromapsPropertiesEXT, see
27282   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdWriteMicromapsPropertiesEXT.html
27283   template <typename Dispatch>
27284   VULKAN_HPP_INLINE void
writeMicromapsPropertiesEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapEXT> const & micromaps,VULKAN_HPP_NAMESPACE::QueryType queryType,VULKAN_HPP_NAMESPACE::QueryPool queryPool,uint32_t firstQuery,Dispatch const & d) const27285     CommandBuffer::writeMicromapsPropertiesEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::MicromapEXT> const & micromaps,
27286                                                 VULKAN_HPP_NAMESPACE::QueryType                                                   queryType,
27287                                                 VULKAN_HPP_NAMESPACE::QueryPool                                                   queryPool,
27288                                                 uint32_t                                                                          firstQuery,
27289                                                 Dispatch const &                                                                  d ) const VULKAN_HPP_NOEXCEPT
27290   {
27291     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27292 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27293     VULKAN_HPP_ASSERT( d.vkCmdWriteMicromapsPropertiesEXT && "Function <vkCmdWriteMicromapsPropertiesEXT> requires <VK_EXT_opacity_micromap>" );
27294 #  endif
27295 
27296     d.vkCmdWriteMicromapsPropertiesEXT( m_commandBuffer,
27297                                         micromaps.size(),
27298                                         reinterpret_cast<const VkMicromapEXT *>( micromaps.data() ),
27299                                         static_cast<VkQueryType>( queryType ),
27300                                         static_cast<VkQueryPool>( queryPool ),
27301                                         firstQuery );
27302   }
27303 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
27304 
27305   // wrapper function for command vkGetDeviceMicromapCompatibilityEXT, see
27306   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceMicromapCompatibilityEXT.html
27307   template <typename Dispatch>
getMicromapCompatibilityEXT(const VULKAN_HPP_NAMESPACE::MicromapVersionInfoEXT * pVersionInfo,VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR * pCompatibility,Dispatch const & d) const27308   VULKAN_HPP_INLINE void Device::getMicromapCompatibilityEXT( const VULKAN_HPP_NAMESPACE::MicromapVersionInfoEXT *          pVersionInfo,
27309                                                               VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR * pCompatibility,
27310                                                               Dispatch const &                                              d ) const VULKAN_HPP_NOEXCEPT
27311   {
27312     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27313     d.vkGetDeviceMicromapCompatibilityEXT( static_cast<VkDevice>( m_device ),
27314                                            reinterpret_cast<const VkMicromapVersionInfoEXT *>( pVersionInfo ),
27315                                            reinterpret_cast<VkAccelerationStructureCompatibilityKHR *>( pCompatibility ) );
27316   }
27317 
27318 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
27319   // wrapper function for command vkGetDeviceMicromapCompatibilityEXT, see
27320   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceMicromapCompatibilityEXT.html
27321   template <typename Dispatch>
27322   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR
getMicromapCompatibilityEXT(const VULKAN_HPP_NAMESPACE::MicromapVersionInfoEXT & versionInfo,Dispatch const & d) const27323     Device::getMicromapCompatibilityEXT( const VULKAN_HPP_NAMESPACE::MicromapVersionInfoEXT & versionInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
27324   {
27325     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27326 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27327     VULKAN_HPP_ASSERT( d.vkGetDeviceMicromapCompatibilityEXT && "Function <vkGetDeviceMicromapCompatibilityEXT> requires <VK_EXT_opacity_micromap>" );
27328 #  endif
27329 
27330     VULKAN_HPP_NAMESPACE::AccelerationStructureCompatibilityKHR compatibility;
27331     d.vkGetDeviceMicromapCompatibilityEXT( m_device,
27332                                            reinterpret_cast<const VkMicromapVersionInfoEXT *>( &versionInfo ),
27333                                            reinterpret_cast<VkAccelerationStructureCompatibilityKHR *>( &compatibility ) );
27334 
27335     return compatibility;
27336   }
27337 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
27338 
27339   // wrapper function for command vkGetMicromapBuildSizesEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMicromapBuildSizesEXT.html
27340   template <typename Dispatch>
getMicromapBuildSizesEXT(VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType,const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT * pBuildInfo,VULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT * pSizeInfo,Dispatch const & d) const27341   VULKAN_HPP_INLINE void Device::getMicromapBuildSizesEXT( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType,
27342                                                            const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT *      pBuildInfo,
27343                                                            VULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT *       pSizeInfo,
27344                                                            Dispatch const &                                        d ) const VULKAN_HPP_NOEXCEPT
27345   {
27346     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27347     d.vkGetMicromapBuildSizesEXT( static_cast<VkDevice>( m_device ),
27348                                   static_cast<VkAccelerationStructureBuildTypeKHR>( buildType ),
27349                                   reinterpret_cast<const VkMicromapBuildInfoEXT *>( pBuildInfo ),
27350                                   reinterpret_cast<VkMicromapBuildSizesInfoEXT *>( pSizeInfo ) );
27351   }
27352 
27353 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
27354   // wrapper function for command vkGetMicromapBuildSizesEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMicromapBuildSizesEXT.html
27355   template <typename Dispatch>
27356   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT
getMicromapBuildSizesEXT(VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType,const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT & buildInfo,Dispatch const & d) const27357                                          Device::getMicromapBuildSizesEXT( VULKAN_HPP_NAMESPACE::AccelerationStructureBuildTypeKHR buildType,
27358                                       const VULKAN_HPP_NAMESPACE::MicromapBuildInfoEXT &      buildInfo,
27359                                       Dispatch const &                                        d ) const VULKAN_HPP_NOEXCEPT
27360   {
27361     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27362 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27363     VULKAN_HPP_ASSERT( d.vkGetMicromapBuildSizesEXT && "Function <vkGetMicromapBuildSizesEXT> requires <VK_EXT_opacity_micromap>" );
27364 #  endif
27365 
27366     VULKAN_HPP_NAMESPACE::MicromapBuildSizesInfoEXT sizeInfo;
27367     d.vkGetMicromapBuildSizesEXT( m_device,
27368                                   static_cast<VkAccelerationStructureBuildTypeKHR>( buildType ),
27369                                   reinterpret_cast<const VkMicromapBuildInfoEXT *>( &buildInfo ),
27370                                   reinterpret_cast<VkMicromapBuildSizesInfoEXT *>( &sizeInfo ) );
27371 
27372     return sizeInfo;
27373   }
27374 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
27375 
27376   //=== VK_HUAWEI_cluster_culling_shader ===
27377 
27378   // wrapper function for command vkCmdDrawClusterHUAWEI, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawClusterHUAWEI.html
27379   template <typename Dispatch>
27380   VULKAN_HPP_INLINE void
drawClusterHUAWEI(uint32_t groupCountX,uint32_t groupCountY,uint32_t groupCountZ,Dispatch const & d) const27381     CommandBuffer::drawClusterHUAWEI( uint32_t groupCountX, uint32_t groupCountY, uint32_t groupCountZ, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
27382   {
27383     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27384     d.vkCmdDrawClusterHUAWEI( static_cast<VkCommandBuffer>( m_commandBuffer ), groupCountX, groupCountY, groupCountZ );
27385   }
27386 
27387   // wrapper function for command vkCmdDrawClusterIndirectHUAWEI, see
27388   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDrawClusterIndirectHUAWEI.html
27389   template <typename Dispatch>
drawClusterIndirectHUAWEI(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,Dispatch const & d) const27390   VULKAN_HPP_INLINE void CommandBuffer::drawClusterIndirectHUAWEI( VULKAN_HPP_NAMESPACE::Buffer     buffer,
27391                                                                    VULKAN_HPP_NAMESPACE::DeviceSize offset,
27392                                                                    Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
27393   {
27394     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27395     d.vkCmdDrawClusterIndirectHUAWEI( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBuffer>( buffer ), static_cast<VkDeviceSize>( offset ) );
27396   }
27397 
27398   //=== VK_EXT_pageable_device_local_memory ===
27399 
27400   // wrapper function for command vkSetDeviceMemoryPriorityEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetDeviceMemoryPriorityEXT.html
27401   template <typename Dispatch>
setMemoryPriorityEXT(VULKAN_HPP_NAMESPACE::DeviceMemory memory,float priority,Dispatch const & d) const27402   VULKAN_HPP_INLINE void Device::setMemoryPriorityEXT( VULKAN_HPP_NAMESPACE::DeviceMemory memory, float priority, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
27403   {
27404     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27405     d.vkSetDeviceMemoryPriorityEXT( static_cast<VkDevice>( m_device ), static_cast<VkDeviceMemory>( memory ), priority );
27406   }
27407 
27408   //=== VK_KHR_maintenance4 ===
27409 
27410   // wrapper function for command vkGetDeviceBufferMemoryRequirementsKHR, see
27411   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceBufferMemoryRequirementsKHR.html
27412   template <typename Dispatch>
getBufferMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const27413   VULKAN_HPP_INLINE void Device::getBufferMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements * pInfo,
27414                                                                  VULKAN_HPP_NAMESPACE::MemoryRequirements2 *                  pMemoryRequirements,
27415                                                                  Dispatch const &                                             d ) const VULKAN_HPP_NOEXCEPT
27416   {
27417     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27418     d.vkGetDeviceBufferMemoryRequirementsKHR( static_cast<VkDevice>( m_device ),
27419                                               reinterpret_cast<const VkDeviceBufferMemoryRequirements *>( pInfo ),
27420                                               reinterpret_cast<VkMemoryRequirements2 *>( pMemoryRequirements ) );
27421   }
27422 
27423 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
27424   // wrapper function for command vkGetDeviceBufferMemoryRequirementsKHR, see
27425   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceBufferMemoryRequirementsKHR.html
27426   template <typename Dispatch>
27427   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
getBufferMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info,Dispatch const & d) const27428     Device::getBufferMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
27429   {
27430     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27431 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27432     VULKAN_HPP_ASSERT( d.vkGetDeviceBufferMemoryRequirementsKHR &&
27433                        "Function <vkGetDeviceBufferMemoryRequirementsKHR> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" );
27434 #  endif
27435 
27436     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
27437     d.vkGetDeviceBufferMemoryRequirementsKHR(
27438       m_device, reinterpret_cast<const VkDeviceBufferMemoryRequirements *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
27439 
27440     return memoryRequirements;
27441   }
27442 
27443   // wrapper function for command vkGetDeviceBufferMemoryRequirementsKHR, see
27444   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceBufferMemoryRequirementsKHR.html
27445   template <typename X, typename Y, typename... Z, typename Dispatch>
27446   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getBufferMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info,Dispatch const & d) const27447     Device::getBufferMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceBufferMemoryRequirements & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
27448   {
27449     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27450 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27451     VULKAN_HPP_ASSERT( d.vkGetDeviceBufferMemoryRequirementsKHR &&
27452                        "Function <vkGetDeviceBufferMemoryRequirementsKHR> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" );
27453 #  endif
27454 
27455     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
27456     VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
27457     d.vkGetDeviceBufferMemoryRequirementsKHR(
27458       m_device, reinterpret_cast<const VkDeviceBufferMemoryRequirements *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
27459 
27460     return structureChain;
27461   }
27462 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
27463 
27464   // wrapper function for command vkGetDeviceImageMemoryRequirementsKHR, see
27465   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceImageMemoryRequirementsKHR.html
27466   template <typename Dispatch>
getImageMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const27467   VULKAN_HPP_INLINE void Device::getImageMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements * pInfo,
27468                                                                 VULKAN_HPP_NAMESPACE::MemoryRequirements2 *                 pMemoryRequirements,
27469                                                                 Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
27470   {
27471     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27472     d.vkGetDeviceImageMemoryRequirementsKHR( static_cast<VkDevice>( m_device ),
27473                                              reinterpret_cast<const VkDeviceImageMemoryRequirements *>( pInfo ),
27474                                              reinterpret_cast<VkMemoryRequirements2 *>( pMemoryRequirements ) );
27475   }
27476 
27477 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
27478   // wrapper function for command vkGetDeviceImageMemoryRequirementsKHR, see
27479   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceImageMemoryRequirementsKHR.html
27480   template <typename Dispatch>
27481   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
getImageMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,Dispatch const & d) const27482     Device::getImageMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
27483   {
27484     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27485 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27486     VULKAN_HPP_ASSERT( d.vkGetDeviceImageMemoryRequirementsKHR &&
27487                        "Function <vkGetDeviceImageMemoryRequirementsKHR> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" );
27488 #  endif
27489 
27490     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
27491     d.vkGetDeviceImageMemoryRequirementsKHR(
27492       m_device, reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
27493 
27494     return memoryRequirements;
27495   }
27496 
27497   // wrapper function for command vkGetDeviceImageMemoryRequirementsKHR, see
27498   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceImageMemoryRequirementsKHR.html
27499   template <typename X, typename Y, typename... Z, typename Dispatch>
27500   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getImageMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,Dispatch const & d) const27501     Device::getImageMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
27502   {
27503     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27504 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27505     VULKAN_HPP_ASSERT( d.vkGetDeviceImageMemoryRequirementsKHR &&
27506                        "Function <vkGetDeviceImageMemoryRequirementsKHR> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" );
27507 #  endif
27508 
27509     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
27510     VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
27511     d.vkGetDeviceImageMemoryRequirementsKHR(
27512       m_device, reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
27513 
27514     return structureChain;
27515   }
27516 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
27517 
27518   // wrapper function for command vkGetDeviceImageSparseMemoryRequirementsKHR, see
27519   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceImageSparseMemoryRequirementsKHR.html
27520   template <typename Dispatch>
getImageSparseMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements * pInfo,uint32_t * pSparseMemoryRequirementCount,VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 * pSparseMemoryRequirements,Dispatch const & d) const27521   VULKAN_HPP_INLINE void Device::getImageSparseMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements * pInfo,
27522                                                                       uint32_t *                                                  pSparseMemoryRequirementCount,
27523                                                                       VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2 *      pSparseMemoryRequirements,
27524                                                                       Dispatch const &                                            d ) const VULKAN_HPP_NOEXCEPT
27525   {
27526     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27527     d.vkGetDeviceImageSparseMemoryRequirementsKHR( static_cast<VkDevice>( m_device ),
27528                                                    reinterpret_cast<const VkDeviceImageMemoryRequirements *>( pInfo ),
27529                                                    pSparseMemoryRequirementCount,
27530                                                    reinterpret_cast<VkSparseImageMemoryRequirements2 *>( pSparseMemoryRequirements ) );
27531   }
27532 
27533 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
27534   // wrapper function for command vkGetDeviceImageSparseMemoryRequirementsKHR, see
27535   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceImageSparseMemoryRequirementsKHR.html
27536   template <typename SparseImageMemoryRequirements2Allocator,
27537             typename Dispatch,
27538             typename std::enable_if<
27539               std::is_same<typename SparseImageMemoryRequirements2Allocator::value_type, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>::value,
27540               int>::type>
27541   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator>
getImageSparseMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,Dispatch const & d) const27542     Device::getImageSparseMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info, Dispatch const & d ) const
27543   {
27544     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27545 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27546     VULKAN_HPP_ASSERT( d.vkGetDeviceImageSparseMemoryRequirementsKHR &&
27547                        "Function <vkGetDeviceImageSparseMemoryRequirementsKHR> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" );
27548 #  endif
27549 
27550     std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements;
27551     uint32_t                                                                                                   sparseMemoryRequirementCount;
27552     d.vkGetDeviceImageSparseMemoryRequirementsKHR(
27553       m_device, reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ), &sparseMemoryRequirementCount, nullptr );
27554     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
27555     d.vkGetDeviceImageSparseMemoryRequirementsKHR( m_device,
27556                                                    reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ),
27557                                                    &sparseMemoryRequirementCount,
27558                                                    reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
27559 
27560     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
27561     if ( sparseMemoryRequirementCount < sparseMemoryRequirements.size() )
27562     {
27563       sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
27564     }
27565     return sparseMemoryRequirements;
27566   }
27567 
27568   // wrapper function for command vkGetDeviceImageSparseMemoryRequirementsKHR, see
27569   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceImageSparseMemoryRequirementsKHR.html
27570   template <typename SparseImageMemoryRequirements2Allocator,
27571             typename Dispatch,
27572             typename std::enable_if<
27573               std::is_same<typename SparseImageMemoryRequirements2Allocator::value_type, VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2>::value,
27574               int>::type>
27575   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator>
getImageSparseMemoryRequirementsKHR(const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,SparseImageMemoryRequirements2Allocator & sparseImageMemoryRequirements2Allocator,Dispatch const & d) const27576                                          Device::getImageSparseMemoryRequirementsKHR( const VULKAN_HPP_NAMESPACE::DeviceImageMemoryRequirements & info,
27577                                                  SparseImageMemoryRequirements2Allocator &                   sparseImageMemoryRequirements2Allocator,
27578                                                  Dispatch const &                                            d ) const
27579   {
27580     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27581 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27582     VULKAN_HPP_ASSERT( d.vkGetDeviceImageSparseMemoryRequirementsKHR &&
27583                        "Function <vkGetDeviceImageSparseMemoryRequirementsKHR> requires <VK_KHR_maintenance4> or <VK_VERSION_1_3>" );
27584 #  endif
27585 
27586     std::vector<VULKAN_HPP_NAMESPACE::SparseImageMemoryRequirements2, SparseImageMemoryRequirements2Allocator> sparseMemoryRequirements(
27587       sparseImageMemoryRequirements2Allocator );
27588     uint32_t sparseMemoryRequirementCount;
27589     d.vkGetDeviceImageSparseMemoryRequirementsKHR(
27590       m_device, reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ), &sparseMemoryRequirementCount, nullptr );
27591     sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
27592     d.vkGetDeviceImageSparseMemoryRequirementsKHR( m_device,
27593                                                    reinterpret_cast<const VkDeviceImageMemoryRequirements *>( &info ),
27594                                                    &sparseMemoryRequirementCount,
27595                                                    reinterpret_cast<VkSparseImageMemoryRequirements2 *>( sparseMemoryRequirements.data() ) );
27596 
27597     VULKAN_HPP_ASSERT( sparseMemoryRequirementCount <= sparseMemoryRequirements.size() );
27598     if ( sparseMemoryRequirementCount < sparseMemoryRequirements.size() )
27599     {
27600       sparseMemoryRequirements.resize( sparseMemoryRequirementCount );
27601     }
27602     return sparseMemoryRequirements;
27603   }
27604 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
27605 
27606   //=== VK_VALVE_descriptor_set_host_mapping ===
27607 
27608   // wrapper function for command vkGetDescriptorSetLayoutHostMappingInfoVALVE, see
27609   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorSetLayoutHostMappingInfoVALVE.html
27610   template <typename Dispatch>
getDescriptorSetLayoutHostMappingInfoVALVE(const VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE * pBindingReference,VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE * pHostMapping,Dispatch const & d) const27611   VULKAN_HPP_INLINE void Device::getDescriptorSetLayoutHostMappingInfoVALVE( const VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE * pBindingReference,
27612                                                                              VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE *  pHostMapping,
27613                                                                              Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
27614   {
27615     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27616     d.vkGetDescriptorSetLayoutHostMappingInfoVALVE( static_cast<VkDevice>( m_device ),
27617                                                     reinterpret_cast<const VkDescriptorSetBindingReferenceVALVE *>( pBindingReference ),
27618                                                     reinterpret_cast<VkDescriptorSetLayoutHostMappingInfoVALVE *>( pHostMapping ) );
27619   }
27620 
27621 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
27622   // wrapper function for command vkGetDescriptorSetLayoutHostMappingInfoVALVE, see
27623   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorSetLayoutHostMappingInfoVALVE.html
27624   template <typename Dispatch>
27625   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE
getDescriptorSetLayoutHostMappingInfoVALVE(const VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE & bindingReference,Dispatch const & d) const27626     Device::getDescriptorSetLayoutHostMappingInfoVALVE( const VULKAN_HPP_NAMESPACE::DescriptorSetBindingReferenceVALVE & bindingReference,
27627                                                         Dispatch const &                                                 d ) const VULKAN_HPP_NOEXCEPT
27628   {
27629     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27630 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27631     VULKAN_HPP_ASSERT( d.vkGetDescriptorSetLayoutHostMappingInfoVALVE &&
27632                        "Function <vkGetDescriptorSetLayoutHostMappingInfoVALVE> requires <VK_VALVE_descriptor_set_host_mapping>" );
27633 #  endif
27634 
27635     VULKAN_HPP_NAMESPACE::DescriptorSetLayoutHostMappingInfoVALVE hostMapping;
27636     d.vkGetDescriptorSetLayoutHostMappingInfoVALVE( m_device,
27637                                                     reinterpret_cast<const VkDescriptorSetBindingReferenceVALVE *>( &bindingReference ),
27638                                                     reinterpret_cast<VkDescriptorSetLayoutHostMappingInfoVALVE *>( &hostMapping ) );
27639 
27640     return hostMapping;
27641   }
27642 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
27643 
27644   // wrapper function for command vkGetDescriptorSetHostMappingVALVE, see
27645   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorSetHostMappingVALVE.html
27646   template <typename Dispatch>
27647   VULKAN_HPP_INLINE void
getDescriptorSetHostMappingVALVE(VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet,void ** ppData,Dispatch const & d) const27648     Device::getDescriptorSetHostMappingVALVE( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet, void ** ppData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
27649   {
27650     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27651     d.vkGetDescriptorSetHostMappingVALVE( static_cast<VkDevice>( m_device ), static_cast<VkDescriptorSet>( descriptorSet ), ppData );
27652   }
27653 
27654 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
27655   // wrapper function for command vkGetDescriptorSetHostMappingVALVE, see
27656   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDescriptorSetHostMappingVALVE.html
27657   template <typename Dispatch>
getDescriptorSetHostMappingVALVE(VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet,Dispatch const & d) const27658   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE void * Device::getDescriptorSetHostMappingVALVE( VULKAN_HPP_NAMESPACE::DescriptorSet descriptorSet,
27659                                                                                           Dispatch const &                    d ) const VULKAN_HPP_NOEXCEPT
27660   {
27661     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27662 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27663     VULKAN_HPP_ASSERT( d.vkGetDescriptorSetHostMappingVALVE &&
27664                        "Function <vkGetDescriptorSetHostMappingVALVE> requires <VK_VALVE_descriptor_set_host_mapping>" );
27665 #  endif
27666 
27667     void * pData;
27668     d.vkGetDescriptorSetHostMappingVALVE( m_device, static_cast<VkDescriptorSet>( descriptorSet ), &pData );
27669 
27670     return pData;
27671   }
27672 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
27673 
27674   //=== VK_NV_copy_memory_indirect ===
27675 
27676   // wrapper function for command vkCmdCopyMemoryIndirectNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryIndirectNV.html
27677   template <typename Dispatch>
copyMemoryIndirectNV(VULKAN_HPP_NAMESPACE::DeviceAddress copyBufferAddress,uint32_t copyCount,uint32_t stride,Dispatch const & d) const27678   VULKAN_HPP_INLINE void CommandBuffer::copyMemoryIndirectNV( VULKAN_HPP_NAMESPACE::DeviceAddress copyBufferAddress,
27679                                                               uint32_t                            copyCount,
27680                                                               uint32_t                            stride,
27681                                                               Dispatch const &                    d ) const VULKAN_HPP_NOEXCEPT
27682   {
27683     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27684     d.vkCmdCopyMemoryIndirectNV( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkDeviceAddress>( copyBufferAddress ), copyCount, stride );
27685   }
27686 
27687   // wrapper function for command vkCmdCopyMemoryToImageIndirectNV, see
27688   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryToImageIndirectNV.html
27689   template <typename Dispatch>
copyMemoryToImageIndirectNV(VULKAN_HPP_NAMESPACE::DeviceAddress copyBufferAddress,uint32_t copyCount,uint32_t stride,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,const VULKAN_HPP_NAMESPACE::ImageSubresourceLayers * pImageSubresources,Dispatch const & d) const27690   VULKAN_HPP_INLINE void CommandBuffer::copyMemoryToImageIndirectNV( VULKAN_HPP_NAMESPACE::DeviceAddress                  copyBufferAddress,
27691                                                                      uint32_t                                             copyCount,
27692                                                                      uint32_t                                             stride,
27693                                                                      VULKAN_HPP_NAMESPACE::Image                          dstImage,
27694                                                                      VULKAN_HPP_NAMESPACE::ImageLayout                    dstImageLayout,
27695                                                                      const VULKAN_HPP_NAMESPACE::ImageSubresourceLayers * pImageSubresources,
27696                                                                      Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
27697   {
27698     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27699     d.vkCmdCopyMemoryToImageIndirectNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
27700                                         static_cast<VkDeviceAddress>( copyBufferAddress ),
27701                                         copyCount,
27702                                         stride,
27703                                         static_cast<VkImage>( dstImage ),
27704                                         static_cast<VkImageLayout>( dstImageLayout ),
27705                                         reinterpret_cast<const VkImageSubresourceLayers *>( pImageSubresources ) );
27706   }
27707 
27708 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
27709   // wrapper function for command vkCmdCopyMemoryToImageIndirectNV, see
27710   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdCopyMemoryToImageIndirectNV.html
27711   template <typename Dispatch>
27712   VULKAN_HPP_INLINE void
copyMemoryToImageIndirectNV(VULKAN_HPP_NAMESPACE::DeviceAddress copyBufferAddress,uint32_t stride,VULKAN_HPP_NAMESPACE::Image dstImage,VULKAN_HPP_NAMESPACE::ImageLayout dstImageLayout,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceLayers> const & imageSubresources,Dispatch const & d) const27713     CommandBuffer::copyMemoryToImageIndirectNV( VULKAN_HPP_NAMESPACE::DeviceAddress                                                          copyBufferAddress,
27714                                                 uint32_t                                                                                     stride,
27715                                                 VULKAN_HPP_NAMESPACE::Image                                                                  dstImage,
27716                                                 VULKAN_HPP_NAMESPACE::ImageLayout                                                            dstImageLayout,
27717                                                 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ImageSubresourceLayers> const & imageSubresources,
27718                                                 Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
27719   {
27720     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27721 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27722     VULKAN_HPP_ASSERT( d.vkCmdCopyMemoryToImageIndirectNV && "Function <vkCmdCopyMemoryToImageIndirectNV> requires <VK_NV_copy_memory_indirect>" );
27723 #  endif
27724 
27725     d.vkCmdCopyMemoryToImageIndirectNV( m_commandBuffer,
27726                                         static_cast<VkDeviceAddress>( copyBufferAddress ),
27727                                         imageSubresources.size(),
27728                                         stride,
27729                                         static_cast<VkImage>( dstImage ),
27730                                         static_cast<VkImageLayout>( dstImageLayout ),
27731                                         reinterpret_cast<const VkImageSubresourceLayers *>( imageSubresources.data() ) );
27732   }
27733 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
27734 
27735   //=== VK_NV_memory_decompression ===
27736 
27737   // wrapper function for command vkCmdDecompressMemoryNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDecompressMemoryNV.html
27738   template <typename Dispatch>
decompressMemoryNV(uint32_t decompressRegionCount,const VULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV * pDecompressMemoryRegions,Dispatch const & d) const27739   VULKAN_HPP_INLINE void CommandBuffer::decompressMemoryNV( uint32_t                                               decompressRegionCount,
27740                                                             const VULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV * pDecompressMemoryRegions,
27741                                                             Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
27742   {
27743     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27744     d.vkCmdDecompressMemoryNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
27745                                decompressRegionCount,
27746                                reinterpret_cast<const VkDecompressMemoryRegionNV *>( pDecompressMemoryRegions ) );
27747   }
27748 
27749 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
27750   // wrapper function for command vkCmdDecompressMemoryNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDecompressMemoryNV.html
27751   template <typename Dispatch>
27752   VULKAN_HPP_INLINE void
decompressMemoryNV(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV> const & decompressMemoryRegions,Dispatch const & d) const27753     CommandBuffer::decompressMemoryNV( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::DecompressMemoryRegionNV> const & decompressMemoryRegions,
27754                                        Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
27755   {
27756     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27757 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27758     VULKAN_HPP_ASSERT( d.vkCmdDecompressMemoryNV && "Function <vkCmdDecompressMemoryNV> requires <VK_NV_memory_decompression>" );
27759 #  endif
27760 
27761     d.vkCmdDecompressMemoryNV(
27762       m_commandBuffer, decompressMemoryRegions.size(), reinterpret_cast<const VkDecompressMemoryRegionNV *>( decompressMemoryRegions.data() ) );
27763   }
27764 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
27765 
27766   // wrapper function for command vkCmdDecompressMemoryIndirectCountNV, see
27767   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdDecompressMemoryIndirectCountNV.html
27768   template <typename Dispatch>
decompressMemoryIndirectCountNV(VULKAN_HPP_NAMESPACE::DeviceAddress indirectCommandsAddress,VULKAN_HPP_NAMESPACE::DeviceAddress indirectCommandsCountAddress,uint32_t stride,Dispatch const & d) const27769   VULKAN_HPP_INLINE void CommandBuffer::decompressMemoryIndirectCountNV( VULKAN_HPP_NAMESPACE::DeviceAddress indirectCommandsAddress,
27770                                                                          VULKAN_HPP_NAMESPACE::DeviceAddress indirectCommandsCountAddress,
27771                                                                          uint32_t                            stride,
27772                                                                          Dispatch const &                    d ) const VULKAN_HPP_NOEXCEPT
27773   {
27774     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27775     d.vkCmdDecompressMemoryIndirectCountNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
27776                                             static_cast<VkDeviceAddress>( indirectCommandsAddress ),
27777                                             static_cast<VkDeviceAddress>( indirectCommandsCountAddress ),
27778                                             stride );
27779   }
27780 
27781   //=== VK_NV_device_generated_commands_compute ===
27782 
27783   // wrapper function for command vkGetPipelineIndirectMemoryRequirementsNV, see
27784   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineIndirectMemoryRequirementsNV.html
27785   template <typename Dispatch>
getPipelineIndirectMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo * pCreateInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const27786   VULKAN_HPP_INLINE void Device::getPipelineIndirectMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo * pCreateInfo,
27787                                                                           VULKAN_HPP_NAMESPACE::MemoryRequirements2 *             pMemoryRequirements,
27788                                                                           Dispatch const &                                        d ) const VULKAN_HPP_NOEXCEPT
27789   {
27790     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27791     d.vkGetPipelineIndirectMemoryRequirementsNV( static_cast<VkDevice>( m_device ),
27792                                                  reinterpret_cast<const VkComputePipelineCreateInfo *>( pCreateInfo ),
27793                                                  reinterpret_cast<VkMemoryRequirements2 *>( pMemoryRequirements ) );
27794   }
27795 
27796 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
27797   // wrapper function for command vkGetPipelineIndirectMemoryRequirementsNV, see
27798   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineIndirectMemoryRequirementsNV.html
27799   template <typename Dispatch>
27800   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
getPipelineIndirectMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo,Dispatch const & d) const27801                                          Device::getPipelineIndirectMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo,
27802                                                      Dispatch const &                                        d ) const VULKAN_HPP_NOEXCEPT
27803   {
27804     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27805 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27806     VULKAN_HPP_ASSERT( d.vkGetPipelineIndirectMemoryRequirementsNV &&
27807                        "Function <vkGetPipelineIndirectMemoryRequirementsNV> requires <VK_NV_device_generated_commands_compute>" );
27808 #  endif
27809 
27810     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
27811     d.vkGetPipelineIndirectMemoryRequirementsNV(
27812       m_device, reinterpret_cast<const VkComputePipelineCreateInfo *>( &createInfo ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
27813 
27814     return memoryRequirements;
27815   }
27816 
27817   // wrapper function for command vkGetPipelineIndirectMemoryRequirementsNV, see
27818   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineIndirectMemoryRequirementsNV.html
27819   template <typename X, typename Y, typename... Z, typename Dispatch>
27820   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getPipelineIndirectMemoryRequirementsNV(const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo,Dispatch const & d) const27821                                          Device::getPipelineIndirectMemoryRequirementsNV( const VULKAN_HPP_NAMESPACE::ComputePipelineCreateInfo & createInfo,
27822                                                      Dispatch const &                                        d ) const VULKAN_HPP_NOEXCEPT
27823   {
27824     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27825 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27826     VULKAN_HPP_ASSERT( d.vkGetPipelineIndirectMemoryRequirementsNV &&
27827                        "Function <vkGetPipelineIndirectMemoryRequirementsNV> requires <VK_NV_device_generated_commands_compute>" );
27828 #  endif
27829 
27830     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
27831     VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
27832     d.vkGetPipelineIndirectMemoryRequirementsNV(
27833       m_device, reinterpret_cast<const VkComputePipelineCreateInfo *>( &createInfo ), reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
27834 
27835     return structureChain;
27836   }
27837 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
27838 
27839   // wrapper function for command vkCmdUpdatePipelineIndirectBufferNV, see
27840   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdUpdatePipelineIndirectBufferNV.html
27841   template <typename Dispatch>
updatePipelineIndirectBufferNV(VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,VULKAN_HPP_NAMESPACE::Pipeline pipeline,Dispatch const & d) const27842   VULKAN_HPP_INLINE void CommandBuffer::updatePipelineIndirectBufferNV( VULKAN_HPP_NAMESPACE::PipelineBindPoint pipelineBindPoint,
27843                                                                         VULKAN_HPP_NAMESPACE::Pipeline          pipeline,
27844                                                                         Dispatch const &                        d ) const VULKAN_HPP_NOEXCEPT
27845   {
27846     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27847     d.vkCmdUpdatePipelineIndirectBufferNV(
27848       static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPipelineBindPoint>( pipelineBindPoint ), static_cast<VkPipeline>( pipeline ) );
27849   }
27850 
27851   // wrapper function for command vkGetPipelineIndirectDeviceAddressNV, see
27852   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineIndirectDeviceAddressNV.html
27853   template <typename Dispatch>
getPipelineIndirectAddressNV(const VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV * pInfo,Dispatch const & d) const27854   VULKAN_HPP_INLINE DeviceAddress Device::getPipelineIndirectAddressNV( const VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV * pInfo,
27855                                                                         Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
27856   {
27857     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27858     return static_cast<DeviceAddress>(
27859       d.vkGetPipelineIndirectDeviceAddressNV( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkPipelineIndirectDeviceAddressInfoNV *>( pInfo ) ) );
27860   }
27861 
27862 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
27863   // wrapper function for command vkGetPipelineIndirectDeviceAddressNV, see
27864   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineIndirectDeviceAddressNV.html
27865   template <typename Dispatch>
27866   VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::DeviceAddress
getPipelineIndirectAddressNV(const VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV & info,Dispatch const & d) const27867     Device::getPipelineIndirectAddressNV( const VULKAN_HPP_NAMESPACE::PipelineIndirectDeviceAddressInfoNV & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
27868   {
27869     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27870 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27871     VULKAN_HPP_ASSERT( d.vkGetPipelineIndirectDeviceAddressNV &&
27872                        "Function <vkGetPipelineIndirectDeviceAddressNV> requires <VK_NV_device_generated_commands_compute>" );
27873 #  endif
27874 
27875     VkDeviceAddress result = d.vkGetPipelineIndirectDeviceAddressNV( m_device, reinterpret_cast<const VkPipelineIndirectDeviceAddressInfoNV *>( &info ) );
27876 
27877     return static_cast<VULKAN_HPP_NAMESPACE::DeviceAddress>( result );
27878   }
27879 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
27880 
27881   //=== VK_EXT_extended_dynamic_state3 ===
27882 
27883   // wrapper function for command vkCmdSetDepthClampEnableEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthClampEnableEXT.html
27884   template <typename Dispatch>
setDepthClampEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable,Dispatch const & d) const27885   VULKAN_HPP_INLINE void CommandBuffer::setDepthClampEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthClampEnable, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
27886   {
27887     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27888     d.vkCmdSetDepthClampEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthClampEnable ) );
27889   }
27890 
27891   // wrapper function for command vkCmdSetPolygonModeEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetPolygonModeEXT.html
27892   template <typename Dispatch>
setPolygonModeEXT(VULKAN_HPP_NAMESPACE::PolygonMode polygonMode,Dispatch const & d) const27893   VULKAN_HPP_INLINE void CommandBuffer::setPolygonModeEXT( VULKAN_HPP_NAMESPACE::PolygonMode polygonMode, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
27894   {
27895     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27896     d.vkCmdSetPolygonModeEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkPolygonMode>( polygonMode ) );
27897   }
27898 
27899   // wrapper function for command vkCmdSetRasterizationSamplesEXT, see
27900   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetRasterizationSamplesEXT.html
27901   template <typename Dispatch>
setRasterizationSamplesEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples,Dispatch const & d) const27902   VULKAN_HPP_INLINE void CommandBuffer::setRasterizationSamplesEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits rasterizationSamples,
27903                                                                     Dispatch const &                          d ) const VULKAN_HPP_NOEXCEPT
27904   {
27905     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27906     d.vkCmdSetRasterizationSamplesEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkSampleCountFlagBits>( rasterizationSamples ) );
27907   }
27908 
27909   // wrapper function for command vkCmdSetSampleMaskEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetSampleMaskEXT.html
27910   template <typename Dispatch>
setSampleMaskEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,const VULKAN_HPP_NAMESPACE::SampleMask * pSampleMask,Dispatch const & d) const27911   VULKAN_HPP_INLINE void CommandBuffer::setSampleMaskEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,
27912                                                           const VULKAN_HPP_NAMESPACE::SampleMask *  pSampleMask,
27913                                                           Dispatch const &                          d ) const VULKAN_HPP_NOEXCEPT
27914   {
27915     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27916     d.vkCmdSetSampleMaskEXT(
27917       static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkSampleCountFlagBits>( samples ), reinterpret_cast<const VkSampleMask *>( pSampleMask ) );
27918   }
27919 
27920 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
27921   // wrapper function for command vkCmdSetSampleMaskEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetSampleMaskEXT.html
27922   template <typename Dispatch>
setSampleMaskEXT(VULKAN_HPP_NAMESPACE::SampleCountFlagBits samples,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SampleMask> const & sampleMask,Dispatch const & d) const27923   VULKAN_HPP_INLINE void CommandBuffer::setSampleMaskEXT( VULKAN_HPP_NAMESPACE::SampleCountFlagBits                                        samples,
27924                                                           VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::SampleMask> const & sampleMask,
27925                                                           Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
27926   {
27927     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27928 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27929     VULKAN_HPP_ASSERT( d.vkCmdSetSampleMaskEXT && "Function <vkCmdSetSampleMaskEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
27930 #  endif
27931 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
27932     VULKAN_HPP_ASSERT( sampleMask.size() == ( static_cast<uint32_t>( samples ) + 31 ) / 32 );
27933 #  else
27934     if ( sampleMask.size() != ( static_cast<uint32_t>( samples ) + 31 ) / 32 )
27935     {
27936       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::setSampleMaskEXT: sampleMask.size() != ( static_cast<uint32_t>( samples ) + 31 ) / 32" );
27937     }
27938 #  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
27939 
27940     d.vkCmdSetSampleMaskEXT( m_commandBuffer, static_cast<VkSampleCountFlagBits>( samples ), reinterpret_cast<const VkSampleMask *>( sampleMask.data() ) );
27941   }
27942 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
27943 
27944   // wrapper function for command vkCmdSetAlphaToCoverageEnableEXT, see
27945   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetAlphaToCoverageEnableEXT.html
27946   template <typename Dispatch>
setAlphaToCoverageEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable,Dispatch const & d) const27947   VULKAN_HPP_INLINE void CommandBuffer::setAlphaToCoverageEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 alphaToCoverageEnable,
27948                                                                      Dispatch const &             d ) const VULKAN_HPP_NOEXCEPT
27949   {
27950     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27951     d.vkCmdSetAlphaToCoverageEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( alphaToCoverageEnable ) );
27952   }
27953 
27954   // wrapper function for command vkCmdSetAlphaToOneEnableEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetAlphaToOneEnableEXT.html
27955   template <typename Dispatch>
setAlphaToOneEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable,Dispatch const & d) const27956   VULKAN_HPP_INLINE void CommandBuffer::setAlphaToOneEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 alphaToOneEnable, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
27957   {
27958     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27959     d.vkCmdSetAlphaToOneEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( alphaToOneEnable ) );
27960   }
27961 
27962   // wrapper function for command vkCmdSetLogicOpEnableEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetLogicOpEnableEXT.html
27963   template <typename Dispatch>
setLogicOpEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable,Dispatch const & d) const27964   VULKAN_HPP_INLINE void CommandBuffer::setLogicOpEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 logicOpEnable, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
27965   {
27966     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27967     d.vkCmdSetLogicOpEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( logicOpEnable ) );
27968   }
27969 
27970   // wrapper function for command vkCmdSetColorBlendEnableEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetColorBlendEnableEXT.html
27971   template <typename Dispatch>
setColorBlendEnableEXT(uint32_t firstAttachment,uint32_t attachmentCount,const VULKAN_HPP_NAMESPACE::Bool32 * pColorBlendEnables,Dispatch const & d) const27972   VULKAN_HPP_INLINE void CommandBuffer::setColorBlendEnableEXT( uint32_t                             firstAttachment,
27973                                                                 uint32_t                             attachmentCount,
27974                                                                 const VULKAN_HPP_NAMESPACE::Bool32 * pColorBlendEnables,
27975                                                                 Dispatch const &                     d ) const VULKAN_HPP_NOEXCEPT
27976   {
27977     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27978     d.vkCmdSetColorBlendEnableEXT(
27979       static_cast<VkCommandBuffer>( m_commandBuffer ), firstAttachment, attachmentCount, reinterpret_cast<const VkBool32 *>( pColorBlendEnables ) );
27980   }
27981 
27982 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
27983   // wrapper function for command vkCmdSetColorBlendEnableEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetColorBlendEnableEXT.html
27984   template <typename Dispatch>
setColorBlendEnableEXT(uint32_t firstAttachment,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & colorBlendEnables,Dispatch const & d) const27985   VULKAN_HPP_INLINE void CommandBuffer::setColorBlendEnableEXT( uint32_t                                                                     firstAttachment,
27986                                                                 VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::Bool32> const & colorBlendEnables,
27987                                                                 Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
27988   {
27989     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
27990 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
27991     VULKAN_HPP_ASSERT( d.vkCmdSetColorBlendEnableEXT &&
27992                        "Function <vkCmdSetColorBlendEnableEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
27993 #  endif
27994 
27995     d.vkCmdSetColorBlendEnableEXT( m_commandBuffer, firstAttachment, colorBlendEnables.size(), reinterpret_cast<const VkBool32 *>( colorBlendEnables.data() ) );
27996   }
27997 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
27998 
27999   // wrapper function for command vkCmdSetColorBlendEquationEXT, see
28000   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetColorBlendEquationEXT.html
28001   template <typename Dispatch>
setColorBlendEquationEXT(uint32_t firstAttachment,uint32_t attachmentCount,const VULKAN_HPP_NAMESPACE::ColorBlendEquationEXT * pColorBlendEquations,Dispatch const & d) const28002   VULKAN_HPP_INLINE void CommandBuffer::setColorBlendEquationEXT( uint32_t                                            firstAttachment,
28003                                                                   uint32_t                                            attachmentCount,
28004                                                                   const VULKAN_HPP_NAMESPACE::ColorBlendEquationEXT * pColorBlendEquations,
28005                                                                   Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
28006   {
28007     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28008     d.vkCmdSetColorBlendEquationEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
28009                                      firstAttachment,
28010                                      attachmentCount,
28011                                      reinterpret_cast<const VkColorBlendEquationEXT *>( pColorBlendEquations ) );
28012   }
28013 
28014 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
28015   // wrapper function for command vkCmdSetColorBlendEquationEXT, see
28016   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetColorBlendEquationEXT.html
28017   template <typename Dispatch>
28018   VULKAN_HPP_INLINE void
setColorBlendEquationEXT(uint32_t firstAttachment,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ColorBlendEquationEXT> const & colorBlendEquations,Dispatch const & d) const28019     CommandBuffer::setColorBlendEquationEXT( uint32_t                                                                                    firstAttachment,
28020                                              VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ColorBlendEquationEXT> const & colorBlendEquations,
28021                                              Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
28022   {
28023     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28024 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28025     VULKAN_HPP_ASSERT( d.vkCmdSetColorBlendEquationEXT &&
28026                        "Function <vkCmdSetColorBlendEquationEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
28027 #  endif
28028 
28029     d.vkCmdSetColorBlendEquationEXT(
28030       m_commandBuffer, firstAttachment, colorBlendEquations.size(), reinterpret_cast<const VkColorBlendEquationEXT *>( colorBlendEquations.data() ) );
28031   }
28032 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
28033 
28034   // wrapper function for command vkCmdSetColorWriteMaskEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetColorWriteMaskEXT.html
28035   template <typename Dispatch>
setColorWriteMaskEXT(uint32_t firstAttachment,uint32_t attachmentCount,const VULKAN_HPP_NAMESPACE::ColorComponentFlags * pColorWriteMasks,Dispatch const & d) const28036   VULKAN_HPP_INLINE void CommandBuffer::setColorWriteMaskEXT( uint32_t                                          firstAttachment,
28037                                                               uint32_t                                          attachmentCount,
28038                                                               const VULKAN_HPP_NAMESPACE::ColorComponentFlags * pColorWriteMasks,
28039                                                               Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
28040   {
28041     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28042     d.vkCmdSetColorWriteMaskEXT(
28043       static_cast<VkCommandBuffer>( m_commandBuffer ), firstAttachment, attachmentCount, reinterpret_cast<const VkColorComponentFlags *>( pColorWriteMasks ) );
28044   }
28045 
28046 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
28047   // wrapper function for command vkCmdSetColorWriteMaskEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetColorWriteMaskEXT.html
28048   template <typename Dispatch>
28049   VULKAN_HPP_INLINE void
setColorWriteMaskEXT(uint32_t firstAttachment,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ColorComponentFlags> const & colorWriteMasks,Dispatch const & d) const28050     CommandBuffer::setColorWriteMaskEXT( uint32_t                                                                                  firstAttachment,
28051                                          VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ColorComponentFlags> const & colorWriteMasks,
28052                                          Dispatch const &                                                                          d ) const VULKAN_HPP_NOEXCEPT
28053   {
28054     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28055 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28056     VULKAN_HPP_ASSERT( d.vkCmdSetColorWriteMaskEXT &&
28057                        "Function <vkCmdSetColorWriteMaskEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
28058 #  endif
28059 
28060     d.vkCmdSetColorWriteMaskEXT(
28061       m_commandBuffer, firstAttachment, colorWriteMasks.size(), reinterpret_cast<const VkColorComponentFlags *>( colorWriteMasks.data() ) );
28062   }
28063 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
28064 
28065   // wrapper function for command vkCmdSetTessellationDomainOriginEXT, see
28066   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetTessellationDomainOriginEXT.html
28067   template <typename Dispatch>
setTessellationDomainOriginEXT(VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin,Dispatch const & d) const28068   VULKAN_HPP_INLINE void CommandBuffer::setTessellationDomainOriginEXT( VULKAN_HPP_NAMESPACE::TessellationDomainOrigin domainOrigin,
28069                                                                         Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
28070   {
28071     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28072     d.vkCmdSetTessellationDomainOriginEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkTessellationDomainOrigin>( domainOrigin ) );
28073   }
28074 
28075   // wrapper function for command vkCmdSetRasterizationStreamEXT, see
28076   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetRasterizationStreamEXT.html
28077   template <typename Dispatch>
setRasterizationStreamEXT(uint32_t rasterizationStream,Dispatch const & d) const28078   VULKAN_HPP_INLINE void CommandBuffer::setRasterizationStreamEXT( uint32_t rasterizationStream, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
28079   {
28080     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28081     d.vkCmdSetRasterizationStreamEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), rasterizationStream );
28082   }
28083 
28084   // wrapper function for command vkCmdSetConservativeRasterizationModeEXT, see
28085   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetConservativeRasterizationModeEXT.html
28086   template <typename Dispatch>
28087   VULKAN_HPP_INLINE void
setConservativeRasterizationModeEXT(VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode,Dispatch const & d) const28088     CommandBuffer::setConservativeRasterizationModeEXT( VULKAN_HPP_NAMESPACE::ConservativeRasterizationModeEXT conservativeRasterizationMode,
28089                                                         Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
28090   {
28091     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28092     d.vkCmdSetConservativeRasterizationModeEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
28093                                                 static_cast<VkConservativeRasterizationModeEXT>( conservativeRasterizationMode ) );
28094   }
28095 
28096   // wrapper function for command vkCmdSetExtraPrimitiveOverestimationSizeEXT, see
28097   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetExtraPrimitiveOverestimationSizeEXT.html
28098   template <typename Dispatch>
setExtraPrimitiveOverestimationSizeEXT(float extraPrimitiveOverestimationSize,Dispatch const & d) const28099   VULKAN_HPP_INLINE void CommandBuffer::setExtraPrimitiveOverestimationSizeEXT( float            extraPrimitiveOverestimationSize,
28100                                                                                 Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
28101   {
28102     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28103     d.vkCmdSetExtraPrimitiveOverestimationSizeEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), extraPrimitiveOverestimationSize );
28104   }
28105 
28106   // wrapper function for command vkCmdSetDepthClipEnableEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthClipEnableEXT.html
28107   template <typename Dispatch>
setDepthClipEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable,Dispatch const & d) const28108   VULKAN_HPP_INLINE void CommandBuffer::setDepthClipEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 depthClipEnable, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
28109   {
28110     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28111     d.vkCmdSetDepthClipEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( depthClipEnable ) );
28112   }
28113 
28114   // wrapper function for command vkCmdSetSampleLocationsEnableEXT, see
28115   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetSampleLocationsEnableEXT.html
28116   template <typename Dispatch>
setSampleLocationsEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable,Dispatch const & d) const28117   VULKAN_HPP_INLINE void CommandBuffer::setSampleLocationsEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 sampleLocationsEnable,
28118                                                                      Dispatch const &             d ) const VULKAN_HPP_NOEXCEPT
28119   {
28120     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28121     d.vkCmdSetSampleLocationsEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( sampleLocationsEnable ) );
28122   }
28123 
28124   // wrapper function for command vkCmdSetColorBlendAdvancedEXT, see
28125   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetColorBlendAdvancedEXT.html
28126   template <typename Dispatch>
setColorBlendAdvancedEXT(uint32_t firstAttachment,uint32_t attachmentCount,const VULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT * pColorBlendAdvanced,Dispatch const & d) const28127   VULKAN_HPP_INLINE void CommandBuffer::setColorBlendAdvancedEXT( uint32_t                                            firstAttachment,
28128                                                                   uint32_t                                            attachmentCount,
28129                                                                   const VULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT * pColorBlendAdvanced,
28130                                                                   Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
28131   {
28132     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28133     d.vkCmdSetColorBlendAdvancedEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
28134                                      firstAttachment,
28135                                      attachmentCount,
28136                                      reinterpret_cast<const VkColorBlendAdvancedEXT *>( pColorBlendAdvanced ) );
28137   }
28138 
28139 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
28140   // wrapper function for command vkCmdSetColorBlendAdvancedEXT, see
28141   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetColorBlendAdvancedEXT.html
28142   template <typename Dispatch>
28143   VULKAN_HPP_INLINE void
setColorBlendAdvancedEXT(uint32_t firstAttachment,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT> const & colorBlendAdvanced,Dispatch const & d) const28144     CommandBuffer::setColorBlendAdvancedEXT( uint32_t                                                                                    firstAttachment,
28145                                              VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ColorBlendAdvancedEXT> const & colorBlendAdvanced,
28146                                              Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
28147   {
28148     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28149 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28150     VULKAN_HPP_ASSERT( d.vkCmdSetColorBlendAdvancedEXT &&
28151                        "Function <vkCmdSetColorBlendAdvancedEXT> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
28152 #  endif
28153 
28154     d.vkCmdSetColorBlendAdvancedEXT(
28155       m_commandBuffer, firstAttachment, colorBlendAdvanced.size(), reinterpret_cast<const VkColorBlendAdvancedEXT *>( colorBlendAdvanced.data() ) );
28156   }
28157 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
28158 
28159   // wrapper function for command vkCmdSetProvokingVertexModeEXT, see
28160   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetProvokingVertexModeEXT.html
28161   template <typename Dispatch>
setProvokingVertexModeEXT(VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT provokingVertexMode,Dispatch const & d) const28162   VULKAN_HPP_INLINE void CommandBuffer::setProvokingVertexModeEXT( VULKAN_HPP_NAMESPACE::ProvokingVertexModeEXT provokingVertexMode,
28163                                                                    Dispatch const &                             d ) const VULKAN_HPP_NOEXCEPT
28164   {
28165     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28166     d.vkCmdSetProvokingVertexModeEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkProvokingVertexModeEXT>( provokingVertexMode ) );
28167   }
28168 
28169   // wrapper function for command vkCmdSetLineRasterizationModeEXT, see
28170   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetLineRasterizationModeEXT.html
28171   template <typename Dispatch>
setLineRasterizationModeEXT(VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode,Dispatch const & d) const28172   VULKAN_HPP_INLINE void CommandBuffer::setLineRasterizationModeEXT( VULKAN_HPP_NAMESPACE::LineRasterizationModeEXT lineRasterizationMode,
28173                                                                      Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
28174   {
28175     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28176     d.vkCmdSetLineRasterizationModeEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkLineRasterizationModeEXT>( lineRasterizationMode ) );
28177   }
28178 
28179   // wrapper function for command vkCmdSetLineStippleEnableEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetLineStippleEnableEXT.html
28180   template <typename Dispatch>
setLineStippleEnableEXT(VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable,Dispatch const & d) const28181   VULKAN_HPP_INLINE void CommandBuffer::setLineStippleEnableEXT( VULKAN_HPP_NAMESPACE::Bool32 stippledLineEnable, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
28182   {
28183     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28184     d.vkCmdSetLineStippleEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( stippledLineEnable ) );
28185   }
28186 
28187   // wrapper function for command vkCmdSetDepthClipNegativeOneToOneEXT, see
28188   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthClipNegativeOneToOneEXT.html
28189   template <typename Dispatch>
setDepthClipNegativeOneToOneEXT(VULKAN_HPP_NAMESPACE::Bool32 negativeOneToOne,Dispatch const & d) const28190   VULKAN_HPP_INLINE void CommandBuffer::setDepthClipNegativeOneToOneEXT( VULKAN_HPP_NAMESPACE::Bool32 negativeOneToOne,
28191                                                                          Dispatch const &             d ) const VULKAN_HPP_NOEXCEPT
28192   {
28193     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28194     d.vkCmdSetDepthClipNegativeOneToOneEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( negativeOneToOne ) );
28195   }
28196 
28197   // wrapper function for command vkCmdSetViewportWScalingEnableNV, see
28198   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetViewportWScalingEnableNV.html
28199   template <typename Dispatch>
setViewportWScalingEnableNV(VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable,Dispatch const & d) const28200   VULKAN_HPP_INLINE void CommandBuffer::setViewportWScalingEnableNV( VULKAN_HPP_NAMESPACE::Bool32 viewportWScalingEnable,
28201                                                                      Dispatch const &             d ) const VULKAN_HPP_NOEXCEPT
28202   {
28203     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28204     d.vkCmdSetViewportWScalingEnableNV( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( viewportWScalingEnable ) );
28205   }
28206 
28207   // wrapper function for command vkCmdSetViewportSwizzleNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetViewportSwizzleNV.html
28208   template <typename Dispatch>
setViewportSwizzleNV(uint32_t firstViewport,uint32_t viewportCount,const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV * pViewportSwizzles,Dispatch const & d) const28209   VULKAN_HPP_INLINE void CommandBuffer::setViewportSwizzleNV( uint32_t                                        firstViewport,
28210                                                               uint32_t                                        viewportCount,
28211                                                               const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV * pViewportSwizzles,
28212                                                               Dispatch const &                                d ) const VULKAN_HPP_NOEXCEPT
28213   {
28214     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28215     d.vkCmdSetViewportSwizzleNV(
28216       static_cast<VkCommandBuffer>( m_commandBuffer ), firstViewport, viewportCount, reinterpret_cast<const VkViewportSwizzleNV *>( pViewportSwizzles ) );
28217   }
28218 
28219 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
28220   // wrapper function for command vkCmdSetViewportSwizzleNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetViewportSwizzleNV.html
28221   template <typename Dispatch>
28222   VULKAN_HPP_INLINE void
setViewportSwizzleNV(uint32_t firstViewport,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV> const & viewportSwizzles,Dispatch const & d) const28223     CommandBuffer::setViewportSwizzleNV( uint32_t                                                                                firstViewport,
28224                                          VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ViewportSwizzleNV> const & viewportSwizzles,
28225                                          Dispatch const &                                                                        d ) const VULKAN_HPP_NOEXCEPT
28226   {
28227     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28228 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28229     VULKAN_HPP_ASSERT( d.vkCmdSetViewportSwizzleNV &&
28230                        "Function <vkCmdSetViewportSwizzleNV> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
28231 #  endif
28232 
28233     d.vkCmdSetViewportSwizzleNV(
28234       m_commandBuffer, firstViewport, viewportSwizzles.size(), reinterpret_cast<const VkViewportSwizzleNV *>( viewportSwizzles.data() ) );
28235   }
28236 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
28237 
28238   // wrapper function for command vkCmdSetCoverageToColorEnableNV, see
28239   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetCoverageToColorEnableNV.html
28240   template <typename Dispatch>
setCoverageToColorEnableNV(VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable,Dispatch const & d) const28241   VULKAN_HPP_INLINE void CommandBuffer::setCoverageToColorEnableNV( VULKAN_HPP_NAMESPACE::Bool32 coverageToColorEnable,
28242                                                                     Dispatch const &             d ) const VULKAN_HPP_NOEXCEPT
28243   {
28244     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28245     d.vkCmdSetCoverageToColorEnableNV( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( coverageToColorEnable ) );
28246   }
28247 
28248   // wrapper function for command vkCmdSetCoverageToColorLocationNV, see
28249   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetCoverageToColorLocationNV.html
28250   template <typename Dispatch>
setCoverageToColorLocationNV(uint32_t coverageToColorLocation,Dispatch const & d) const28251   VULKAN_HPP_INLINE void CommandBuffer::setCoverageToColorLocationNV( uint32_t coverageToColorLocation, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
28252   {
28253     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28254     d.vkCmdSetCoverageToColorLocationNV( static_cast<VkCommandBuffer>( m_commandBuffer ), coverageToColorLocation );
28255   }
28256 
28257   // wrapper function for command vkCmdSetCoverageModulationModeNV, see
28258   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetCoverageModulationModeNV.html
28259   template <typename Dispatch>
setCoverageModulationModeNV(VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode,Dispatch const & d) const28260   VULKAN_HPP_INLINE void CommandBuffer::setCoverageModulationModeNV( VULKAN_HPP_NAMESPACE::CoverageModulationModeNV coverageModulationMode,
28261                                                                      Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
28262   {
28263     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28264     d.vkCmdSetCoverageModulationModeNV( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkCoverageModulationModeNV>( coverageModulationMode ) );
28265   }
28266 
28267   // wrapper function for command vkCmdSetCoverageModulationTableEnableNV, see
28268   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetCoverageModulationTableEnableNV.html
28269   template <typename Dispatch>
setCoverageModulationTableEnableNV(VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable,Dispatch const & d) const28270   VULKAN_HPP_INLINE void CommandBuffer::setCoverageModulationTableEnableNV( VULKAN_HPP_NAMESPACE::Bool32 coverageModulationTableEnable,
28271                                                                             Dispatch const &             d ) const VULKAN_HPP_NOEXCEPT
28272   {
28273     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28274     d.vkCmdSetCoverageModulationTableEnableNV( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( coverageModulationTableEnable ) );
28275   }
28276 
28277   // wrapper function for command vkCmdSetCoverageModulationTableNV, see
28278   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetCoverageModulationTableNV.html
28279   template <typename Dispatch>
setCoverageModulationTableNV(uint32_t coverageModulationTableCount,const float * pCoverageModulationTable,Dispatch const & d) const28280   VULKAN_HPP_INLINE void CommandBuffer::setCoverageModulationTableNV( uint32_t         coverageModulationTableCount,
28281                                                                       const float *    pCoverageModulationTable,
28282                                                                       Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
28283   {
28284     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28285     d.vkCmdSetCoverageModulationTableNV( static_cast<VkCommandBuffer>( m_commandBuffer ), coverageModulationTableCount, pCoverageModulationTable );
28286   }
28287 
28288 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
28289   // wrapper function for command vkCmdSetCoverageModulationTableNV, see
28290   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetCoverageModulationTableNV.html
28291   template <typename Dispatch>
setCoverageModulationTableNV(VULKAN_HPP_NAMESPACE::ArrayProxy<const float> const & coverageModulationTable,Dispatch const & d) const28292   VULKAN_HPP_INLINE void CommandBuffer::setCoverageModulationTableNV( VULKAN_HPP_NAMESPACE::ArrayProxy<const float> const & coverageModulationTable,
28293                                                                       Dispatch const &                                      d ) const VULKAN_HPP_NOEXCEPT
28294   {
28295     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28296 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28297     VULKAN_HPP_ASSERT( d.vkCmdSetCoverageModulationTableNV &&
28298                        "Function <vkCmdSetCoverageModulationTableNV> requires <VK_EXT_extended_dynamic_state3> or <VK_EXT_shader_object>" );
28299 #  endif
28300 
28301     d.vkCmdSetCoverageModulationTableNV( m_commandBuffer, coverageModulationTable.size(), coverageModulationTable.data() );
28302   }
28303 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
28304 
28305   // wrapper function for command vkCmdSetShadingRateImageEnableNV, see
28306   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetShadingRateImageEnableNV.html
28307   template <typename Dispatch>
setShadingRateImageEnableNV(VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable,Dispatch const & d) const28308   VULKAN_HPP_INLINE void CommandBuffer::setShadingRateImageEnableNV( VULKAN_HPP_NAMESPACE::Bool32 shadingRateImageEnable,
28309                                                                      Dispatch const &             d ) const VULKAN_HPP_NOEXCEPT
28310   {
28311     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28312     d.vkCmdSetShadingRateImageEnableNV( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( shadingRateImageEnable ) );
28313   }
28314 
28315   // wrapper function for command vkCmdSetRepresentativeFragmentTestEnableNV, see
28316   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetRepresentativeFragmentTestEnableNV.html
28317   template <typename Dispatch>
setRepresentativeFragmentTestEnableNV(VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable,Dispatch const & d) const28318   VULKAN_HPP_INLINE void CommandBuffer::setRepresentativeFragmentTestEnableNV( VULKAN_HPP_NAMESPACE::Bool32 representativeFragmentTestEnable,
28319                                                                                Dispatch const &             d ) const VULKAN_HPP_NOEXCEPT
28320   {
28321     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28322     d.vkCmdSetRepresentativeFragmentTestEnableNV( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkBool32>( representativeFragmentTestEnable ) );
28323   }
28324 
28325   // wrapper function for command vkCmdSetCoverageReductionModeNV, see
28326   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetCoverageReductionModeNV.html
28327   template <typename Dispatch>
setCoverageReductionModeNV(VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode,Dispatch const & d) const28328   VULKAN_HPP_INLINE void CommandBuffer::setCoverageReductionModeNV( VULKAN_HPP_NAMESPACE::CoverageReductionModeNV coverageReductionMode,
28329                                                                     Dispatch const &                              d ) const VULKAN_HPP_NOEXCEPT
28330   {
28331     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28332     d.vkCmdSetCoverageReductionModeNV( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkCoverageReductionModeNV>( coverageReductionMode ) );
28333   }
28334 
28335   //=== VK_EXT_shader_module_identifier ===
28336 
28337   // wrapper function for command vkGetShaderModuleIdentifierEXT, see
28338   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetShaderModuleIdentifierEXT.html
28339   template <typename Dispatch>
getShaderModuleIdentifierEXT(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT * pIdentifier,Dispatch const & d) const28340   VULKAN_HPP_INLINE void Device::getShaderModuleIdentifierEXT( VULKAN_HPP_NAMESPACE::ShaderModule                shaderModule,
28341                                                                VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT * pIdentifier,
28342                                                                Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
28343   {
28344     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28345     d.vkGetShaderModuleIdentifierEXT(
28346       static_cast<VkDevice>( m_device ), static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<VkShaderModuleIdentifierEXT *>( pIdentifier ) );
28347   }
28348 
28349 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
28350   // wrapper function for command vkGetShaderModuleIdentifierEXT, see
28351   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetShaderModuleIdentifierEXT.html
28352   template <typename Dispatch>
28353   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT
getShaderModuleIdentifierEXT(VULKAN_HPP_NAMESPACE::ShaderModule shaderModule,Dispatch const & d) const28354     Device::getShaderModuleIdentifierEXT( VULKAN_HPP_NAMESPACE::ShaderModule shaderModule, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
28355   {
28356     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28357 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28358     VULKAN_HPP_ASSERT( d.vkGetShaderModuleIdentifierEXT && "Function <vkGetShaderModuleIdentifierEXT> requires <VK_EXT_shader_module_identifier>" );
28359 #  endif
28360 
28361     VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT identifier;
28362     d.vkGetShaderModuleIdentifierEXT( m_device, static_cast<VkShaderModule>( shaderModule ), reinterpret_cast<VkShaderModuleIdentifierEXT *>( &identifier ) );
28363 
28364     return identifier;
28365   }
28366 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
28367 
28368   // wrapper function for command vkGetShaderModuleCreateInfoIdentifierEXT, see
28369   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetShaderModuleCreateInfoIdentifierEXT.html
28370   template <typename Dispatch>
getShaderModuleCreateInfoIdentifierEXT(const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo * pCreateInfo,VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT * pIdentifier,Dispatch const & d) const28371   VULKAN_HPP_INLINE void Device::getShaderModuleCreateInfoIdentifierEXT( const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo * pCreateInfo,
28372                                                                          VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT *    pIdentifier,
28373                                                                          Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
28374   {
28375     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28376     d.vkGetShaderModuleCreateInfoIdentifierEXT( static_cast<VkDevice>( m_device ),
28377                                                 reinterpret_cast<const VkShaderModuleCreateInfo *>( pCreateInfo ),
28378                                                 reinterpret_cast<VkShaderModuleIdentifierEXT *>( pIdentifier ) );
28379   }
28380 
28381 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
28382   // wrapper function for command vkGetShaderModuleCreateInfoIdentifierEXT, see
28383   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetShaderModuleCreateInfoIdentifierEXT.html
28384   template <typename Dispatch>
28385   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT
getShaderModuleCreateInfoIdentifierEXT(const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo & createInfo,Dispatch const & d) const28386                                          Device::getShaderModuleCreateInfoIdentifierEXT( const VULKAN_HPP_NAMESPACE::ShaderModuleCreateInfo & createInfo,
28387                                                     Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
28388   {
28389     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28390 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28391     VULKAN_HPP_ASSERT( d.vkGetShaderModuleCreateInfoIdentifierEXT &&
28392                        "Function <vkGetShaderModuleCreateInfoIdentifierEXT> requires <VK_EXT_shader_module_identifier>" );
28393 #  endif
28394 
28395     VULKAN_HPP_NAMESPACE::ShaderModuleIdentifierEXT identifier;
28396     d.vkGetShaderModuleCreateInfoIdentifierEXT(
28397       m_device, reinterpret_cast<const VkShaderModuleCreateInfo *>( &createInfo ), reinterpret_cast<VkShaderModuleIdentifierEXT *>( &identifier ) );
28398 
28399     return identifier;
28400   }
28401 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
28402 
28403   //=== VK_NV_optical_flow ===
28404 
28405   // wrapper function for command vkGetPhysicalDeviceOpticalFlowImageFormatsNV, see
28406   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceOpticalFlowImageFormatsNV.html
28407   template <typename Dispatch>
28408   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getOpticalFlowImageFormatsNV(const VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo,uint32_t * pFormatCount,VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV * pImageFormatProperties,Dispatch const & d) const28409     PhysicalDevice::getOpticalFlowImageFormatsNV( const VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV * pOpticalFlowImageFormatInfo,
28410                                                   uint32_t *                                                 pFormatCount,
28411                                                   VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV * pImageFormatProperties,
28412                                                   Dispatch const &                                           d ) const VULKAN_HPP_NOEXCEPT
28413   {
28414     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28415     return static_cast<Result>(
28416       d.vkGetPhysicalDeviceOpticalFlowImageFormatsNV( static_cast<VkPhysicalDevice>( m_physicalDevice ),
28417                                                       reinterpret_cast<const VkOpticalFlowImageFormatInfoNV *>( pOpticalFlowImageFormatInfo ),
28418                                                       pFormatCount,
28419                                                       reinterpret_cast<VkOpticalFlowImageFormatPropertiesNV *>( pImageFormatProperties ) ) );
28420   }
28421 
28422 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
28423   // wrapper function for command vkGetPhysicalDeviceOpticalFlowImageFormatsNV, see
28424   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceOpticalFlowImageFormatsNV.html
28425   template <typename OpticalFlowImageFormatPropertiesNVAllocator,
28426             typename Dispatch,
28427             typename std::enable_if<
28428               std::is_same<typename OpticalFlowImageFormatPropertiesNVAllocator::value_type, VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV>::value,
28429               int>::type>
28430   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
28431     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV, OpticalFlowImageFormatPropertiesNVAllocator>>::type
getOpticalFlowImageFormatsNV(const VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV & opticalFlowImageFormatInfo,Dispatch const & d) const28432     PhysicalDevice::getOpticalFlowImageFormatsNV( const VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV & opticalFlowImageFormatInfo,
28433                                                   Dispatch const &                                           d ) const
28434   {
28435     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28436 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28437     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceOpticalFlowImageFormatsNV &&
28438                        "Function <vkGetPhysicalDeviceOpticalFlowImageFormatsNV> requires <VK_NV_optical_flow>" );
28439 #  endif
28440 
28441     std::vector<VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV, OpticalFlowImageFormatPropertiesNVAllocator> imageFormatProperties;
28442     uint32_t                                                                                                           formatCount;
28443     VULKAN_HPP_NAMESPACE::Result                                                                                       result;
28444     do
28445     {
28446       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
28447         m_physicalDevice, reinterpret_cast<const VkOpticalFlowImageFormatInfoNV *>( &opticalFlowImageFormatInfo ), &formatCount, nullptr ) );
28448       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && formatCount )
28449       {
28450         imageFormatProperties.resize( formatCount );
28451         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
28452           d.vkGetPhysicalDeviceOpticalFlowImageFormatsNV( m_physicalDevice,
28453                                                           reinterpret_cast<const VkOpticalFlowImageFormatInfoNV *>( &opticalFlowImageFormatInfo ),
28454                                                           &formatCount,
28455                                                           reinterpret_cast<VkOpticalFlowImageFormatPropertiesNV *>( imageFormatProperties.data() ) ) );
28456       }
28457     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
28458     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getOpticalFlowImageFormatsNV" );
28459     VULKAN_HPP_ASSERT( formatCount <= imageFormatProperties.size() );
28460     if ( formatCount < imageFormatProperties.size() )
28461     {
28462       imageFormatProperties.resize( formatCount );
28463     }
28464     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( imageFormatProperties ) );
28465   }
28466 
28467   // wrapper function for command vkGetPhysicalDeviceOpticalFlowImageFormatsNV, see
28468   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceOpticalFlowImageFormatsNV.html
28469   template <typename OpticalFlowImageFormatPropertiesNVAllocator,
28470             typename Dispatch,
28471             typename std::enable_if<
28472               std::is_same<typename OpticalFlowImageFormatPropertiesNVAllocator::value_type, VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV>::value,
28473               int>::type>
28474   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
28475     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV, OpticalFlowImageFormatPropertiesNVAllocator>>::type
getOpticalFlowImageFormatsNV(const VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV & opticalFlowImageFormatInfo,OpticalFlowImageFormatPropertiesNVAllocator & opticalFlowImageFormatPropertiesNVAllocator,Dispatch const & d) const28476     PhysicalDevice::getOpticalFlowImageFormatsNV( const VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatInfoNV & opticalFlowImageFormatInfo,
28477                                                   OpticalFlowImageFormatPropertiesNVAllocator &              opticalFlowImageFormatPropertiesNVAllocator,
28478                                                   Dispatch const &                                           d ) const
28479   {
28480     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28481 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28482     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceOpticalFlowImageFormatsNV &&
28483                        "Function <vkGetPhysicalDeviceOpticalFlowImageFormatsNV> requires <VK_NV_optical_flow>" );
28484 #  endif
28485 
28486     std::vector<VULKAN_HPP_NAMESPACE::OpticalFlowImageFormatPropertiesNV, OpticalFlowImageFormatPropertiesNVAllocator> imageFormatProperties(
28487       opticalFlowImageFormatPropertiesNVAllocator );
28488     uint32_t                     formatCount;
28489     VULKAN_HPP_NAMESPACE::Result result;
28490     do
28491     {
28492       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceOpticalFlowImageFormatsNV(
28493         m_physicalDevice, reinterpret_cast<const VkOpticalFlowImageFormatInfoNV *>( &opticalFlowImageFormatInfo ), &formatCount, nullptr ) );
28494       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && formatCount )
28495       {
28496         imageFormatProperties.resize( formatCount );
28497         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
28498           d.vkGetPhysicalDeviceOpticalFlowImageFormatsNV( m_physicalDevice,
28499                                                           reinterpret_cast<const VkOpticalFlowImageFormatInfoNV *>( &opticalFlowImageFormatInfo ),
28500                                                           &formatCount,
28501                                                           reinterpret_cast<VkOpticalFlowImageFormatPropertiesNV *>( imageFormatProperties.data() ) ) );
28502       }
28503     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
28504     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getOpticalFlowImageFormatsNV" );
28505     VULKAN_HPP_ASSERT( formatCount <= imageFormatProperties.size() );
28506     if ( formatCount < imageFormatProperties.size() )
28507     {
28508       imageFormatProperties.resize( formatCount );
28509     }
28510     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( imageFormatProperties ) );
28511   }
28512 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
28513 
28514   // wrapper function for command vkCreateOpticalFlowSessionNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateOpticalFlowSessionNV.html
28515   template <typename Dispatch>
createOpticalFlowSessionNV(const VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV * pSession,Dispatch const & d) const28516   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createOpticalFlowSessionNV( const VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV * pCreateInfo,
28517                                                                                     const VULKAN_HPP_NAMESPACE::AllocationCallbacks *            pAllocator,
28518                                                                                     VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV *                 pSession,
28519                                                                                     Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
28520   {
28521     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28522     return static_cast<Result>( d.vkCreateOpticalFlowSessionNV( static_cast<VkDevice>( m_device ),
28523                                                                 reinterpret_cast<const VkOpticalFlowSessionCreateInfoNV *>( pCreateInfo ),
28524                                                                 reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
28525                                                                 reinterpret_cast<VkOpticalFlowSessionNV *>( pSession ) ) );
28526   }
28527 
28528 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
28529   // wrapper function for command vkCreateOpticalFlowSessionNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateOpticalFlowSessionNV.html
28530   template <typename Dispatch>
28531   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV>::type
createOpticalFlowSessionNV(const VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const28532                        Device::createOpticalFlowSessionNV( const VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV & createInfo,
28533                                         Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>    allocator,
28534                                         Dispatch const &                                             d ) const
28535   {
28536     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28537 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28538     VULKAN_HPP_ASSERT( d.vkCreateOpticalFlowSessionNV && "Function <vkCreateOpticalFlowSessionNV> requires <VK_NV_optical_flow>" );
28539 #  endif
28540 
28541     VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV session;
28542     VULKAN_HPP_NAMESPACE::Result               result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateOpticalFlowSessionNV(
28543       m_device,
28544       reinterpret_cast<const VkOpticalFlowSessionCreateInfoNV *>( &createInfo ),
28545       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
28546       reinterpret_cast<VkOpticalFlowSessionNV *>( &session ) ) );
28547     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createOpticalFlowSessionNV" );
28548 
28549     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( session ) );
28550   }
28551 
28552 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
28553   // wrapper function for command vkCreateOpticalFlowSessionNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateOpticalFlowSessionNV.html
28554   template <typename Dispatch>
28555   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV, Dispatch>>::type
createOpticalFlowSessionNVUnique(const VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const28556                        Device::createOpticalFlowSessionNVUnique( const VULKAN_HPP_NAMESPACE::OpticalFlowSessionCreateInfoNV & createInfo,
28557                                               Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>    allocator,
28558                                               Dispatch const &                                             d ) const
28559   {
28560     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28561 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28562     VULKAN_HPP_ASSERT( d.vkCreateOpticalFlowSessionNV && "Function <vkCreateOpticalFlowSessionNV> requires <VK_NV_optical_flow>" );
28563 #    endif
28564 
28565     VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV session;
28566     VULKAN_HPP_NAMESPACE::Result               result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateOpticalFlowSessionNV(
28567       m_device,
28568       reinterpret_cast<const VkOpticalFlowSessionCreateInfoNV *>( &createInfo ),
28569       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
28570       reinterpret_cast<VkOpticalFlowSessionNV *>( &session ) ) );
28571     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createOpticalFlowSessionNVUnique" );
28572 
28573     return VULKAN_HPP_NAMESPACE::detail::createResultValueType(
28574       result, UniqueHandle<VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV, Dispatch>( session, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
28575   }
28576 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
28577 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
28578 
28579   // wrapper function for command vkDestroyOpticalFlowSessionNV, see
28580   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyOpticalFlowSessionNV.html
28581   template <typename Dispatch>
destroyOpticalFlowSessionNV(VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV session,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const28582   VULKAN_HPP_INLINE void Device::destroyOpticalFlowSessionNV( VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV        session,
28583                                                               const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
28584                                                               Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
28585   {
28586     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28587     d.vkDestroyOpticalFlowSessionNV(
28588       static_cast<VkDevice>( m_device ), static_cast<VkOpticalFlowSessionNV>( session ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
28589   }
28590 
28591 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
28592   // wrapper function for command vkDestroyOpticalFlowSessionNV, see
28593   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyOpticalFlowSessionNV.html
28594   template <typename Dispatch>
destroyOpticalFlowSessionNV(VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV session,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const28595   VULKAN_HPP_INLINE void Device::destroyOpticalFlowSessionNV( VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV                session,
28596                                                               Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
28597                                                               Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
28598   {
28599     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28600 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28601     VULKAN_HPP_ASSERT( d.vkDestroyOpticalFlowSessionNV && "Function <vkDestroyOpticalFlowSessionNV> requires <VK_NV_optical_flow>" );
28602 #  endif
28603 
28604     d.vkDestroyOpticalFlowSessionNV(
28605       m_device,
28606       static_cast<VkOpticalFlowSessionNV>( session ),
28607       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
28608   }
28609 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
28610 
28611   // wrapper function for command vkDestroyOpticalFlowSessionNV, see
28612   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyOpticalFlowSessionNV.html
28613   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV session,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const28614   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV        session,
28615                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
28616                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
28617   {
28618     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28619     d.vkDestroyOpticalFlowSessionNV(
28620       static_cast<VkDevice>( m_device ), static_cast<VkOpticalFlowSessionNV>( session ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
28621   }
28622 
28623 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
28624   // wrapper function for command vkDestroyOpticalFlowSessionNV, see
28625   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyOpticalFlowSessionNV.html
28626   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV session,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const28627   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV                session,
28628                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
28629                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
28630   {
28631     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28632 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28633     VULKAN_HPP_ASSERT( d.vkDestroyOpticalFlowSessionNV && "Function <vkDestroyOpticalFlowSessionNV> requires <VK_NV_optical_flow>" );
28634 #  endif
28635 
28636     d.vkDestroyOpticalFlowSessionNV(
28637       m_device,
28638       static_cast<VkOpticalFlowSessionNV>( session ),
28639       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
28640   }
28641 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
28642 
28643 #ifdef VULKAN_HPP_DISABLE_ENHANCED_MODE
28644   // wrapper function for command vkBindOpticalFlowSessionImageNV, see
28645   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindOpticalFlowSessionImageNV.html
28646   template <typename Dispatch>
bindOpticalFlowSessionImageNV(VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV session,VULKAN_HPP_NAMESPACE::OpticalFlowSessionBindingPointNV bindingPoint,VULKAN_HPP_NAMESPACE::ImageView view,VULKAN_HPP_NAMESPACE::ImageLayout layout,Dispatch const & d) const28647   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::bindOpticalFlowSessionImageNV( VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV             session,
28648                                                                                        VULKAN_HPP_NAMESPACE::OpticalFlowSessionBindingPointNV bindingPoint,
28649                                                                                        VULKAN_HPP_NAMESPACE::ImageView                        view,
28650                                                                                        VULKAN_HPP_NAMESPACE::ImageLayout                      layout,
28651                                                                                        Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
28652   {
28653     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28654     return static_cast<Result>( d.vkBindOpticalFlowSessionImageNV( static_cast<VkDevice>( m_device ),
28655                                                                    static_cast<VkOpticalFlowSessionNV>( session ),
28656                                                                    static_cast<VkOpticalFlowSessionBindingPointNV>( bindingPoint ),
28657                                                                    static_cast<VkImageView>( view ),
28658                                                                    static_cast<VkImageLayout>( layout ) ) );
28659   }
28660 #else
28661   // wrapper function for command vkBindOpticalFlowSessionImageNV, see
28662   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkBindOpticalFlowSessionImageNV.html
28663   template <typename Dispatch>
28664   VULKAN_HPP_NODISCARD_WHEN_NO_EXCEPTIONS VULKAN_HPP_INLINE typename ResultValueType<void>::type
bindOpticalFlowSessionImageNV(VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV session,VULKAN_HPP_NAMESPACE::OpticalFlowSessionBindingPointNV bindingPoint,VULKAN_HPP_NAMESPACE::ImageView view,VULKAN_HPP_NAMESPACE::ImageLayout layout,Dispatch const & d) const28665                                           Device::bindOpticalFlowSessionImageNV( VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV             session,
28666                                            VULKAN_HPP_NAMESPACE::OpticalFlowSessionBindingPointNV bindingPoint,
28667                                            VULKAN_HPP_NAMESPACE::ImageView                        view,
28668                                            VULKAN_HPP_NAMESPACE::ImageLayout                      layout,
28669                                            Dispatch const &                                       d ) const
28670   {
28671     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28672 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28673     VULKAN_HPP_ASSERT( d.vkBindOpticalFlowSessionImageNV && "Function <vkBindOpticalFlowSessionImageNV> requires <VK_NV_optical_flow>" );
28674 #  endif
28675 
28676     VULKAN_HPP_NAMESPACE::Result result =
28677       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkBindOpticalFlowSessionImageNV( m_device,
28678                                                                                     static_cast<VkOpticalFlowSessionNV>( session ),
28679                                                                                     static_cast<VkOpticalFlowSessionBindingPointNV>( bindingPoint ),
28680                                                                                     static_cast<VkImageView>( view ),
28681                                                                                     static_cast<VkImageLayout>( layout ) ) );
28682     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::bindOpticalFlowSessionImageNV" );
28683 
28684     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
28685   }
28686 #endif /*VULKAN_HPP_DISABLE_ENHANCED_MODE*/
28687 
28688   // wrapper function for command vkCmdOpticalFlowExecuteNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdOpticalFlowExecuteNV.html
28689   template <typename Dispatch>
opticalFlowExecuteNV(VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV session,const VULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV * pExecuteInfo,Dispatch const & d) const28690   VULKAN_HPP_INLINE void CommandBuffer::opticalFlowExecuteNV( VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV             session,
28691                                                               const VULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV * pExecuteInfo,
28692                                                               Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
28693   {
28694     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28695     d.vkCmdOpticalFlowExecuteNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
28696                                  static_cast<VkOpticalFlowSessionNV>( session ),
28697                                  reinterpret_cast<const VkOpticalFlowExecuteInfoNV *>( pExecuteInfo ) );
28698   }
28699 
28700 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
28701   // wrapper function for command vkCmdOpticalFlowExecuteNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdOpticalFlowExecuteNV.html
28702   template <typename Dispatch>
opticalFlowExecuteNV(VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV session,const VULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV & executeInfo,Dispatch const & d) const28703   VULKAN_HPP_INLINE void CommandBuffer::opticalFlowExecuteNV( VULKAN_HPP_NAMESPACE::OpticalFlowSessionNV             session,
28704                                                               const VULKAN_HPP_NAMESPACE::OpticalFlowExecuteInfoNV & executeInfo,
28705                                                               Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
28706   {
28707     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28708 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28709     VULKAN_HPP_ASSERT( d.vkCmdOpticalFlowExecuteNV && "Function <vkCmdOpticalFlowExecuteNV> requires <VK_NV_optical_flow>" );
28710 #  endif
28711 
28712     d.vkCmdOpticalFlowExecuteNV(
28713       m_commandBuffer, static_cast<VkOpticalFlowSessionNV>( session ), reinterpret_cast<const VkOpticalFlowExecuteInfoNV *>( &executeInfo ) );
28714   }
28715 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
28716 
28717   //=== VK_KHR_maintenance5 ===
28718 
28719   // wrapper function for command vkCmdBindIndexBuffer2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindIndexBuffer2KHR.html
28720   template <typename Dispatch>
bindIndexBuffer2KHR(VULKAN_HPP_NAMESPACE::Buffer buffer,VULKAN_HPP_NAMESPACE::DeviceSize offset,VULKAN_HPP_NAMESPACE::DeviceSize size,VULKAN_HPP_NAMESPACE::IndexType indexType,Dispatch const & d) const28721   VULKAN_HPP_INLINE void CommandBuffer::bindIndexBuffer2KHR( VULKAN_HPP_NAMESPACE::Buffer     buffer,
28722                                                              VULKAN_HPP_NAMESPACE::DeviceSize offset,
28723                                                              VULKAN_HPP_NAMESPACE::DeviceSize size,
28724                                                              VULKAN_HPP_NAMESPACE::IndexType  indexType,
28725                                                              Dispatch const &                 d ) const VULKAN_HPP_NOEXCEPT
28726   {
28727     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28728     d.vkCmdBindIndexBuffer2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
28729                                 static_cast<VkBuffer>( buffer ),
28730                                 static_cast<VkDeviceSize>( offset ),
28731                                 static_cast<VkDeviceSize>( size ),
28732                                 static_cast<VkIndexType>( indexType ) );
28733   }
28734 
28735   // wrapper function for command vkGetRenderingAreaGranularityKHR, see
28736   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRenderingAreaGranularityKHR.html
28737   template <typename Dispatch>
getRenderingAreaGranularityKHR(const VULKAN_HPP_NAMESPACE::RenderingAreaInfo * pRenderingAreaInfo,VULKAN_HPP_NAMESPACE::Extent2D * pGranularity,Dispatch const & d) const28738   VULKAN_HPP_INLINE void Device::getRenderingAreaGranularityKHR( const VULKAN_HPP_NAMESPACE::RenderingAreaInfo * pRenderingAreaInfo,
28739                                                                  VULKAN_HPP_NAMESPACE::Extent2D *                pGranularity,
28740                                                                  Dispatch const &                                d ) const VULKAN_HPP_NOEXCEPT
28741   {
28742     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28743     d.vkGetRenderingAreaGranularityKHR(
28744       static_cast<VkDevice>( m_device ), reinterpret_cast<const VkRenderingAreaInfo *>( pRenderingAreaInfo ), reinterpret_cast<VkExtent2D *>( pGranularity ) );
28745   }
28746 
28747 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
28748   // wrapper function for command vkGetRenderingAreaGranularityKHR, see
28749   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetRenderingAreaGranularityKHR.html
28750   template <typename Dispatch>
28751   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Extent2D
getRenderingAreaGranularityKHR(const VULKAN_HPP_NAMESPACE::RenderingAreaInfo & renderingAreaInfo,Dispatch const & d) const28752     Device::getRenderingAreaGranularityKHR( const VULKAN_HPP_NAMESPACE::RenderingAreaInfo & renderingAreaInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
28753   {
28754     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28755 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28756     VULKAN_HPP_ASSERT( d.vkGetRenderingAreaGranularityKHR && "Function <vkGetRenderingAreaGranularityKHR> requires <VK_KHR_maintenance5> or <VK_VERSION_1_4>" );
28757 #  endif
28758 
28759     VULKAN_HPP_NAMESPACE::Extent2D granularity;
28760     d.vkGetRenderingAreaGranularityKHR(
28761       m_device, reinterpret_cast<const VkRenderingAreaInfo *>( &renderingAreaInfo ), reinterpret_cast<VkExtent2D *>( &granularity ) );
28762 
28763     return granularity;
28764   }
28765 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
28766 
28767   // wrapper function for command vkGetDeviceImageSubresourceLayoutKHR, see
28768   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceImageSubresourceLayoutKHR.html
28769   template <typename Dispatch>
getImageSubresourceLayoutKHR(const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfo * pInfo,VULKAN_HPP_NAMESPACE::SubresourceLayout2 * pLayout,Dispatch const & d) const28770   VULKAN_HPP_INLINE void Device::getImageSubresourceLayoutKHR( const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfo * pInfo,
28771                                                                VULKAN_HPP_NAMESPACE::SubresourceLayout2 *               pLayout,
28772                                                                Dispatch const &                                         d ) const VULKAN_HPP_NOEXCEPT
28773   {
28774     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28775     d.vkGetDeviceImageSubresourceLayoutKHR(
28776       static_cast<VkDevice>( m_device ), reinterpret_cast<const VkDeviceImageSubresourceInfo *>( pInfo ), reinterpret_cast<VkSubresourceLayout2 *>( pLayout ) );
28777   }
28778 
28779 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
28780   // wrapper function for command vkGetDeviceImageSubresourceLayoutKHR, see
28781   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceImageSubresourceLayoutKHR.html
28782   template <typename Dispatch>
28783   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout2
getImageSubresourceLayoutKHR(const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfo & info,Dispatch const & d) const28784     Device::getImageSubresourceLayoutKHR( const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
28785   {
28786     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28787 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28788     VULKAN_HPP_ASSERT( d.vkGetDeviceImageSubresourceLayoutKHR &&
28789                        "Function <vkGetDeviceImageSubresourceLayoutKHR> requires <VK_KHR_maintenance5> or <VK_VERSION_1_4>" );
28790 #  endif
28791 
28792     VULKAN_HPP_NAMESPACE::SubresourceLayout2 layout;
28793     d.vkGetDeviceImageSubresourceLayoutKHR(
28794       m_device, reinterpret_cast<const VkDeviceImageSubresourceInfo *>( &info ), reinterpret_cast<VkSubresourceLayout2 *>( &layout ) );
28795 
28796     return layout;
28797   }
28798 
28799   // wrapper function for command vkGetDeviceImageSubresourceLayoutKHR, see
28800   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDeviceImageSubresourceLayoutKHR.html
28801   template <typename X, typename Y, typename... Z, typename Dispatch>
28802   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getImageSubresourceLayoutKHR(const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfo & info,Dispatch const & d) const28803     Device::getImageSubresourceLayoutKHR( const VULKAN_HPP_NAMESPACE::DeviceImageSubresourceInfo & info, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
28804   {
28805     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28806 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28807     VULKAN_HPP_ASSERT( d.vkGetDeviceImageSubresourceLayoutKHR &&
28808                        "Function <vkGetDeviceImageSubresourceLayoutKHR> requires <VK_KHR_maintenance5> or <VK_VERSION_1_4>" );
28809 #  endif
28810 
28811     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
28812     VULKAN_HPP_NAMESPACE::SubresourceLayout2 &       layout = structureChain.template get<VULKAN_HPP_NAMESPACE::SubresourceLayout2>();
28813     d.vkGetDeviceImageSubresourceLayoutKHR(
28814       m_device, reinterpret_cast<const VkDeviceImageSubresourceInfo *>( &info ), reinterpret_cast<VkSubresourceLayout2 *>( &layout ) );
28815 
28816     return structureChain;
28817   }
28818 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
28819 
28820   // wrapper function for command vkGetImageSubresourceLayout2KHR, see
28821   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSubresourceLayout2KHR.html
28822   template <typename Dispatch>
getImageSubresourceLayout2KHR(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::ImageSubresource2 * pSubresource,VULKAN_HPP_NAMESPACE::SubresourceLayout2 * pLayout,Dispatch const & d) const28823   VULKAN_HPP_INLINE void Device::getImageSubresourceLayout2KHR( VULKAN_HPP_NAMESPACE::Image                     image,
28824                                                                 const VULKAN_HPP_NAMESPACE::ImageSubresource2 * pSubresource,
28825                                                                 VULKAN_HPP_NAMESPACE::SubresourceLayout2 *      pLayout,
28826                                                                 Dispatch const &                                d ) const VULKAN_HPP_NOEXCEPT
28827   {
28828     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28829     d.vkGetImageSubresourceLayout2KHR( static_cast<VkDevice>( m_device ),
28830                                        static_cast<VkImage>( image ),
28831                                        reinterpret_cast<const VkImageSubresource2 *>( pSubresource ),
28832                                        reinterpret_cast<VkSubresourceLayout2 *>( pLayout ) );
28833   }
28834 
28835 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
28836   // wrapper function for command vkGetImageSubresourceLayout2KHR, see
28837   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSubresourceLayout2KHR.html
28838   template <typename Dispatch>
getImageSubresourceLayout2KHR(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::ImageSubresource2 & subresource,Dispatch const & d) const28839   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::SubresourceLayout2 Device::getImageSubresourceLayout2KHR(
28840     VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::ImageSubresource2 & subresource, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
28841   {
28842     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28843 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28844     VULKAN_HPP_ASSERT(
28845       d.vkGetImageSubresourceLayout2KHR &&
28846       "Function <vkGetImageSubresourceLayout2KHR> requires <VK_EXT_host_image_copy> or <VK_EXT_image_compression_control> or <VK_KHR_maintenance5> or <VK_VERSION_1_4>" );
28847 #  endif
28848 
28849     VULKAN_HPP_NAMESPACE::SubresourceLayout2 layout;
28850     d.vkGetImageSubresourceLayout2KHR( m_device,
28851                                        static_cast<VkImage>( image ),
28852                                        reinterpret_cast<const VkImageSubresource2 *>( &subresource ),
28853                                        reinterpret_cast<VkSubresourceLayout2 *>( &layout ) );
28854 
28855     return layout;
28856   }
28857 
28858   // wrapper function for command vkGetImageSubresourceLayout2KHR, see
28859   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetImageSubresourceLayout2KHR.html
28860   template <typename X, typename Y, typename... Z, typename Dispatch>
getImageSubresourceLayout2KHR(VULKAN_HPP_NAMESPACE::Image image,const VULKAN_HPP_NAMESPACE::ImageSubresource2 & subresource,Dispatch const & d) const28861   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> Device::getImageSubresourceLayout2KHR(
28862     VULKAN_HPP_NAMESPACE::Image image, const VULKAN_HPP_NAMESPACE::ImageSubresource2 & subresource, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
28863   {
28864     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28865 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28866     VULKAN_HPP_ASSERT(
28867       d.vkGetImageSubresourceLayout2KHR &&
28868       "Function <vkGetImageSubresourceLayout2KHR> requires <VK_EXT_host_image_copy> or <VK_EXT_image_compression_control> or <VK_KHR_maintenance5> or <VK_VERSION_1_4>" );
28869 #  endif
28870 
28871     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
28872     VULKAN_HPP_NAMESPACE::SubresourceLayout2 &       layout = structureChain.template get<VULKAN_HPP_NAMESPACE::SubresourceLayout2>();
28873     d.vkGetImageSubresourceLayout2KHR( m_device,
28874                                        static_cast<VkImage>( image ),
28875                                        reinterpret_cast<const VkImageSubresource2 *>( &subresource ),
28876                                        reinterpret_cast<VkSubresourceLayout2 *>( &layout ) );
28877 
28878     return structureChain;
28879   }
28880 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
28881 
28882   //=== VK_AMD_anti_lag ===
28883 
28884   // wrapper function for command vkAntiLagUpdateAMD, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAntiLagUpdateAMD.html
28885   template <typename Dispatch>
antiLagUpdateAMD(const VULKAN_HPP_NAMESPACE::AntiLagDataAMD * pData,Dispatch const & d) const28886   VULKAN_HPP_INLINE void Device::antiLagUpdateAMD( const VULKAN_HPP_NAMESPACE::AntiLagDataAMD * pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
28887   {
28888     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28889     d.vkAntiLagUpdateAMD( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkAntiLagDataAMD *>( pData ) );
28890   }
28891 
28892 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
28893   // wrapper function for command vkAntiLagUpdateAMD, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkAntiLagUpdateAMD.html
28894   template <typename Dispatch>
antiLagUpdateAMD(const VULKAN_HPP_NAMESPACE::AntiLagDataAMD & data,Dispatch const & d) const28895   VULKAN_HPP_INLINE void Device::antiLagUpdateAMD( const VULKAN_HPP_NAMESPACE::AntiLagDataAMD & data, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
28896   {
28897     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28898 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28899     VULKAN_HPP_ASSERT( d.vkAntiLagUpdateAMD && "Function <vkAntiLagUpdateAMD> requires <VK_AMD_anti_lag>" );
28900 #  endif
28901 
28902     d.vkAntiLagUpdateAMD( m_device, reinterpret_cast<const VkAntiLagDataAMD *>( &data ) );
28903   }
28904 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
28905 
28906   //=== VK_EXT_shader_object ===
28907 
28908   // wrapper function for command vkCreateShadersEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateShadersEXT.html
28909   template <typename Dispatch>
createShadersEXT(uint32_t createInfoCount,const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT * pCreateInfos,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::ShaderEXT * pShaders,Dispatch const & d) const28910   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createShadersEXT( uint32_t                                          createInfoCount,
28911                                                                           const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT * pCreateInfos,
28912                                                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
28913                                                                           VULKAN_HPP_NAMESPACE::ShaderEXT *                 pShaders,
28914                                                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
28915   {
28916     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28917     return static_cast<Result>( d.vkCreateShadersEXT( static_cast<VkDevice>( m_device ),
28918                                                       createInfoCount,
28919                                                       reinterpret_cast<const VkShaderCreateInfoEXT *>( pCreateInfos ),
28920                                                       reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
28921                                                       reinterpret_cast<VkShaderEXT *>( pShaders ) ) );
28922   }
28923 
28924 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
28925   // wrapper function for command vkCreateShadersEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateShadersEXT.html
28926   template <typename ShaderEXTAllocator,
28927             typename Dispatch,
28928             typename std::enable_if<std::is_same<typename ShaderEXTAllocator::value_type, VULKAN_HPP_NAMESPACE::ShaderEXT>::value, int>::type>
28929   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<VULKAN_HPP_NAMESPACE::ShaderEXT, ShaderEXTAllocator>>
createShadersEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const28930     Device::createShadersEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos,
28931                               Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                 allocator,
28932                               Dispatch const &                                                                          d ) const
28933   {
28934     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28935 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28936     VULKAN_HPP_ASSERT( d.vkCreateShadersEXT && "Function <vkCreateShadersEXT> requires <VK_EXT_shader_object>" );
28937 #  endif
28938 
28939     std::vector<VULKAN_HPP_NAMESPACE::ShaderEXT, ShaderEXTAllocator> shaders( createInfos.size() );
28940     VULKAN_HPP_NAMESPACE::Result                                     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
28941       d.vkCreateShadersEXT( m_device,
28942                             createInfos.size(),
28943                             reinterpret_cast<const VkShaderCreateInfoEXT *>( createInfos.data() ),
28944                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
28945                             reinterpret_cast<VkShaderEXT *>( shaders.data() ) ) );
28946     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
28947                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createShadersEXT",
28948                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eIncompatibleShaderBinaryEXT } );
28949 
28950     return ResultValue<std::vector<VULKAN_HPP_NAMESPACE::ShaderEXT, ShaderEXTAllocator>>( result, std::move( shaders ) );
28951   }
28952 
28953   // wrapper function for command vkCreateShadersEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateShadersEXT.html
28954   template <typename ShaderEXTAllocator,
28955             typename Dispatch,
28956             typename std::enable_if<std::is_same<typename ShaderEXTAllocator::value_type, VULKAN_HPP_NAMESPACE::ShaderEXT>::value, int>::type>
28957   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<VULKAN_HPP_NAMESPACE::ShaderEXT, ShaderEXTAllocator>>
createShadersEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,ShaderEXTAllocator & shaderEXTAllocator,Dispatch const & d) const28958     Device::createShadersEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos,
28959                               Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                 allocator,
28960                               ShaderEXTAllocator &                                                                      shaderEXTAllocator,
28961                               Dispatch const &                                                                          d ) const
28962   {
28963     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28964 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28965     VULKAN_HPP_ASSERT( d.vkCreateShadersEXT && "Function <vkCreateShadersEXT> requires <VK_EXT_shader_object>" );
28966 #  endif
28967 
28968     std::vector<VULKAN_HPP_NAMESPACE::ShaderEXT, ShaderEXTAllocator> shaders( createInfos.size(), shaderEXTAllocator );
28969     VULKAN_HPP_NAMESPACE::Result                                     result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
28970       d.vkCreateShadersEXT( m_device,
28971                             createInfos.size(),
28972                             reinterpret_cast<const VkShaderCreateInfoEXT *>( createInfos.data() ),
28973                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
28974                             reinterpret_cast<VkShaderEXT *>( shaders.data() ) ) );
28975     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
28976                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createShadersEXT",
28977                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eIncompatibleShaderBinaryEXT } );
28978 
28979     return ResultValue<std::vector<VULKAN_HPP_NAMESPACE::ShaderEXT, ShaderEXTAllocator>>( result, std::move( shaders ) );
28980   }
28981 
28982   // wrapper function for command vkCreateShadersEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateShadersEXT.html
28983   template <typename Dispatch>
28984   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<VULKAN_HPP_NAMESPACE::ShaderEXT>
createShaderEXT(const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const28985                                          Device::createShaderEXT( const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT &         createInfo,
28986                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
28987                              Dispatch const &                                          d ) const
28988   {
28989     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
28990 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
28991     VULKAN_HPP_ASSERT( d.vkCreateShadersEXT && "Function <vkCreateShadersEXT> requires <VK_EXT_shader_object>" );
28992 #  endif
28993 
28994     VULKAN_HPP_NAMESPACE::ShaderEXT shader;
28995     VULKAN_HPP_NAMESPACE::Result    result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
28996       d.vkCreateShadersEXT( m_device,
28997                             1,
28998                             reinterpret_cast<const VkShaderCreateInfoEXT *>( &createInfo ),
28999                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
29000                             reinterpret_cast<VkShaderEXT *>( &shader ) ) );
29001     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
29002                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createShaderEXT",
29003                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eIncompatibleShaderBinaryEXT } );
29004 
29005     return ResultValue<VULKAN_HPP_NAMESPACE::ShaderEXT>( result, std::move( shader ) );
29006   }
29007 
29008 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
29009   // wrapper function for command vkCreateShadersEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateShadersEXT.html
29010   template <
29011     typename Dispatch,
29012     typename ShaderEXTAllocator,
29013     typename std::enable_if<std::is_same<typename ShaderEXTAllocator::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>>::value, int>::type>
29014   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>, ShaderEXTAllocator>>
createShadersEXTUnique(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const29015     Device::createShadersEXTUnique( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos,
29016                                     Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                 allocator,
29017                                     Dispatch const &                                                                          d ) const
29018   {
29019     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29020 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
29021     VULKAN_HPP_ASSERT( d.vkCreateShadersEXT && "Function <vkCreateShadersEXT> requires <VK_EXT_shader_object>" );
29022 #    endif
29023 
29024     std::vector<VULKAN_HPP_NAMESPACE::ShaderEXT> shaders( createInfos.size() );
29025     VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
29026       d.vkCreateShadersEXT( m_device,
29027                             createInfos.size(),
29028                             reinterpret_cast<const VkShaderCreateInfoEXT *>( createInfos.data() ),
29029                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
29030                             reinterpret_cast<VkShaderEXT *>( shaders.data() ) ) );
29031     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
29032                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createShadersEXTUnique",
29033                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eIncompatibleShaderBinaryEXT } );
29034     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>, ShaderEXTAllocator> uniqueShaders;
29035     uniqueShaders.reserve( createInfos.size() );
29036     detail::ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
29037     for ( auto const & shader : shaders )
29038     {
29039       uniqueShaders.push_back( UniqueHandle<ShaderEXT, Dispatch>( shader, deleter ) );
29040     }
29041     return ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>, ShaderEXTAllocator>>( result, std::move( uniqueShaders ) );
29042   }
29043 
29044   // wrapper function for command vkCreateShadersEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateShadersEXT.html
29045   template <
29046     typename Dispatch,
29047     typename ShaderEXTAllocator,
29048     typename std::enable_if<std::is_same<typename ShaderEXTAllocator::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>>::value, int>::type>
29049   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>, ShaderEXTAllocator>>
createShadersEXTUnique(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,ShaderEXTAllocator & shaderEXTAllocator,Dispatch const & d) const29050     Device::createShadersEXTUnique( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT> const & createInfos,
29051                                     Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>                                 allocator,
29052                                     ShaderEXTAllocator &                                                                      shaderEXTAllocator,
29053                                     Dispatch const &                                                                          d ) const
29054   {
29055     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29056 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
29057     VULKAN_HPP_ASSERT( d.vkCreateShadersEXT && "Function <vkCreateShadersEXT> requires <VK_EXT_shader_object>" );
29058 #    endif
29059 
29060     std::vector<VULKAN_HPP_NAMESPACE::ShaderEXT> shaders( createInfos.size() );
29061     VULKAN_HPP_NAMESPACE::Result                 result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
29062       d.vkCreateShadersEXT( m_device,
29063                             createInfos.size(),
29064                             reinterpret_cast<const VkShaderCreateInfoEXT *>( createInfos.data() ),
29065                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
29066                             reinterpret_cast<VkShaderEXT *>( shaders.data() ) ) );
29067     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
29068                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createShadersEXTUnique",
29069                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eIncompatibleShaderBinaryEXT } );
29070     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>, ShaderEXTAllocator> uniqueShaders( shaderEXTAllocator );
29071     uniqueShaders.reserve( createInfos.size() );
29072     detail::ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
29073     for ( auto const & shader : shaders )
29074     {
29075       uniqueShaders.push_back( UniqueHandle<ShaderEXT, Dispatch>( shader, deleter ) );
29076     }
29077     return ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>, ShaderEXTAllocator>>( result, std::move( uniqueShaders ) );
29078   }
29079 
29080   // wrapper function for command vkCreateShadersEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateShadersEXT.html
29081   template <typename Dispatch>
29082   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>>
createShaderEXTUnique(const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const29083                                          Device::createShaderEXTUnique( const VULKAN_HPP_NAMESPACE::ShaderCreateInfoEXT &         createInfo,
29084                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
29085                                    Dispatch const &                                          d ) const
29086   {
29087     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29088 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
29089     VULKAN_HPP_ASSERT( d.vkCreateShadersEXT && "Function <vkCreateShadersEXT> requires <VK_EXT_shader_object>" );
29090 #    endif
29091 
29092     VULKAN_HPP_NAMESPACE::ShaderEXT shader;
29093     VULKAN_HPP_NAMESPACE::Result    result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
29094       d.vkCreateShadersEXT( m_device,
29095                             1,
29096                             reinterpret_cast<const VkShaderCreateInfoEXT *>( &createInfo ),
29097                             reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
29098                             reinterpret_cast<VkShaderEXT *>( &shader ) ) );
29099     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
29100                                                VULKAN_HPP_NAMESPACE_STRING "::Device::createShaderEXTUnique",
29101                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eIncompatibleShaderBinaryEXT } );
29102 
29103     return ResultValue<UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>>(
29104       result, UniqueHandle<VULKAN_HPP_NAMESPACE::ShaderEXT, Dispatch>( shader, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
29105   }
29106 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
29107 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
29108 
29109   // wrapper function for command vkDestroyShaderEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyShaderEXT.html
29110   template <typename Dispatch>
destroyShaderEXT(VULKAN_HPP_NAMESPACE::ShaderEXT shader,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const29111   VULKAN_HPP_INLINE void Device::destroyShaderEXT( VULKAN_HPP_NAMESPACE::ShaderEXT                   shader,
29112                                                    const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
29113                                                    Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
29114   {
29115     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29116     d.vkDestroyShaderEXT(
29117       static_cast<VkDevice>( m_device ), static_cast<VkShaderEXT>( shader ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
29118   }
29119 
29120 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
29121   // wrapper function for command vkDestroyShaderEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyShaderEXT.html
29122   template <typename Dispatch>
destroyShaderEXT(VULKAN_HPP_NAMESPACE::ShaderEXT shader,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const29123   VULKAN_HPP_INLINE void Device::destroyShaderEXT( VULKAN_HPP_NAMESPACE::ShaderEXT                           shader,
29124                                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
29125                                                    Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
29126   {
29127     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29128 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
29129     VULKAN_HPP_ASSERT( d.vkDestroyShaderEXT && "Function <vkDestroyShaderEXT> requires <VK_EXT_shader_object>" );
29130 #  endif
29131 
29132     d.vkDestroyShaderEXT( m_device,
29133                           static_cast<VkShaderEXT>( shader ),
29134                           reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
29135   }
29136 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
29137 
29138   // wrapper function for command vkDestroyShaderEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyShaderEXT.html
29139   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ShaderEXT shader,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const29140   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderEXT                   shader,
29141                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
29142                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
29143   {
29144     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29145     d.vkDestroyShaderEXT(
29146       static_cast<VkDevice>( m_device ), static_cast<VkShaderEXT>( shader ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
29147   }
29148 
29149 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
29150   // wrapper function for command vkDestroyShaderEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyShaderEXT.html
29151   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::ShaderEXT shader,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const29152   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::ShaderEXT                           shader,
29153                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
29154                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
29155   {
29156     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29157 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
29158     VULKAN_HPP_ASSERT( d.vkDestroyShaderEXT && "Function <vkDestroyShaderEXT> requires <VK_EXT_shader_object>" );
29159 #  endif
29160 
29161     d.vkDestroyShaderEXT( m_device,
29162                           static_cast<VkShaderEXT>( shader ),
29163                           reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
29164   }
29165 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
29166 
29167   // wrapper function for command vkGetShaderBinaryDataEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetShaderBinaryDataEXT.html
29168   template <typename Dispatch>
29169   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getShaderBinaryDataEXT(VULKAN_HPP_NAMESPACE::ShaderEXT shader,size_t * pDataSize,void * pData,Dispatch const & d) const29170     Device::getShaderBinaryDataEXT( VULKAN_HPP_NAMESPACE::ShaderEXT shader, size_t * pDataSize, void * pData, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
29171   {
29172     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29173     return static_cast<Result>( d.vkGetShaderBinaryDataEXT( static_cast<VkDevice>( m_device ), static_cast<VkShaderEXT>( shader ), pDataSize, pData ) );
29174   }
29175 
29176 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
29177   // wrapper function for command vkGetShaderBinaryDataEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetShaderBinaryDataEXT.html
29178   template <typename Uint8_tAllocator,
29179             typename Dispatch,
29180             typename std::enable_if<std::is_same<typename Uint8_tAllocator::value_type, uint8_t>::value, int>::type>
29181   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type
getShaderBinaryDataEXT(VULKAN_HPP_NAMESPACE::ShaderEXT shader,Dispatch const & d) const29182                        Device::getShaderBinaryDataEXT( VULKAN_HPP_NAMESPACE::ShaderEXT shader, Dispatch const & d ) const
29183   {
29184     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29185 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
29186     VULKAN_HPP_ASSERT( d.vkGetShaderBinaryDataEXT && "Function <vkGetShaderBinaryDataEXT> requires <VK_EXT_shader_object>" );
29187 #  endif
29188 
29189     std::vector<uint8_t, Uint8_tAllocator> data;
29190     size_t                                 dataSize;
29191     VULKAN_HPP_NAMESPACE::Result           result;
29192     do
29193     {
29194       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetShaderBinaryDataEXT( m_device, static_cast<VkShaderEXT>( shader ), &dataSize, nullptr ) );
29195       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
29196       {
29197         data.resize( dataSize );
29198         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
29199           d.vkGetShaderBinaryDataEXT( m_device, static_cast<VkShaderEXT>( shader ), &dataSize, reinterpret_cast<void *>( data.data() ) ) );
29200       }
29201     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
29202     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getShaderBinaryDataEXT" );
29203     VULKAN_HPP_ASSERT( dataSize <= data.size() );
29204     if ( dataSize < data.size() )
29205     {
29206       data.resize( dataSize );
29207     }
29208     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) );
29209   }
29210 
29211   // wrapper function for command vkGetShaderBinaryDataEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetShaderBinaryDataEXT.html
29212   template <typename Uint8_tAllocator,
29213             typename Dispatch,
29214             typename std::enable_if<std::is_same<typename Uint8_tAllocator::value_type, uint8_t>::value, int>::type>
29215   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<uint8_t, Uint8_tAllocator>>::type
getShaderBinaryDataEXT(VULKAN_HPP_NAMESPACE::ShaderEXT shader,Uint8_tAllocator & uint8_tAllocator,Dispatch const & d) const29216                        Device::getShaderBinaryDataEXT( VULKAN_HPP_NAMESPACE::ShaderEXT shader, Uint8_tAllocator & uint8_tAllocator, Dispatch const & d ) const
29217   {
29218     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29219 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
29220     VULKAN_HPP_ASSERT( d.vkGetShaderBinaryDataEXT && "Function <vkGetShaderBinaryDataEXT> requires <VK_EXT_shader_object>" );
29221 #  endif
29222 
29223     std::vector<uint8_t, Uint8_tAllocator> data( uint8_tAllocator );
29224     size_t                                 dataSize;
29225     VULKAN_HPP_NAMESPACE::Result           result;
29226     do
29227     {
29228       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetShaderBinaryDataEXT( m_device, static_cast<VkShaderEXT>( shader ), &dataSize, nullptr ) );
29229       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && dataSize )
29230       {
29231         data.resize( dataSize );
29232         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
29233           d.vkGetShaderBinaryDataEXT( m_device, static_cast<VkShaderEXT>( shader ), &dataSize, reinterpret_cast<void *>( data.data() ) ) );
29234       }
29235     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
29236     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getShaderBinaryDataEXT" );
29237     VULKAN_HPP_ASSERT( dataSize <= data.size() );
29238     if ( dataSize < data.size() )
29239     {
29240       data.resize( dataSize );
29241     }
29242     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data ) );
29243   }
29244 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
29245 
29246   // wrapper function for command vkCmdBindShadersEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindShadersEXT.html
29247   template <typename Dispatch>
bindShadersEXT(uint32_t stageCount,const VULKAN_HPP_NAMESPACE::ShaderStageFlagBits * pStages,const VULKAN_HPP_NAMESPACE::ShaderEXT * pShaders,Dispatch const & d) const29248   VULKAN_HPP_INLINE void CommandBuffer::bindShadersEXT( uint32_t                                          stageCount,
29249                                                         const VULKAN_HPP_NAMESPACE::ShaderStageFlagBits * pStages,
29250                                                         const VULKAN_HPP_NAMESPACE::ShaderEXT *           pShaders,
29251                                                         Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
29252   {
29253     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29254     d.vkCmdBindShadersEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
29255                            stageCount,
29256                            reinterpret_cast<const VkShaderStageFlagBits *>( pStages ),
29257                            reinterpret_cast<const VkShaderEXT *>( pShaders ) );
29258   }
29259 
29260 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
29261   // wrapper function for command vkCmdBindShadersEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindShadersEXT.html
29262   template <typename Dispatch>
bindShadersEXT(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderStageFlagBits> const & stages,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderEXT> const & shaders,Dispatch const & d) const29263   VULKAN_HPP_INLINE void CommandBuffer::bindShadersEXT( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderStageFlagBits> const & stages,
29264                                                         VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ShaderEXT> const &           shaders,
29265                                                         Dispatch const & d ) const VULKAN_HPP_NOEXCEPT_WHEN_NO_EXCEPTIONS
29266   {
29267     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29268 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
29269     VULKAN_HPP_ASSERT( d.vkCmdBindShadersEXT && "Function <vkCmdBindShadersEXT> requires <VK_EXT_shader_object>" );
29270 #  endif
29271 #  ifdef VULKAN_HPP_NO_EXCEPTIONS
29272     VULKAN_HPP_ASSERT( stages.size() == shaders.size() );
29273 #  else
29274     if ( stages.size() != shaders.size() )
29275     {
29276       throw LogicError( VULKAN_HPP_NAMESPACE_STRING "::CommandBuffer::bindShadersEXT: stages.size() != shaders.size()" );
29277     }
29278 #  endif /*VULKAN_HPP_NO_EXCEPTIONS*/
29279 
29280     d.vkCmdBindShadersEXT( m_commandBuffer,
29281                            stages.size(),
29282                            reinterpret_cast<const VkShaderStageFlagBits *>( stages.data() ),
29283                            reinterpret_cast<const VkShaderEXT *>( shaders.data() ) );
29284   }
29285 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
29286 
29287   // wrapper function for command vkCmdSetDepthClampRangeEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthClampRangeEXT.html
29288   template <typename Dispatch>
setDepthClampRangeEXT(VULKAN_HPP_NAMESPACE::DepthClampModeEXT depthClampMode,const VULKAN_HPP_NAMESPACE::DepthClampRangeEXT * pDepthClampRange,Dispatch const & d) const29289   VULKAN_HPP_INLINE void CommandBuffer::setDepthClampRangeEXT( VULKAN_HPP_NAMESPACE::DepthClampModeEXT          depthClampMode,
29290                                                                const VULKAN_HPP_NAMESPACE::DepthClampRangeEXT * pDepthClampRange,
29291                                                                Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
29292   {
29293     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29294     d.vkCmdSetDepthClampRangeEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
29295                                   static_cast<VkDepthClampModeEXT>( depthClampMode ),
29296                                   reinterpret_cast<const VkDepthClampRangeEXT *>( pDepthClampRange ) );
29297   }
29298 
29299 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
29300   // wrapper function for command vkCmdSetDepthClampRangeEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDepthClampRangeEXT.html
29301   template <typename Dispatch>
setDepthClampRangeEXT(VULKAN_HPP_NAMESPACE::DepthClampModeEXT depthClampMode,Optional<const VULKAN_HPP_NAMESPACE::DepthClampRangeEXT> depthClampRange,Dispatch const & d) const29302   VULKAN_HPP_INLINE void CommandBuffer::setDepthClampRangeEXT( VULKAN_HPP_NAMESPACE::DepthClampModeEXT                  depthClampMode,
29303                                                                Optional<const VULKAN_HPP_NAMESPACE::DepthClampRangeEXT> depthClampRange,
29304                                                                Dispatch const &                                         d ) const VULKAN_HPP_NOEXCEPT
29305   {
29306     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29307 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
29308     VULKAN_HPP_ASSERT( d.vkCmdSetDepthClampRangeEXT &&
29309                        "Function <vkCmdSetDepthClampRangeEXT> requires <VK_EXT_depth_clamp_control> or <VK_EXT_shader_object>" );
29310 #  endif
29311 
29312     d.vkCmdSetDepthClampRangeEXT(
29313       m_commandBuffer,
29314       static_cast<VkDepthClampModeEXT>( depthClampMode ),
29315       reinterpret_cast<const VkDepthClampRangeEXT *>( static_cast<const VULKAN_HPP_NAMESPACE::DepthClampRangeEXT *>( depthClampRange ) ) );
29316   }
29317 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
29318 
29319   //=== VK_KHR_pipeline_binary ===
29320 
29321   // wrapper function for command vkCreatePipelineBinariesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePipelineBinariesKHR.html
29322   template <typename Dispatch>
createPipelineBinariesKHR(const VULKAN_HPP_NAMESPACE::PipelineBinaryCreateInfoKHR * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::PipelineBinaryHandlesInfoKHR * pBinaries,Dispatch const & d) const29323   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::createPipelineBinariesKHR( const VULKAN_HPP_NAMESPACE::PipelineBinaryCreateInfoKHR * pCreateInfo,
29324                                                                                    const VULKAN_HPP_NAMESPACE::AllocationCallbacks *         pAllocator,
29325                                                                                    VULKAN_HPP_NAMESPACE::PipelineBinaryHandlesInfoKHR *      pBinaries,
29326                                                                                    Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
29327   {
29328     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29329     return static_cast<Result>( d.vkCreatePipelineBinariesKHR( static_cast<VkDevice>( m_device ),
29330                                                                reinterpret_cast<const VkPipelineBinaryCreateInfoKHR *>( pCreateInfo ),
29331                                                                reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
29332                                                                reinterpret_cast<VkPipelineBinaryHandlesInfoKHR *>( pBinaries ) ) );
29333   }
29334 
29335 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
29336   // wrapper function for command vkCreatePipelineBinariesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePipelineBinariesKHR.html
29337   template <typename PipelineBinaryKHRAllocator,
29338             typename Dispatch,
29339             typename std::enable_if<std::is_same<typename PipelineBinaryKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::PipelineBinaryKHR>::value, int>::type>
29340   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<VULKAN_HPP_NAMESPACE::PipelineBinaryKHR, PipelineBinaryKHRAllocator>>
createPipelineBinariesKHR(const VULKAN_HPP_NAMESPACE::PipelineBinaryCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const29341                                          Device::createPipelineBinariesKHR( const VULKAN_HPP_NAMESPACE::PipelineBinaryCreateInfoKHR & createInfo,
29342                                        Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
29343                                        Dispatch const &                                          d ) const
29344   {
29345     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29346 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
29347     VULKAN_HPP_ASSERT( d.vkCreatePipelineBinariesKHR && "Function <vkCreatePipelineBinariesKHR> requires <VK_KHR_pipeline_binary>" );
29348 #  endif
29349 
29350     std::vector<VULKAN_HPP_NAMESPACE::PipelineBinaryKHR, PipelineBinaryKHRAllocator> pipelineBinaries;
29351     VULKAN_HPP_NAMESPACE::PipelineBinaryHandlesInfoKHR                               binaries;
29352     VULKAN_HPP_NAMESPACE::Result                                                     result;
29353     if ( createInfo.pKeysAndDataInfo )
29354     {
29355       VULKAN_HPP_ASSERT( !createInfo.pipeline && !createInfo.pPipelineCreateInfo );
29356       pipelineBinaries.resize( createInfo.pKeysAndDataInfo->binaryCount );
29357       binaries.pipelineBinaryCount = createInfo.pKeysAndDataInfo->binaryCount;
29358       binaries.pPipelineBinaries   = pipelineBinaries.data();
29359       result                       = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreatePipelineBinariesKHR(
29360         m_device,
29361         reinterpret_cast<const VkPipelineBinaryCreateInfoKHR *>( &createInfo ),
29362         reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
29363         reinterpret_cast<VkPipelineBinaryHandlesInfoKHR *>( &binaries ) ) );
29364     }
29365     else
29366     {
29367       VULKAN_HPP_ASSERT( !createInfo.pipeline ^ !createInfo.pPipelineCreateInfo );
29368       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreatePipelineBinariesKHR(
29369         m_device,
29370         reinterpret_cast<const VkPipelineBinaryCreateInfoKHR *>( &createInfo ),
29371         reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
29372         reinterpret_cast<VkPipelineBinaryHandlesInfoKHR *>( &binaries ) ) );
29373       if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
29374       {
29375         pipelineBinaries.resize( binaries.pipelineBinaryCount );
29376         binaries.pPipelineBinaries = pipelineBinaries.data();
29377         result                     = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreatePipelineBinariesKHR(
29378           m_device,
29379           reinterpret_cast<const VkPipelineBinaryCreateInfoKHR *>( &createInfo ),
29380           reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
29381           reinterpret_cast<VkPipelineBinaryHandlesInfoKHR *>( &binaries ) ) );
29382       }
29383     }
29384 
29385     VULKAN_HPP_NAMESPACE::detail::resultCheck(
29386       result,
29387       VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineBinariesKHR",
29388       { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eIncomplete, VULKAN_HPP_NAMESPACE::Result::ePipelineBinaryMissingKHR } );
29389 
29390     return ResultValue<std::vector<VULKAN_HPP_NAMESPACE::PipelineBinaryKHR, PipelineBinaryKHRAllocator>>( result, std::move( pipelineBinaries ) );
29391   }
29392 
29393   // wrapper function for command vkCreatePipelineBinariesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePipelineBinariesKHR.html
29394   template <typename PipelineBinaryKHRAllocator,
29395             typename Dispatch,
29396             typename std::enable_if<std::is_same<typename PipelineBinaryKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::PipelineBinaryKHR>::value, int>::type>
29397   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<VULKAN_HPP_NAMESPACE::PipelineBinaryKHR, PipelineBinaryKHRAllocator>>
createPipelineBinariesKHR(const VULKAN_HPP_NAMESPACE::PipelineBinaryCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,PipelineBinaryKHRAllocator & pipelineBinaryKHRAllocator,Dispatch const & d) const29398                                          Device::createPipelineBinariesKHR( const VULKAN_HPP_NAMESPACE::PipelineBinaryCreateInfoKHR & createInfo,
29399                                        Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
29400                                        PipelineBinaryKHRAllocator &                              pipelineBinaryKHRAllocator,
29401                                        Dispatch const &                                          d ) const
29402   {
29403     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29404 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
29405     VULKAN_HPP_ASSERT( d.vkCreatePipelineBinariesKHR && "Function <vkCreatePipelineBinariesKHR> requires <VK_KHR_pipeline_binary>" );
29406 #  endif
29407 
29408     std::vector<VULKAN_HPP_NAMESPACE::PipelineBinaryKHR, PipelineBinaryKHRAllocator> pipelineBinaries( pipelineBinaryKHRAllocator );
29409     VULKAN_HPP_NAMESPACE::PipelineBinaryHandlesInfoKHR                               binaries;
29410     VULKAN_HPP_NAMESPACE::Result                                                     result;
29411     if ( createInfo.pKeysAndDataInfo )
29412     {
29413       VULKAN_HPP_ASSERT( !createInfo.pipeline && !createInfo.pPipelineCreateInfo );
29414       pipelineBinaries.resize( createInfo.pKeysAndDataInfo->binaryCount );
29415       binaries.pipelineBinaryCount = createInfo.pKeysAndDataInfo->binaryCount;
29416       binaries.pPipelineBinaries   = pipelineBinaries.data();
29417       result                       = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreatePipelineBinariesKHR(
29418         m_device,
29419         reinterpret_cast<const VkPipelineBinaryCreateInfoKHR *>( &createInfo ),
29420         reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
29421         reinterpret_cast<VkPipelineBinaryHandlesInfoKHR *>( &binaries ) ) );
29422     }
29423     else
29424     {
29425       VULKAN_HPP_ASSERT( !createInfo.pipeline ^ !createInfo.pPipelineCreateInfo );
29426       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreatePipelineBinariesKHR(
29427         m_device,
29428         reinterpret_cast<const VkPipelineBinaryCreateInfoKHR *>( &createInfo ),
29429         reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
29430         reinterpret_cast<VkPipelineBinaryHandlesInfoKHR *>( &binaries ) ) );
29431       if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
29432       {
29433         pipelineBinaries.resize( binaries.pipelineBinaryCount );
29434         binaries.pPipelineBinaries = pipelineBinaries.data();
29435         result                     = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreatePipelineBinariesKHR(
29436           m_device,
29437           reinterpret_cast<const VkPipelineBinaryCreateInfoKHR *>( &createInfo ),
29438           reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
29439           reinterpret_cast<VkPipelineBinaryHandlesInfoKHR *>( &binaries ) ) );
29440       }
29441     }
29442 
29443     VULKAN_HPP_NAMESPACE::detail::resultCheck(
29444       result,
29445       VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineBinariesKHR",
29446       { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eIncomplete, VULKAN_HPP_NAMESPACE::Result::ePipelineBinaryMissingKHR } );
29447 
29448     return ResultValue<std::vector<VULKAN_HPP_NAMESPACE::PipelineBinaryKHR, PipelineBinaryKHRAllocator>>( result, std::move( pipelineBinaries ) );
29449   }
29450 
29451 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
29452   // wrapper function for command vkCreatePipelineBinariesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePipelineBinariesKHR.html
29453   template <typename Dispatch,
29454             typename PipelineBinaryKHRAllocator,
29455             typename std::enable_if<
29456               std::is_same<typename PipelineBinaryKHRAllocator::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineBinaryKHR, Dispatch>>::value,
29457               int>::type>
29458   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineBinaryKHR, Dispatch>, PipelineBinaryKHRAllocator>>
createPipelineBinariesKHRUnique(const VULKAN_HPP_NAMESPACE::PipelineBinaryCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const29459                                          Device::createPipelineBinariesKHRUnique( const VULKAN_HPP_NAMESPACE::PipelineBinaryCreateInfoKHR & createInfo,
29460                                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
29461                                              Dispatch const &                                          d ) const
29462   {
29463     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29464 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
29465     VULKAN_HPP_ASSERT( d.vkCreatePipelineBinariesKHR && "Function <vkCreatePipelineBinariesKHR> requires <VK_KHR_pipeline_binary>" );
29466 #    endif
29467 
29468     std::vector<VULKAN_HPP_NAMESPACE::PipelineBinaryKHR> pipelineBinaries;
29469     VULKAN_HPP_NAMESPACE::PipelineBinaryHandlesInfoKHR   binaries;
29470     VULKAN_HPP_NAMESPACE::Result                         result;
29471     if ( createInfo.pKeysAndDataInfo )
29472     {
29473       VULKAN_HPP_ASSERT( !createInfo.pipeline && !createInfo.pPipelineCreateInfo );
29474       pipelineBinaries.resize( createInfo.pKeysAndDataInfo->binaryCount );
29475       binaries.pipelineBinaryCount = createInfo.pKeysAndDataInfo->binaryCount;
29476       binaries.pPipelineBinaries   = pipelineBinaries.data();
29477       result                       = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreatePipelineBinariesKHR(
29478         m_device,
29479         reinterpret_cast<const VkPipelineBinaryCreateInfoKHR *>( &createInfo ),
29480         reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
29481         reinterpret_cast<VkPipelineBinaryHandlesInfoKHR *>( &binaries ) ) );
29482     }
29483     else
29484     {
29485       VULKAN_HPP_ASSERT( !createInfo.pipeline ^ !createInfo.pPipelineCreateInfo );
29486       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreatePipelineBinariesKHR(
29487         m_device,
29488         reinterpret_cast<const VkPipelineBinaryCreateInfoKHR *>( &createInfo ),
29489         reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
29490         reinterpret_cast<VkPipelineBinaryHandlesInfoKHR *>( &binaries ) ) );
29491       if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
29492       {
29493         pipelineBinaries.resize( binaries.pipelineBinaryCount );
29494         binaries.pPipelineBinaries = pipelineBinaries.data();
29495         result                     = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreatePipelineBinariesKHR(
29496           m_device,
29497           reinterpret_cast<const VkPipelineBinaryCreateInfoKHR *>( &createInfo ),
29498           reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
29499           reinterpret_cast<VkPipelineBinaryHandlesInfoKHR *>( &binaries ) ) );
29500       }
29501     }
29502 
29503     VULKAN_HPP_NAMESPACE::detail::resultCheck(
29504       result,
29505       VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineBinariesKHRUnique",
29506       { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eIncomplete, VULKAN_HPP_NAMESPACE::Result::ePipelineBinaryMissingKHR } );
29507     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineBinaryKHR, Dispatch>, PipelineBinaryKHRAllocator> uniquePipelineBinaries;
29508     uniquePipelineBinaries.reserve( pipelineBinaries.size() );
29509     detail::ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
29510     for ( auto const & pipelineBinary : pipelineBinaries )
29511     {
29512       uniquePipelineBinaries.push_back( UniqueHandle<PipelineBinaryKHR, Dispatch>( pipelineBinary, deleter ) );
29513     }
29514     return ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineBinaryKHR, Dispatch>, PipelineBinaryKHRAllocator>>(
29515       result, std::move( uniquePipelineBinaries ) );
29516   }
29517 
29518   // wrapper function for command vkCreatePipelineBinariesKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreatePipelineBinariesKHR.html
29519   template <typename Dispatch,
29520             typename PipelineBinaryKHRAllocator,
29521             typename std::enable_if<
29522               std::is_same<typename PipelineBinaryKHRAllocator::value_type, UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineBinaryKHR, Dispatch>>::value,
29523               int>::type>
29524   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineBinaryKHR, Dispatch>, PipelineBinaryKHRAllocator>>
createPipelineBinariesKHRUnique(const VULKAN_HPP_NAMESPACE::PipelineBinaryCreateInfoKHR & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,PipelineBinaryKHRAllocator & pipelineBinaryKHRAllocator,Dispatch const & d) const29525                                          Device::createPipelineBinariesKHRUnique( const VULKAN_HPP_NAMESPACE::PipelineBinaryCreateInfoKHR & createInfo,
29526                                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
29527                                              PipelineBinaryKHRAllocator &                              pipelineBinaryKHRAllocator,
29528                                              Dispatch const &                                          d ) const
29529   {
29530     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29531 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
29532     VULKAN_HPP_ASSERT( d.vkCreatePipelineBinariesKHR && "Function <vkCreatePipelineBinariesKHR> requires <VK_KHR_pipeline_binary>" );
29533 #    endif
29534 
29535     std::vector<VULKAN_HPP_NAMESPACE::PipelineBinaryKHR> pipelineBinaries;
29536     VULKAN_HPP_NAMESPACE::PipelineBinaryHandlesInfoKHR   binaries;
29537     VULKAN_HPP_NAMESPACE::Result                         result;
29538     if ( createInfo.pKeysAndDataInfo )
29539     {
29540       VULKAN_HPP_ASSERT( !createInfo.pipeline && !createInfo.pPipelineCreateInfo );
29541       pipelineBinaries.resize( createInfo.pKeysAndDataInfo->binaryCount );
29542       binaries.pipelineBinaryCount = createInfo.pKeysAndDataInfo->binaryCount;
29543       binaries.pPipelineBinaries   = pipelineBinaries.data();
29544       result                       = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreatePipelineBinariesKHR(
29545         m_device,
29546         reinterpret_cast<const VkPipelineBinaryCreateInfoKHR *>( &createInfo ),
29547         reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
29548         reinterpret_cast<VkPipelineBinaryHandlesInfoKHR *>( &binaries ) ) );
29549     }
29550     else
29551     {
29552       VULKAN_HPP_ASSERT( !createInfo.pipeline ^ !createInfo.pPipelineCreateInfo );
29553       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreatePipelineBinariesKHR(
29554         m_device,
29555         reinterpret_cast<const VkPipelineBinaryCreateInfoKHR *>( &createInfo ),
29556         reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
29557         reinterpret_cast<VkPipelineBinaryHandlesInfoKHR *>( &binaries ) ) );
29558       if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
29559       {
29560         pipelineBinaries.resize( binaries.pipelineBinaryCount );
29561         binaries.pPipelineBinaries = pipelineBinaries.data();
29562         result                     = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreatePipelineBinariesKHR(
29563           m_device,
29564           reinterpret_cast<const VkPipelineBinaryCreateInfoKHR *>( &createInfo ),
29565           reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
29566           reinterpret_cast<VkPipelineBinaryHandlesInfoKHR *>( &binaries ) ) );
29567       }
29568     }
29569 
29570     VULKAN_HPP_NAMESPACE::detail::resultCheck(
29571       result,
29572       VULKAN_HPP_NAMESPACE_STRING "::Device::createPipelineBinariesKHRUnique",
29573       { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eIncomplete, VULKAN_HPP_NAMESPACE::Result::ePipelineBinaryMissingKHR } );
29574     std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineBinaryKHR, Dispatch>, PipelineBinaryKHRAllocator> uniquePipelineBinaries(
29575       pipelineBinaryKHRAllocator );
29576     uniquePipelineBinaries.reserve( pipelineBinaries.size() );
29577     detail::ObjectDestroy<Device, Dispatch> deleter( *this, allocator, d );
29578     for ( auto const & pipelineBinary : pipelineBinaries )
29579     {
29580       uniquePipelineBinaries.push_back( UniqueHandle<PipelineBinaryKHR, Dispatch>( pipelineBinary, deleter ) );
29581     }
29582     return ResultValue<std::vector<UniqueHandle<VULKAN_HPP_NAMESPACE::PipelineBinaryKHR, Dispatch>, PipelineBinaryKHRAllocator>>(
29583       result, std::move( uniquePipelineBinaries ) );
29584   }
29585 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
29586 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
29587 
29588   // wrapper function for command vkDestroyPipelineBinaryKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPipelineBinaryKHR.html
29589   template <typename Dispatch>
destroyPipelineBinaryKHR(VULKAN_HPP_NAMESPACE::PipelineBinaryKHR pipelineBinary,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const29590   VULKAN_HPP_INLINE void Device::destroyPipelineBinaryKHR( VULKAN_HPP_NAMESPACE::PipelineBinaryKHR           pipelineBinary,
29591                                                            const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
29592                                                            Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
29593   {
29594     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29595     d.vkDestroyPipelineBinaryKHR(
29596       static_cast<VkDevice>( m_device ), static_cast<VkPipelineBinaryKHR>( pipelineBinary ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
29597   }
29598 
29599 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
29600   // wrapper function for command vkDestroyPipelineBinaryKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPipelineBinaryKHR.html
29601   template <typename Dispatch>
destroyPipelineBinaryKHR(VULKAN_HPP_NAMESPACE::PipelineBinaryKHR pipelineBinary,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const29602   VULKAN_HPP_INLINE void Device::destroyPipelineBinaryKHR( VULKAN_HPP_NAMESPACE::PipelineBinaryKHR                   pipelineBinary,
29603                                                            Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
29604                                                            Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
29605   {
29606     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29607 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
29608     VULKAN_HPP_ASSERT( d.vkDestroyPipelineBinaryKHR && "Function <vkDestroyPipelineBinaryKHR> requires <VK_KHR_pipeline_binary>" );
29609 #  endif
29610 
29611     d.vkDestroyPipelineBinaryKHR(
29612       m_device,
29613       static_cast<VkPipelineBinaryKHR>( pipelineBinary ),
29614       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
29615   }
29616 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
29617 
29618   // wrapper function for command vkDestroyPipelineBinaryKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPipelineBinaryKHR.html
29619   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineBinaryKHR pipelineBinary,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const29620   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineBinaryKHR           pipelineBinary,
29621                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
29622                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
29623   {
29624     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29625     d.vkDestroyPipelineBinaryKHR(
29626       static_cast<VkDevice>( m_device ), static_cast<VkPipelineBinaryKHR>( pipelineBinary ), reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
29627   }
29628 
29629 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
29630   // wrapper function for command vkDestroyPipelineBinaryKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyPipelineBinaryKHR.html
29631   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::PipelineBinaryKHR pipelineBinary,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const29632   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::PipelineBinaryKHR                   pipelineBinary,
29633                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
29634                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
29635   {
29636     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29637 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
29638     VULKAN_HPP_ASSERT( d.vkDestroyPipelineBinaryKHR && "Function <vkDestroyPipelineBinaryKHR> requires <VK_KHR_pipeline_binary>" );
29639 #  endif
29640 
29641     d.vkDestroyPipelineBinaryKHR(
29642       m_device,
29643       static_cast<VkPipelineBinaryKHR>( pipelineBinary ),
29644       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
29645   }
29646 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
29647 
29648   // wrapper function for command vkGetPipelineKeyKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineKeyKHR.html
29649   template <typename Dispatch>
getPipelineKeyKHR(const VULKAN_HPP_NAMESPACE::PipelineCreateInfoKHR * pPipelineCreateInfo,VULKAN_HPP_NAMESPACE::PipelineBinaryKeyKHR * pPipelineKey,Dispatch const & d) const29650   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPipelineKeyKHR( const VULKAN_HPP_NAMESPACE::PipelineCreateInfoKHR * pPipelineCreateInfo,
29651                                                                            VULKAN_HPP_NAMESPACE::PipelineBinaryKeyKHR *        pPipelineKey,
29652                                                                            Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
29653   {
29654     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29655     return static_cast<Result>( d.vkGetPipelineKeyKHR( static_cast<VkDevice>( m_device ),
29656                                                        reinterpret_cast<const VkPipelineCreateInfoKHR *>( pPipelineCreateInfo ),
29657                                                        reinterpret_cast<VkPipelineBinaryKeyKHR *>( pPipelineKey ) ) );
29658   }
29659 
29660 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
29661   // wrapper function for command vkGetPipelineKeyKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineKeyKHR.html
29662   template <typename Dispatch>
29663   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::PipelineBinaryKeyKHR>::type
getPipelineKeyKHR(Optional<const VULKAN_HPP_NAMESPACE::PipelineCreateInfoKHR> pipelineCreateInfo,Dispatch const & d) const29664                        Device::getPipelineKeyKHR( Optional<const VULKAN_HPP_NAMESPACE::PipelineCreateInfoKHR> pipelineCreateInfo, Dispatch const & d ) const
29665   {
29666     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29667 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
29668     VULKAN_HPP_ASSERT( d.vkGetPipelineKeyKHR && "Function <vkGetPipelineKeyKHR> requires <VK_KHR_pipeline_binary>" );
29669 #  endif
29670 
29671     VULKAN_HPP_NAMESPACE::PipelineBinaryKeyKHR pipelineKey;
29672     VULKAN_HPP_NAMESPACE::Result               result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPipelineKeyKHR(
29673       m_device,
29674       reinterpret_cast<const VkPipelineCreateInfoKHR *>( static_cast<const VULKAN_HPP_NAMESPACE::PipelineCreateInfoKHR *>( pipelineCreateInfo ) ),
29675       reinterpret_cast<VkPipelineBinaryKeyKHR *>( &pipelineKey ) ) );
29676     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineKeyKHR" );
29677 
29678     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( pipelineKey ) );
29679   }
29680 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
29681 
29682   // wrapper function for command vkGetPipelineBinaryDataKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineBinaryDataKHR.html
29683   template <typename Dispatch>
getPipelineBinaryDataKHR(const VULKAN_HPP_NAMESPACE::PipelineBinaryDataInfoKHR * pInfo,VULKAN_HPP_NAMESPACE::PipelineBinaryKeyKHR * pPipelineBinaryKey,size_t * pPipelineBinaryDataSize,void * pPipelineBinaryData,Dispatch const & d) const29684   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getPipelineBinaryDataKHR( const VULKAN_HPP_NAMESPACE::PipelineBinaryDataInfoKHR * pInfo,
29685                                                                                   VULKAN_HPP_NAMESPACE::PipelineBinaryKeyKHR *            pPipelineBinaryKey,
29686                                                                                   size_t *         pPipelineBinaryDataSize,
29687                                                                                   void *           pPipelineBinaryData,
29688                                                                                   Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
29689   {
29690     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29691     return static_cast<Result>( d.vkGetPipelineBinaryDataKHR( static_cast<VkDevice>( m_device ),
29692                                                               reinterpret_cast<const VkPipelineBinaryDataInfoKHR *>( pInfo ),
29693                                                               reinterpret_cast<VkPipelineBinaryKeyKHR *>( pPipelineBinaryKey ),
29694                                                               pPipelineBinaryDataSize,
29695                                                               pPipelineBinaryData ) );
29696   }
29697 
29698 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
29699   // wrapper function for command vkGetPipelineBinaryDataKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineBinaryDataKHR.html
29700   template <typename Uint8_tAllocator,
29701             typename Dispatch,
29702             typename std::enable_if<std::is_same<typename Uint8_tAllocator::value_type, uint8_t>::value, int>::type>
29703   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
29704     typename ResultValueType<std::pair<VULKAN_HPP_NAMESPACE::PipelineBinaryKeyKHR, std::vector<uint8_t, Uint8_tAllocator>>>::type
getPipelineBinaryDataKHR(const VULKAN_HPP_NAMESPACE::PipelineBinaryDataInfoKHR & info,Dispatch const & d) const29705     Device::getPipelineBinaryDataKHR( const VULKAN_HPP_NAMESPACE::PipelineBinaryDataInfoKHR & info, Dispatch const & d ) const
29706   {
29707     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29708 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
29709     VULKAN_HPP_ASSERT( d.vkGetPipelineBinaryDataKHR && "Function <vkGetPipelineBinaryDataKHR> requires <VK_KHR_pipeline_binary>" );
29710 #  endif
29711 
29712     std::pair<VULKAN_HPP_NAMESPACE::PipelineBinaryKeyKHR, std::vector<uint8_t, Uint8_tAllocator>> data_;
29713     VULKAN_HPP_NAMESPACE::PipelineBinaryKeyKHR &                                                  pipelineBinaryKey  = data_.first;
29714     std::vector<uint8_t, Uint8_tAllocator> &                                                      pipelineBinaryData = data_.second;
29715     size_t                                                                                        pipelineBinaryDataSize;
29716     VULKAN_HPP_NAMESPACE::Result                                                                  result =
29717       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPipelineBinaryDataKHR( m_device,
29718                                                                                reinterpret_cast<const VkPipelineBinaryDataInfoKHR *>( &info ),
29719                                                                                reinterpret_cast<VkPipelineBinaryKeyKHR *>( &pipelineBinaryKey ),
29720                                                                                &pipelineBinaryDataSize,
29721                                                                                nullptr ) );
29722     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
29723     {
29724       pipelineBinaryData.resize( pipelineBinaryDataSize );
29725       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPipelineBinaryDataKHR( m_device,
29726                                                                                         reinterpret_cast<const VkPipelineBinaryDataInfoKHR *>( &info ),
29727                                                                                         reinterpret_cast<VkPipelineBinaryKeyKHR *>( &pipelineBinaryKey ),
29728                                                                                         &pipelineBinaryDataSize,
29729                                                                                         reinterpret_cast<void *>( pipelineBinaryData.data() ) ) );
29730     }
29731 
29732     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineBinaryDataKHR" );
29733 
29734     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data_ ) );
29735   }
29736 
29737   // wrapper function for command vkGetPipelineBinaryDataKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPipelineBinaryDataKHR.html
29738   template <typename Uint8_tAllocator,
29739             typename Dispatch,
29740             typename std::enable_if<std::is_same<typename Uint8_tAllocator::value_type, uint8_t>::value, int>::type>
29741   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
29742     typename ResultValueType<std::pair<VULKAN_HPP_NAMESPACE::PipelineBinaryKeyKHR, std::vector<uint8_t, Uint8_tAllocator>>>::type
getPipelineBinaryDataKHR(const VULKAN_HPP_NAMESPACE::PipelineBinaryDataInfoKHR & info,Uint8_tAllocator & uint8_tAllocator,Dispatch const & d) const29743     Device::getPipelineBinaryDataKHR( const VULKAN_HPP_NAMESPACE::PipelineBinaryDataInfoKHR & info,
29744                                       Uint8_tAllocator &                                      uint8_tAllocator,
29745                                       Dispatch const &                                        d ) const
29746   {
29747     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29748 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
29749     VULKAN_HPP_ASSERT( d.vkGetPipelineBinaryDataKHR && "Function <vkGetPipelineBinaryDataKHR> requires <VK_KHR_pipeline_binary>" );
29750 #  endif
29751 
29752     std::pair<VULKAN_HPP_NAMESPACE::PipelineBinaryKeyKHR, std::vector<uint8_t, Uint8_tAllocator>> data_(
29753       std::piecewise_construct, std::forward_as_tuple(), std::forward_as_tuple( uint8_tAllocator ) );
29754     VULKAN_HPP_NAMESPACE::PipelineBinaryKeyKHR & pipelineBinaryKey  = data_.first;
29755     std::vector<uint8_t, Uint8_tAllocator> &     pipelineBinaryData = data_.second;
29756     size_t                                       pipelineBinaryDataSize;
29757     VULKAN_HPP_NAMESPACE::Result                 result =
29758       static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPipelineBinaryDataKHR( m_device,
29759                                                                                reinterpret_cast<const VkPipelineBinaryDataInfoKHR *>( &info ),
29760                                                                                reinterpret_cast<VkPipelineBinaryKeyKHR *>( &pipelineBinaryKey ),
29761                                                                                &pipelineBinaryDataSize,
29762                                                                                nullptr ) );
29763     if ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess )
29764     {
29765       pipelineBinaryData.resize( pipelineBinaryDataSize );
29766       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPipelineBinaryDataKHR( m_device,
29767                                                                                         reinterpret_cast<const VkPipelineBinaryDataInfoKHR *>( &info ),
29768                                                                                         reinterpret_cast<VkPipelineBinaryKeyKHR *>( &pipelineBinaryKey ),
29769                                                                                         &pipelineBinaryDataSize,
29770                                                                                         reinterpret_cast<void *>( pipelineBinaryData.data() ) ) );
29771     }
29772 
29773     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getPipelineBinaryDataKHR" );
29774 
29775     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data_ ) );
29776   }
29777 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
29778 
29779   // wrapper function for command vkReleaseCapturedPipelineDataKHR, see
29780   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseCapturedPipelineDataKHR.html
29781   template <typename Dispatch>
releaseCapturedPipelineDataKHR(const VULKAN_HPP_NAMESPACE::ReleaseCapturedPipelineDataInfoKHR * pInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const29782   VULKAN_HPP_INLINE Result Device::releaseCapturedPipelineDataKHR( const VULKAN_HPP_NAMESPACE::ReleaseCapturedPipelineDataInfoKHR * pInfo,
29783                                                                    const VULKAN_HPP_NAMESPACE::AllocationCallbacks *                pAllocator,
29784                                                                    Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
29785   {
29786     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29787     return static_cast<Result>( d.vkReleaseCapturedPipelineDataKHR( static_cast<VkDevice>( m_device ),
29788                                                                     reinterpret_cast<const VkReleaseCapturedPipelineDataInfoKHR *>( pInfo ),
29789                                                                     reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) ) );
29790   }
29791 
29792 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
29793   // wrapper function for command vkReleaseCapturedPipelineDataKHR, see
29794   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkReleaseCapturedPipelineDataKHR.html
29795   template <typename Dispatch>
releaseCapturedPipelineDataKHR(const VULKAN_HPP_NAMESPACE::ReleaseCapturedPipelineDataInfoKHR & info,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const29796   VULKAN_HPP_INLINE void Device::releaseCapturedPipelineDataKHR( const VULKAN_HPP_NAMESPACE::ReleaseCapturedPipelineDataInfoKHR & info,
29797                                                                  Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>        allocator,
29798                                                                  Dispatch const &                                                 d ) const VULKAN_HPP_NOEXCEPT
29799   {
29800     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29801 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
29802     VULKAN_HPP_ASSERT( d.vkReleaseCapturedPipelineDataKHR && "Function <vkReleaseCapturedPipelineDataKHR> requires <VK_KHR_pipeline_binary>" );
29803 #  endif
29804 
29805     d.vkReleaseCapturedPipelineDataKHR(
29806       m_device,
29807       reinterpret_cast<const VkReleaseCapturedPipelineDataInfoKHR *>( &info ),
29808       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
29809   }
29810 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
29811 
29812   //=== VK_QCOM_tile_properties ===
29813 
29814   // wrapper function for command vkGetFramebufferTilePropertiesQCOM, see
29815   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFramebufferTilePropertiesQCOM.html
29816   template <typename Dispatch>
getFramebufferTilePropertiesQCOM(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,uint32_t * pPropertiesCount,VULKAN_HPP_NAMESPACE::TilePropertiesQCOM * pProperties,Dispatch const & d) const29817   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getFramebufferTilePropertiesQCOM( VULKAN_HPP_NAMESPACE::Framebuffer          framebuffer,
29818                                                                                           uint32_t *                                 pPropertiesCount,
29819                                                                                           VULKAN_HPP_NAMESPACE::TilePropertiesQCOM * pProperties,
29820                                                                                           Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
29821   {
29822     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29823     return static_cast<Result>( d.vkGetFramebufferTilePropertiesQCOM( static_cast<VkDevice>( m_device ),
29824                                                                       static_cast<VkFramebuffer>( framebuffer ),
29825                                                                       pPropertiesCount,
29826                                                                       reinterpret_cast<VkTilePropertiesQCOM *>( pProperties ) ) );
29827   }
29828 
29829 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
29830   // wrapper function for command vkGetFramebufferTilePropertiesQCOM, see
29831   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFramebufferTilePropertiesQCOM.html
29832   template <typename TilePropertiesQCOMAllocator,
29833             typename Dispatch,
29834             typename std::enable_if<std::is_same<typename TilePropertiesQCOMAllocator::value_type, VULKAN_HPP_NAMESPACE::TilePropertiesQCOM>::value, int>::type>
29835   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::TilePropertiesQCOM, TilePropertiesQCOMAllocator>>::type
getFramebufferTilePropertiesQCOM(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,Dispatch const & d) const29836                        Device::getFramebufferTilePropertiesQCOM( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer, Dispatch const & d ) const
29837   {
29838     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29839 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
29840     VULKAN_HPP_ASSERT( d.vkGetFramebufferTilePropertiesQCOM && "Function <vkGetFramebufferTilePropertiesQCOM> requires <VK_QCOM_tile_properties>" );
29841 #  endif
29842 
29843     std::vector<VULKAN_HPP_NAMESPACE::TilePropertiesQCOM, TilePropertiesQCOMAllocator> properties;
29844     uint32_t                                                                           propertiesCount;
29845     VULKAN_HPP_NAMESPACE::Result                                                       result;
29846     do
29847     {
29848       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
29849         d.vkGetFramebufferTilePropertiesQCOM( m_device, static_cast<VkFramebuffer>( framebuffer ), &propertiesCount, nullptr ) );
29850       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertiesCount )
29851       {
29852         properties.resize( propertiesCount );
29853         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetFramebufferTilePropertiesQCOM(
29854           m_device, static_cast<VkFramebuffer>( framebuffer ), &propertiesCount, reinterpret_cast<VkTilePropertiesQCOM *>( properties.data() ) ) );
29855       }
29856     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
29857 
29858     VULKAN_HPP_ASSERT( propertiesCount <= properties.size() );
29859     if ( propertiesCount < properties.size() )
29860     {
29861       properties.resize( propertiesCount );
29862     }
29863     return properties;
29864   }
29865 
29866   // wrapper function for command vkGetFramebufferTilePropertiesQCOM, see
29867   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetFramebufferTilePropertiesQCOM.html
29868   template <typename TilePropertiesQCOMAllocator,
29869             typename Dispatch,
29870             typename std::enable_if<std::is_same<typename TilePropertiesQCOMAllocator::value_type, VULKAN_HPP_NAMESPACE::TilePropertiesQCOM>::value, int>::type>
29871   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::TilePropertiesQCOM, TilePropertiesQCOMAllocator>>::type
getFramebufferTilePropertiesQCOM(VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,TilePropertiesQCOMAllocator & tilePropertiesQCOMAllocator,Dispatch const & d) const29872                        Device::getFramebufferTilePropertiesQCOM( VULKAN_HPP_NAMESPACE::Framebuffer framebuffer,
29873                                               TilePropertiesQCOMAllocator &     tilePropertiesQCOMAllocator,
29874                                               Dispatch const &                  d ) const
29875   {
29876     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29877 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
29878     VULKAN_HPP_ASSERT( d.vkGetFramebufferTilePropertiesQCOM && "Function <vkGetFramebufferTilePropertiesQCOM> requires <VK_QCOM_tile_properties>" );
29879 #  endif
29880 
29881     std::vector<VULKAN_HPP_NAMESPACE::TilePropertiesQCOM, TilePropertiesQCOMAllocator> properties( tilePropertiesQCOMAllocator );
29882     uint32_t                                                                           propertiesCount;
29883     VULKAN_HPP_NAMESPACE::Result                                                       result;
29884     do
29885     {
29886       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
29887         d.vkGetFramebufferTilePropertiesQCOM( m_device, static_cast<VkFramebuffer>( framebuffer ), &propertiesCount, nullptr ) );
29888       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertiesCount )
29889       {
29890         properties.resize( propertiesCount );
29891         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetFramebufferTilePropertiesQCOM(
29892           m_device, static_cast<VkFramebuffer>( framebuffer ), &propertiesCount, reinterpret_cast<VkTilePropertiesQCOM *>( properties.data() ) ) );
29893       }
29894     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
29895 
29896     VULKAN_HPP_ASSERT( propertiesCount <= properties.size() );
29897     if ( propertiesCount < properties.size() )
29898     {
29899       properties.resize( propertiesCount );
29900     }
29901     return properties;
29902   }
29903 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
29904 
29905   // wrapper function for command vkGetDynamicRenderingTilePropertiesQCOM, see
29906   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDynamicRenderingTilePropertiesQCOM.html
29907   template <typename Dispatch>
getDynamicRenderingTilePropertiesQCOM(const VULKAN_HPP_NAMESPACE::RenderingInfo * pRenderingInfo,VULKAN_HPP_NAMESPACE::TilePropertiesQCOM * pProperties,Dispatch const & d) const29908   VULKAN_HPP_INLINE Result Device::getDynamicRenderingTilePropertiesQCOM( const VULKAN_HPP_NAMESPACE::RenderingInfo * pRenderingInfo,
29909                                                                           VULKAN_HPP_NAMESPACE::TilePropertiesQCOM *  pProperties,
29910                                                                           Dispatch const &                            d ) const VULKAN_HPP_NOEXCEPT
29911   {
29912     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29913     return static_cast<Result>( d.vkGetDynamicRenderingTilePropertiesQCOM( static_cast<VkDevice>( m_device ),
29914                                                                            reinterpret_cast<const VkRenderingInfo *>( pRenderingInfo ),
29915                                                                            reinterpret_cast<VkTilePropertiesQCOM *>( pProperties ) ) );
29916   }
29917 
29918 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
29919   // wrapper function for command vkGetDynamicRenderingTilePropertiesQCOM, see
29920   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetDynamicRenderingTilePropertiesQCOM.html
29921   template <typename Dispatch>
29922   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::TilePropertiesQCOM
getDynamicRenderingTilePropertiesQCOM(const VULKAN_HPP_NAMESPACE::RenderingInfo & renderingInfo,Dispatch const & d) const29923     Device::getDynamicRenderingTilePropertiesQCOM( const VULKAN_HPP_NAMESPACE::RenderingInfo & renderingInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
29924   {
29925     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29926 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
29927     VULKAN_HPP_ASSERT( d.vkGetDynamicRenderingTilePropertiesQCOM && "Function <vkGetDynamicRenderingTilePropertiesQCOM> requires <VK_QCOM_tile_properties>" );
29928 #  endif
29929 
29930     VULKAN_HPP_NAMESPACE::TilePropertiesQCOM properties;
29931     d.vkGetDynamicRenderingTilePropertiesQCOM(
29932       m_device, reinterpret_cast<const VkRenderingInfo *>( &renderingInfo ), reinterpret_cast<VkTilePropertiesQCOM *>( &properties ) );
29933 
29934     return properties;
29935   }
29936 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
29937 
29938   //=== VK_NV_cooperative_vector ===
29939 
29940   // wrapper function for command vkGetPhysicalDeviceCooperativeVectorPropertiesNV, see
29941   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeVectorPropertiesNV.html
29942   template <typename Dispatch>
getCooperativeVectorPropertiesNV(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::CooperativeVectorPropertiesNV * pProperties,Dispatch const & d) const29943   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getCooperativeVectorPropertiesNV(
29944     uint32_t * pPropertyCount, VULKAN_HPP_NAMESPACE::CooperativeVectorPropertiesNV * pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
29945   {
29946     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29947     return static_cast<Result>( d.vkGetPhysicalDeviceCooperativeVectorPropertiesNV(
29948       static_cast<VkPhysicalDevice>( m_physicalDevice ), pPropertyCount, reinterpret_cast<VkCooperativeVectorPropertiesNV *>( pProperties ) ) );
29949   }
29950 
29951 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
29952   // wrapper function for command vkGetPhysicalDeviceCooperativeVectorPropertiesNV, see
29953   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeVectorPropertiesNV.html
29954   template <typename CooperativeVectorPropertiesNVAllocator,
29955             typename Dispatch,
29956             typename std::enable_if<
29957               std::is_same<typename CooperativeVectorPropertiesNVAllocator::value_type, VULKAN_HPP_NAMESPACE::CooperativeVectorPropertiesNV>::value,
29958               int>::type>
29959   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
29960     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::CooperativeVectorPropertiesNV, CooperativeVectorPropertiesNVAllocator>>::type
getCooperativeVectorPropertiesNV(Dispatch const & d) const29961     PhysicalDevice::getCooperativeVectorPropertiesNV( Dispatch const & d ) const
29962   {
29963     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
29964 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
29965     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceCooperativeVectorPropertiesNV &&
29966                        "Function <vkGetPhysicalDeviceCooperativeVectorPropertiesNV> requires <VK_NV_cooperative_vector>" );
29967 #  endif
29968 
29969     std::vector<VULKAN_HPP_NAMESPACE::CooperativeVectorPropertiesNV, CooperativeVectorPropertiesNVAllocator> properties;
29970     uint32_t                                                                                                 propertyCount;
29971     VULKAN_HPP_NAMESPACE::Result                                                                             result;
29972     do
29973     {
29974       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCooperativeVectorPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) );
29975       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
29976       {
29977         properties.resize( propertyCount );
29978         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCooperativeVectorPropertiesNV(
29979           m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeVectorPropertiesNV *>( properties.data() ) ) );
29980       }
29981     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
29982     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeVectorPropertiesNV" );
29983     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
29984     if ( propertyCount < properties.size() )
29985     {
29986       properties.resize( propertyCount );
29987     }
29988     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
29989   }
29990 
29991   // wrapper function for command vkGetPhysicalDeviceCooperativeVectorPropertiesNV, see
29992   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeVectorPropertiesNV.html
29993   template <typename CooperativeVectorPropertiesNVAllocator,
29994             typename Dispatch,
29995             typename std::enable_if<
29996               std::is_same<typename CooperativeVectorPropertiesNVAllocator::value_type, VULKAN_HPP_NAMESPACE::CooperativeVectorPropertiesNV>::value,
29997               int>::type>
29998   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
29999     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::CooperativeVectorPropertiesNV, CooperativeVectorPropertiesNVAllocator>>::type
getCooperativeVectorPropertiesNV(CooperativeVectorPropertiesNVAllocator & cooperativeVectorPropertiesNVAllocator,Dispatch const & d) const30000     PhysicalDevice::getCooperativeVectorPropertiesNV( CooperativeVectorPropertiesNVAllocator & cooperativeVectorPropertiesNVAllocator,
30001                                                       Dispatch const &                         d ) const
30002   {
30003     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30004 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30005     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceCooperativeVectorPropertiesNV &&
30006                        "Function <vkGetPhysicalDeviceCooperativeVectorPropertiesNV> requires <VK_NV_cooperative_vector>" );
30007 #  endif
30008 
30009     std::vector<VULKAN_HPP_NAMESPACE::CooperativeVectorPropertiesNV, CooperativeVectorPropertiesNVAllocator> properties(
30010       cooperativeVectorPropertiesNVAllocator );
30011     uint32_t                     propertyCount;
30012     VULKAN_HPP_NAMESPACE::Result result;
30013     do
30014     {
30015       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCooperativeVectorPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) );
30016       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
30017       {
30018         properties.resize( propertyCount );
30019         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCooperativeVectorPropertiesNV(
30020           m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeVectorPropertiesNV *>( properties.data() ) ) );
30021       }
30022     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
30023     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeVectorPropertiesNV" );
30024     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
30025     if ( propertyCount < properties.size() )
30026     {
30027       properties.resize( propertyCount );
30028     }
30029     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
30030   }
30031 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
30032 
30033   // wrapper function for command vkConvertCooperativeVectorMatrixNV, see
30034   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkConvertCooperativeVectorMatrixNV.html
30035   template <typename Dispatch>
convertCooperativeVectorMatrixNV(const VULKAN_HPP_NAMESPACE::ConvertCooperativeVectorMatrixInfoNV * pInfo,Dispatch const & d) const30036   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::convertCooperativeVectorMatrixNV(
30037     const VULKAN_HPP_NAMESPACE::ConvertCooperativeVectorMatrixInfoNV * pInfo, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
30038   {
30039     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30040     return static_cast<Result>(
30041       d.vkConvertCooperativeVectorMatrixNV( static_cast<VkDevice>( m_device ), reinterpret_cast<const VkConvertCooperativeVectorMatrixInfoNV *>( pInfo ) ) );
30042   }
30043 
30044 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30045   // wrapper function for command vkConvertCooperativeVectorMatrixNV, see
30046   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkConvertCooperativeVectorMatrixNV.html
30047   template <typename Dispatch>
30048   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::Result
convertCooperativeVectorMatrixNV(const VULKAN_HPP_NAMESPACE::ConvertCooperativeVectorMatrixInfoNV & info,Dispatch const & d) const30049     Device::convertCooperativeVectorMatrixNV( const VULKAN_HPP_NAMESPACE::ConvertCooperativeVectorMatrixInfoNV & info, Dispatch const & d ) const
30050   {
30051     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30052 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30053     VULKAN_HPP_ASSERT( d.vkConvertCooperativeVectorMatrixNV && "Function <vkConvertCooperativeVectorMatrixNV> requires <VK_NV_cooperative_vector>" );
30054 #  endif
30055 
30056     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
30057       d.vkConvertCooperativeVectorMatrixNV( m_device, reinterpret_cast<const VkConvertCooperativeVectorMatrixInfoNV *>( &info ) ) );
30058     VULKAN_HPP_NAMESPACE::detail::resultCheck( result,
30059                                                VULKAN_HPP_NAMESPACE_STRING "::Device::convertCooperativeVectorMatrixNV",
30060                                                { VULKAN_HPP_NAMESPACE::Result::eSuccess, VULKAN_HPP_NAMESPACE::Result::eIncomplete } );
30061 
30062     return static_cast<VULKAN_HPP_NAMESPACE::Result>( result );
30063   }
30064 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
30065 
30066   // wrapper function for command vkCmdConvertCooperativeVectorMatrixNV, see
30067   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdConvertCooperativeVectorMatrixNV.html
30068   template <typename Dispatch>
convertCooperativeVectorMatrixNV(uint32_t infoCount,const VULKAN_HPP_NAMESPACE::ConvertCooperativeVectorMatrixInfoNV * pInfos,Dispatch const & d) const30069   VULKAN_HPP_INLINE void CommandBuffer::convertCooperativeVectorMatrixNV( uint32_t                                                           infoCount,
30070                                                                           const VULKAN_HPP_NAMESPACE::ConvertCooperativeVectorMatrixInfoNV * pInfos,
30071                                                                           Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
30072   {
30073     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30074     d.vkCmdConvertCooperativeVectorMatrixNV(
30075       static_cast<VkCommandBuffer>( m_commandBuffer ), infoCount, reinterpret_cast<const VkConvertCooperativeVectorMatrixInfoNV *>( pInfos ) );
30076   }
30077 
30078 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30079   // wrapper function for command vkCmdConvertCooperativeVectorMatrixNV, see
30080   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdConvertCooperativeVectorMatrixNV.html
30081   template <typename Dispatch>
convertCooperativeVectorMatrixNV(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ConvertCooperativeVectorMatrixInfoNV> const & infos,Dispatch const & d) const30082   VULKAN_HPP_INLINE void CommandBuffer::convertCooperativeVectorMatrixNV(
30083     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::ConvertCooperativeVectorMatrixInfoNV> const & infos,
30084     Dispatch const &                                                                                           d ) const VULKAN_HPP_NOEXCEPT
30085   {
30086     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30087 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30088     VULKAN_HPP_ASSERT( d.vkCmdConvertCooperativeVectorMatrixNV && "Function <vkCmdConvertCooperativeVectorMatrixNV> requires <VK_NV_cooperative_vector>" );
30089 #  endif
30090 
30091     d.vkCmdConvertCooperativeVectorMatrixNV( m_commandBuffer, infos.size(), reinterpret_cast<const VkConvertCooperativeVectorMatrixInfoNV *>( infos.data() ) );
30092   }
30093 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
30094 
30095   //=== VK_NV_low_latency2 ===
30096 
30097   // wrapper function for command vkSetLatencySleepModeNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetLatencySleepModeNV.html
30098   template <typename Dispatch>
setLatencySleepModeNV(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,const VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV * pSleepModeInfo,Dispatch const & d) const30099   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::setLatencySleepModeNV( VULKAN_HPP_NAMESPACE::SwapchainKHR                   swapchain,
30100                                                                                const VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV * pSleepModeInfo,
30101                                                                                Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
30102   {
30103     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30104     return static_cast<Result>( d.vkSetLatencySleepModeNV(
30105       static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkLatencySleepModeInfoNV *>( pSleepModeInfo ) ) );
30106   }
30107 
30108 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30109   // wrapper function for command vkSetLatencySleepModeNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetLatencySleepModeNV.html
30110   template <typename Dispatch>
setLatencySleepModeNV(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,const VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV & sleepModeInfo,Dispatch const & d) const30111   VULKAN_HPP_INLINE typename ResultValueType<void>::type Device::setLatencySleepModeNV( VULKAN_HPP_NAMESPACE::SwapchainKHR                   swapchain,
30112                                                                                         const VULKAN_HPP_NAMESPACE::LatencySleepModeInfoNV & sleepModeInfo,
30113                                                                                         Dispatch const &                                     d ) const
30114   {
30115     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30116 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30117     VULKAN_HPP_ASSERT( d.vkSetLatencySleepModeNV && "Function <vkSetLatencySleepModeNV> requires <VK_NV_low_latency2>" );
30118 #  endif
30119 
30120     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
30121       d.vkSetLatencySleepModeNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkLatencySleepModeInfoNV *>( &sleepModeInfo ) ) );
30122     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::setLatencySleepModeNV" );
30123 
30124     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result );
30125   }
30126 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
30127 
30128   // wrapper function for command vkLatencySleepNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkLatencySleepNV.html
30129   template <typename Dispatch>
latencySleepNV(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,const VULKAN_HPP_NAMESPACE::LatencySleepInfoNV * pSleepInfo,Dispatch const & d) const30130   VULKAN_HPP_INLINE Result Device::latencySleepNV( VULKAN_HPP_NAMESPACE::SwapchainKHR               swapchain,
30131                                                    const VULKAN_HPP_NAMESPACE::LatencySleepInfoNV * pSleepInfo,
30132                                                    Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
30133   {
30134     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30135     return static_cast<Result>( d.vkLatencySleepNV(
30136       static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkLatencySleepInfoNV *>( pSleepInfo ) ) );
30137   }
30138 
30139 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30140   // wrapper function for command vkLatencySleepNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkLatencySleepNV.html
30141   template <typename Dispatch>
latencySleepNV(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,const VULKAN_HPP_NAMESPACE::LatencySleepInfoNV & sleepInfo,Dispatch const & d) const30142   VULKAN_HPP_INLINE void Device::latencySleepNV( VULKAN_HPP_NAMESPACE::SwapchainKHR               swapchain,
30143                                                  const VULKAN_HPP_NAMESPACE::LatencySleepInfoNV & sleepInfo,
30144                                                  Dispatch const &                                 d ) const VULKAN_HPP_NOEXCEPT
30145   {
30146     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30147 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30148     VULKAN_HPP_ASSERT( d.vkLatencySleepNV && "Function <vkLatencySleepNV> requires <VK_NV_low_latency2>" );
30149 #  endif
30150 
30151     d.vkLatencySleepNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkLatencySleepInfoNV *>( &sleepInfo ) );
30152   }
30153 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
30154 
30155   // wrapper function for command vkSetLatencyMarkerNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetLatencyMarkerNV.html
30156   template <typename Dispatch>
setLatencyMarkerNV(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,const VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV * pLatencyMarkerInfo,Dispatch const & d) const30157   VULKAN_HPP_INLINE void Device::setLatencyMarkerNV( VULKAN_HPP_NAMESPACE::SwapchainKHR                   swapchain,
30158                                                      const VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV * pLatencyMarkerInfo,
30159                                                      Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
30160   {
30161     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30162     d.vkSetLatencyMarkerNV(
30163       static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkSetLatencyMarkerInfoNV *>( pLatencyMarkerInfo ) );
30164   }
30165 
30166 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30167   // wrapper function for command vkSetLatencyMarkerNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkSetLatencyMarkerNV.html
30168   template <typename Dispatch>
setLatencyMarkerNV(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,const VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV & latencyMarkerInfo,Dispatch const & d) const30169   VULKAN_HPP_INLINE void Device::setLatencyMarkerNV( VULKAN_HPP_NAMESPACE::SwapchainKHR                   swapchain,
30170                                                      const VULKAN_HPP_NAMESPACE::SetLatencyMarkerInfoNV & latencyMarkerInfo,
30171                                                      Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
30172   {
30173     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30174 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30175     VULKAN_HPP_ASSERT( d.vkSetLatencyMarkerNV && "Function <vkSetLatencyMarkerNV> requires <VK_NV_low_latency2>" );
30176 #  endif
30177 
30178     d.vkSetLatencyMarkerNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<const VkSetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) );
30179   }
30180 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
30181 
30182   // wrapper function for command vkGetLatencyTimingsNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetLatencyTimingsNV.html
30183   template <typename Dispatch>
getLatencyTimingsNV(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV * pLatencyMarkerInfo,Dispatch const & d) const30184   VULKAN_HPP_INLINE void Device::getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR             swapchain,
30185                                                       VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV * pLatencyMarkerInfo,
30186                                                       Dispatch const &                               d ) const VULKAN_HPP_NOEXCEPT
30187   {
30188     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30189     d.vkGetLatencyTimingsNV(
30190       static_cast<VkDevice>( m_device ), static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkGetLatencyMarkerInfoNV *>( pLatencyMarkerInfo ) );
30191   }
30192 
30193 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30194   // wrapper function for command vkGetLatencyTimingsNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetLatencyTimingsNV.html
30195   template <
30196     typename LatencyTimingsFrameReportNVAllocator,
30197     typename Dispatch,
30198     typename std::enable_if<std::is_same<typename LatencyTimingsFrameReportNVAllocator::value_type, VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV>::value,
30199                             int>::type>
30200   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV, LatencyTimingsFrameReportNVAllocator>
getLatencyTimingsNV(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,Dispatch const & d) const30201                                          Device::getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain, Dispatch const & d ) const
30202   {
30203     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30204 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30205     VULKAN_HPP_ASSERT( d.vkGetLatencyTimingsNV && "Function <vkGetLatencyTimingsNV> requires <VK_NV_low_latency2>" );
30206 #  endif
30207 
30208     std::vector<VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV, LatencyTimingsFrameReportNVAllocator> timings;
30209     VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV                                                         latencyMarkerInfo;
30210     d.vkGetLatencyTimingsNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkGetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) );
30211     timings.resize( latencyMarkerInfo.timingCount );
30212     latencyMarkerInfo.pTimings = timings.data();
30213     d.vkGetLatencyTimingsNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkGetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) );
30214 
30215     return timings;
30216   }
30217 
30218   // wrapper function for command vkGetLatencyTimingsNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetLatencyTimingsNV.html
30219   template <
30220     typename LatencyTimingsFrameReportNVAllocator,
30221     typename Dispatch,
30222     typename std::enable_if<std::is_same<typename LatencyTimingsFrameReportNVAllocator::value_type, VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV>::value,
30223                             int>::type>
30224   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE std::vector<VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV, LatencyTimingsFrameReportNVAllocator>
getLatencyTimingsNV(VULKAN_HPP_NAMESPACE::SwapchainKHR swapchain,LatencyTimingsFrameReportNVAllocator & latencyTimingsFrameReportNVAllocator,Dispatch const & d) const30225                                          Device::getLatencyTimingsNV( VULKAN_HPP_NAMESPACE::SwapchainKHR     swapchain,
30226                                  LatencyTimingsFrameReportNVAllocator & latencyTimingsFrameReportNVAllocator,
30227                                  Dispatch const &                       d ) const
30228   {
30229     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30230 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30231     VULKAN_HPP_ASSERT( d.vkGetLatencyTimingsNV && "Function <vkGetLatencyTimingsNV> requires <VK_NV_low_latency2>" );
30232 #  endif
30233 
30234     std::vector<VULKAN_HPP_NAMESPACE::LatencyTimingsFrameReportNV, LatencyTimingsFrameReportNVAllocator> timings( latencyTimingsFrameReportNVAllocator );
30235     VULKAN_HPP_NAMESPACE::GetLatencyMarkerInfoNV                                                         latencyMarkerInfo;
30236     d.vkGetLatencyTimingsNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkGetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) );
30237     timings.resize( latencyMarkerInfo.timingCount );
30238     latencyMarkerInfo.pTimings = timings.data();
30239     d.vkGetLatencyTimingsNV( m_device, static_cast<VkSwapchainKHR>( swapchain ), reinterpret_cast<VkGetLatencyMarkerInfoNV *>( &latencyMarkerInfo ) );
30240 
30241     return timings;
30242   }
30243 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
30244 
30245   // wrapper function for command vkQueueNotifyOutOfBandNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueNotifyOutOfBandNV.html
30246   template <typename Dispatch>
notifyOutOfBandNV(const VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV * pQueueTypeInfo,Dispatch const & d) const30247   VULKAN_HPP_INLINE void Queue::notifyOutOfBandNV( const VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV * pQueueTypeInfo,
30248                                                    Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
30249   {
30250     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30251     d.vkQueueNotifyOutOfBandNV( static_cast<VkQueue>( m_queue ), reinterpret_cast<const VkOutOfBandQueueTypeInfoNV *>( pQueueTypeInfo ) );
30252   }
30253 
30254 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30255   // wrapper function for command vkQueueNotifyOutOfBandNV, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkQueueNotifyOutOfBandNV.html
30256   template <typename Dispatch>
notifyOutOfBandNV(const VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV & queueTypeInfo,Dispatch const & d) const30257   VULKAN_HPP_INLINE void Queue::notifyOutOfBandNV( const VULKAN_HPP_NAMESPACE::OutOfBandQueueTypeInfoNV & queueTypeInfo,
30258                                                    Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
30259   {
30260     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30261 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30262     VULKAN_HPP_ASSERT( d.vkQueueNotifyOutOfBandNV && "Function <vkQueueNotifyOutOfBandNV> requires <VK_NV_low_latency2>" );
30263 #  endif
30264 
30265     d.vkQueueNotifyOutOfBandNV( m_queue, reinterpret_cast<const VkOutOfBandQueueTypeInfoNV *>( &queueTypeInfo ) );
30266   }
30267 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
30268 
30269   //=== VK_KHR_cooperative_matrix ===
30270 
30271   // wrapper function for command vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR, see
30272   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR.html
30273   template <typename Dispatch>
getCooperativeMatrixPropertiesKHR(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR * pProperties,Dispatch const & d) const30274   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getCooperativeMatrixPropertiesKHR(
30275     uint32_t * pPropertyCount, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR * pProperties, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
30276   {
30277     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30278     return static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(
30279       static_cast<VkPhysicalDevice>( m_physicalDevice ), pPropertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesKHR *>( pProperties ) ) );
30280   }
30281 
30282 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30283   // wrapper function for command vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR, see
30284   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR.html
30285   template <typename CooperativeMatrixPropertiesKHRAllocator,
30286             typename Dispatch,
30287             typename std::enable_if<
30288               std::is_same<typename CooperativeMatrixPropertiesKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR>::value,
30289               int>::type>
30290   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
30291     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR, CooperativeMatrixPropertiesKHRAllocator>>::type
getCooperativeMatrixPropertiesKHR(Dispatch const & d) const30292     PhysicalDevice::getCooperativeMatrixPropertiesKHR( Dispatch const & d ) const
30293   {
30294     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30295 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30296     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR &&
30297                        "Function <vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR> requires <VK_KHR_cooperative_matrix>" );
30298 #  endif
30299 
30300     std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR, CooperativeMatrixPropertiesKHRAllocator> properties;
30301     uint32_t                                                                                                   propertyCount;
30302     VULKAN_HPP_NAMESPACE::Result                                                                               result;
30303     do
30304     {
30305       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
30306       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
30307       {
30308         properties.resize( propertyCount );
30309         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(
30310           m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesKHR *>( properties.data() ) ) );
30311       }
30312     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
30313     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesKHR" );
30314     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
30315     if ( propertyCount < properties.size() )
30316     {
30317       properties.resize( propertyCount );
30318     }
30319     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
30320   }
30321 
30322   // wrapper function for command vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR, see
30323   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR.html
30324   template <typename CooperativeMatrixPropertiesKHRAllocator,
30325             typename Dispatch,
30326             typename std::enable_if<
30327               std::is_same<typename CooperativeMatrixPropertiesKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR>::value,
30328               int>::type>
30329   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE
30330     typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR, CooperativeMatrixPropertiesKHRAllocator>>::type
getCooperativeMatrixPropertiesKHR(CooperativeMatrixPropertiesKHRAllocator & cooperativeMatrixPropertiesKHRAllocator,Dispatch const & d) const30331     PhysicalDevice::getCooperativeMatrixPropertiesKHR( CooperativeMatrixPropertiesKHRAllocator & cooperativeMatrixPropertiesKHRAllocator,
30332                                                        Dispatch const &                          d ) const
30333   {
30334     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30335 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30336     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR &&
30337                        "Function <vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR> requires <VK_KHR_cooperative_matrix>" );
30338 #  endif
30339 
30340     std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixPropertiesKHR, CooperativeMatrixPropertiesKHRAllocator> properties(
30341       cooperativeMatrixPropertiesKHRAllocator );
30342     uint32_t                     propertyCount;
30343     VULKAN_HPP_NAMESPACE::Result result;
30344     do
30345     {
30346       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR( m_physicalDevice, &propertyCount, nullptr ) );
30347       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
30348       {
30349         properties.resize( propertyCount );
30350         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCooperativeMatrixPropertiesKHR(
30351           m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixPropertiesKHR *>( properties.data() ) ) );
30352       }
30353     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
30354     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixPropertiesKHR" );
30355     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
30356     if ( propertyCount < properties.size() )
30357     {
30358       properties.resize( propertyCount );
30359     }
30360     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
30361   }
30362 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
30363 
30364   //=== VK_EXT_attachment_feedback_loop_dynamic_state ===
30365 
30366   // wrapper function for command vkCmdSetAttachmentFeedbackLoopEnableEXT, see
30367   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetAttachmentFeedbackLoopEnableEXT.html
30368   template <typename Dispatch>
setAttachmentFeedbackLoopEnableEXT(VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask,Dispatch const & d) const30369   VULKAN_HPP_INLINE void CommandBuffer::setAttachmentFeedbackLoopEnableEXT( VULKAN_HPP_NAMESPACE::ImageAspectFlags aspectMask,
30370                                                                             Dispatch const &                       d ) const VULKAN_HPP_NOEXCEPT
30371   {
30372     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30373     d.vkCmdSetAttachmentFeedbackLoopEnableEXT( static_cast<VkCommandBuffer>( m_commandBuffer ), static_cast<VkImageAspectFlags>( aspectMask ) );
30374   }
30375 
30376 #if defined( VK_USE_PLATFORM_SCREEN_QNX )
30377   //=== VK_QNX_external_memory_screen_buffer ===
30378 
30379   // wrapper function for command vkGetScreenBufferPropertiesQNX, see
30380   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetScreenBufferPropertiesQNX.html
30381   template <typename Dispatch>
getScreenBufferPropertiesQNX(const struct _screen_buffer * buffer,VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX * pProperties,Dispatch const & d) const30382   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getScreenBufferPropertiesQNX( const struct _screen_buffer *                     buffer,
30383                                                                                       VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX * pProperties,
30384                                                                                       Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
30385   {
30386     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30387     return static_cast<Result>(
30388       d.vkGetScreenBufferPropertiesQNX( static_cast<VkDevice>( m_device ), buffer, reinterpret_cast<VkScreenBufferPropertiesQNX *>( pProperties ) ) );
30389   }
30390 
30391 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30392   // wrapper function for command vkGetScreenBufferPropertiesQNX, see
30393   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetScreenBufferPropertiesQNX.html
30394   template <typename Dispatch>
30395   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX>::type
getScreenBufferPropertiesQNX(const struct _screen_buffer & buffer,Dispatch const & d) const30396                        Device::getScreenBufferPropertiesQNX( const struct _screen_buffer & buffer, Dispatch const & d ) const
30397   {
30398     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30399 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30400     VULKAN_HPP_ASSERT( d.vkGetScreenBufferPropertiesQNX && "Function <vkGetScreenBufferPropertiesQNX> requires <VK_QNX_external_memory_screen_buffer>" );
30401 #    endif
30402 
30403     VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX properties;
30404     VULKAN_HPP_NAMESPACE::Result                    result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
30405       d.vkGetScreenBufferPropertiesQNX( m_device, &buffer, reinterpret_cast<VkScreenBufferPropertiesQNX *>( &properties ) ) );
30406     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getScreenBufferPropertiesQNX" );
30407 
30408     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
30409   }
30410 
30411   // wrapper function for command vkGetScreenBufferPropertiesQNX, see
30412   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetScreenBufferPropertiesQNX.html
30413   template <typename X, typename Y, typename... Z, typename Dispatch>
30414   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>>::type
getScreenBufferPropertiesQNX(const struct _screen_buffer & buffer,Dispatch const & d) const30415                        Device::getScreenBufferPropertiesQNX( const struct _screen_buffer & buffer, Dispatch const & d ) const
30416   {
30417     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30418 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30419     VULKAN_HPP_ASSERT( d.vkGetScreenBufferPropertiesQNX && "Function <vkGetScreenBufferPropertiesQNX> requires <VK_QNX_external_memory_screen_buffer>" );
30420 #    endif
30421 
30422     StructureChain<X, Y, Z...>                        structureChain;
30423     VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX & properties = structureChain.template get<VULKAN_HPP_NAMESPACE::ScreenBufferPropertiesQNX>();
30424     VULKAN_HPP_NAMESPACE::Result                      result     = static_cast<VULKAN_HPP_NAMESPACE::Result>(
30425       d.vkGetScreenBufferPropertiesQNX( m_device, &buffer, reinterpret_cast<VkScreenBufferPropertiesQNX *>( &properties ) ) );
30426     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getScreenBufferPropertiesQNX" );
30427 
30428     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( structureChain ) );
30429   }
30430 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
30431 #endif   /*VK_USE_PLATFORM_SCREEN_QNX*/
30432 
30433   //=== VK_KHR_line_rasterization ===
30434 
30435   // wrapper function for command vkCmdSetLineStippleKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetLineStippleKHR.html
30436   template <typename Dispatch>
30437   VULKAN_HPP_INLINE void
setLineStippleKHR(uint32_t lineStippleFactor,uint16_t lineStipplePattern,Dispatch const & d) const30438     CommandBuffer::setLineStippleKHR( uint32_t lineStippleFactor, uint16_t lineStipplePattern, Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
30439   {
30440     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30441     d.vkCmdSetLineStippleKHR( static_cast<VkCommandBuffer>( m_commandBuffer ), lineStippleFactor, lineStipplePattern );
30442   }
30443 
30444   //=== VK_KHR_calibrated_timestamps ===
30445 
30446   // wrapper function for command vkGetPhysicalDeviceCalibrateableTimeDomainsKHR, see
30447   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCalibrateableTimeDomainsKHR.html
30448   template <typename Dispatch>
getCalibrateableTimeDomainsKHR(uint32_t * pTimeDomainCount,VULKAN_HPP_NAMESPACE::TimeDomainKHR * pTimeDomains,Dispatch const & d) const30449   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result PhysicalDevice::getCalibrateableTimeDomainsKHR( uint32_t *                            pTimeDomainCount,
30450                                                                                                 VULKAN_HPP_NAMESPACE::TimeDomainKHR * pTimeDomains,
30451                                                                                                 Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
30452   {
30453     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30454     return static_cast<Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsKHR(
30455       static_cast<VkPhysicalDevice>( m_physicalDevice ), pTimeDomainCount, reinterpret_cast<VkTimeDomainKHR *>( pTimeDomains ) ) );
30456   }
30457 
30458 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30459   // wrapper function for command vkGetPhysicalDeviceCalibrateableTimeDomainsKHR, see
30460   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCalibrateableTimeDomainsKHR.html
30461   template <typename TimeDomainKHRAllocator,
30462             typename Dispatch,
30463             typename std::enable_if<std::is_same<typename TimeDomainKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::TimeDomainKHR>::value, int>::type>
30464   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR, TimeDomainKHRAllocator>>::type
getCalibrateableTimeDomainsKHR(Dispatch const & d) const30465                        PhysicalDevice::getCalibrateableTimeDomainsKHR( Dispatch const & d ) const
30466   {
30467     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30468 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30469     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceCalibrateableTimeDomainsKHR &&
30470                        "Function <vkGetPhysicalDeviceCalibrateableTimeDomainsKHR> requires <VK_EXT_calibrated_timestamps> or <VK_KHR_calibrated_timestamps>" );
30471 #  endif
30472 
30473     std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR, TimeDomainKHRAllocator> timeDomains;
30474     uint32_t                                                                 timeDomainCount;
30475     VULKAN_HPP_NAMESPACE::Result                                             result;
30476     do
30477     {
30478       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsKHR( m_physicalDevice, &timeDomainCount, nullptr ) );
30479       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && timeDomainCount )
30480       {
30481         timeDomains.resize( timeDomainCount );
30482         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
30483           d.vkGetPhysicalDeviceCalibrateableTimeDomainsKHR( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainKHR *>( timeDomains.data() ) ) );
30484       }
30485     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
30486     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsKHR" );
30487     VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
30488     if ( timeDomainCount < timeDomains.size() )
30489     {
30490       timeDomains.resize( timeDomainCount );
30491     }
30492     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( timeDomains ) );
30493   }
30494 
30495   // wrapper function for command vkGetPhysicalDeviceCalibrateableTimeDomainsKHR, see
30496   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCalibrateableTimeDomainsKHR.html
30497   template <typename TimeDomainKHRAllocator,
30498             typename Dispatch,
30499             typename std::enable_if<std::is_same<typename TimeDomainKHRAllocator::value_type, VULKAN_HPP_NAMESPACE::TimeDomainKHR>::value, int>::type>
30500   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR, TimeDomainKHRAllocator>>::type
getCalibrateableTimeDomainsKHR(TimeDomainKHRAllocator & timeDomainKHRAllocator,Dispatch const & d) const30501                        PhysicalDevice::getCalibrateableTimeDomainsKHR( TimeDomainKHRAllocator & timeDomainKHRAllocator, Dispatch const & d ) const
30502   {
30503     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30504 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30505     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceCalibrateableTimeDomainsKHR &&
30506                        "Function <vkGetPhysicalDeviceCalibrateableTimeDomainsKHR> requires <VK_EXT_calibrated_timestamps> or <VK_KHR_calibrated_timestamps>" );
30507 #  endif
30508 
30509     std::vector<VULKAN_HPP_NAMESPACE::TimeDomainKHR, TimeDomainKHRAllocator> timeDomains( timeDomainKHRAllocator );
30510     uint32_t                                                                 timeDomainCount;
30511     VULKAN_HPP_NAMESPACE::Result                                             result;
30512     do
30513     {
30514       result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCalibrateableTimeDomainsKHR( m_physicalDevice, &timeDomainCount, nullptr ) );
30515       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && timeDomainCount )
30516       {
30517         timeDomains.resize( timeDomainCount );
30518         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
30519           d.vkGetPhysicalDeviceCalibrateableTimeDomainsKHR( m_physicalDevice, &timeDomainCount, reinterpret_cast<VkTimeDomainKHR *>( timeDomains.data() ) ) );
30520       }
30521     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
30522     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCalibrateableTimeDomainsKHR" );
30523     VULKAN_HPP_ASSERT( timeDomainCount <= timeDomains.size() );
30524     if ( timeDomainCount < timeDomains.size() )
30525     {
30526       timeDomains.resize( timeDomainCount );
30527     }
30528     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( timeDomains ) );
30529   }
30530 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
30531 
30532   // wrapper function for command vkGetCalibratedTimestampsKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCalibratedTimestampsKHR.html
30533   template <typename Dispatch>
getCalibratedTimestampsKHR(uint32_t timestampCount,const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR * pTimestampInfos,uint64_t * pTimestamps,uint64_t * pMaxDeviation,Dispatch const & d) const30534   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getCalibratedTimestampsKHR( uint32_t                                                 timestampCount,
30535                                                                                     const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR * pTimestampInfos,
30536                                                                                     uint64_t *                                               pTimestamps,
30537                                                                                     uint64_t *                                               pMaxDeviation,
30538                                                                                     Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
30539   {
30540     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30541     return static_cast<Result>( d.vkGetCalibratedTimestampsKHR( static_cast<VkDevice>( m_device ),
30542                                                                 timestampCount,
30543                                                                 reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( pTimestampInfos ),
30544                                                                 pTimestamps,
30545                                                                 pMaxDeviation ) );
30546   }
30547 
30548 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30549   // wrapper function for command vkGetCalibratedTimestampsKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCalibratedTimestampsKHR.html
30550   template <typename Uint64_tAllocator,
30551             typename Dispatch,
30552             typename std::enable_if<std::is_same<typename Uint64_tAllocator::value_type, uint64_t>::value, int>::type>
30553   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t>>::type
getCalibratedTimestampsKHR(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos,Dispatch const & d) const30554     Device::getCalibratedTimestampsKHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos,
30555                                         Dispatch const &                                                                                 d ) const
30556   {
30557     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30558 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30559     VULKAN_HPP_ASSERT( d.vkGetCalibratedTimestampsKHR &&
30560                        "Function <vkGetCalibratedTimestampsKHR> requires <VK_EXT_calibrated_timestamps> or <VK_KHR_calibrated_timestamps>" );
30561 #  endif
30562 
30563     std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t> data_(
30564       std::piecewise_construct, std::forward_as_tuple( timestampInfos.size() ), std::forward_as_tuple( 0 ) );
30565     std::vector<uint64_t, Uint64_tAllocator> & timestamps   = data_.first;
30566     uint64_t &                                 maxDeviation = data_.second;
30567     VULKAN_HPP_NAMESPACE::Result               result       = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetCalibratedTimestampsKHR(
30568       m_device, timestampInfos.size(), reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( timestampInfos.data() ), timestamps.data(), &maxDeviation ) );
30569     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsKHR" );
30570 
30571     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data_ ) );
30572   }
30573 
30574   // wrapper function for command vkGetCalibratedTimestampsKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCalibratedTimestampsKHR.html
30575   template <typename Uint64_tAllocator,
30576             typename Dispatch,
30577             typename std::enable_if<std::is_same<typename Uint64_tAllocator::value_type, uint64_t>::value, int>::type>
30578   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t>>::type
getCalibratedTimestampsKHR(VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos,Uint64_tAllocator & uint64_tAllocator,Dispatch const & d) const30579     Device::getCalibratedTimestampsKHR( VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR> const & timestampInfos,
30580                                         Uint64_tAllocator &                                                                              uint64_tAllocator,
30581                                         Dispatch const &                                                                                 d ) const
30582   {
30583     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30584 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30585     VULKAN_HPP_ASSERT( d.vkGetCalibratedTimestampsKHR &&
30586                        "Function <vkGetCalibratedTimestampsKHR> requires <VK_EXT_calibrated_timestamps> or <VK_KHR_calibrated_timestamps>" );
30587 #  endif
30588 
30589     std::pair<std::vector<uint64_t, Uint64_tAllocator>, uint64_t> data_(
30590       std::piecewise_construct, std::forward_as_tuple( timestampInfos.size(), uint64_tAllocator ), std::forward_as_tuple( 0 ) );
30591     std::vector<uint64_t, Uint64_tAllocator> & timestamps   = data_.first;
30592     uint64_t &                                 maxDeviation = data_.second;
30593     VULKAN_HPP_NAMESPACE::Result               result       = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetCalibratedTimestampsKHR(
30594       m_device, timestampInfos.size(), reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( timestampInfos.data() ), timestamps.data(), &maxDeviation ) );
30595     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampsKHR" );
30596 
30597     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data_ ) );
30598   }
30599 
30600   // wrapper function for command vkGetCalibratedTimestampsKHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetCalibratedTimestampsKHR.html
30601   template <typename Dispatch>
30602   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<std::pair<uint64_t, uint64_t>>::type
getCalibratedTimestampKHR(const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR & timestampInfo,Dispatch const & d) const30603                        Device::getCalibratedTimestampKHR( const VULKAN_HPP_NAMESPACE::CalibratedTimestampInfoKHR & timestampInfo, Dispatch const & d ) const
30604   {
30605     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30606 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30607     VULKAN_HPP_ASSERT( d.vkGetCalibratedTimestampsKHR &&
30608                        "Function <vkGetCalibratedTimestampsKHR> requires <VK_EXT_calibrated_timestamps> or <VK_KHR_calibrated_timestamps>" );
30609 #  endif
30610 
30611     std::pair<uint64_t, uint64_t> data_;
30612     uint64_t &                    timestamp    = data_.first;
30613     uint64_t &                    maxDeviation = data_.second;
30614     VULKAN_HPP_NAMESPACE::Result  result       = static_cast<VULKAN_HPP_NAMESPACE::Result>(
30615       d.vkGetCalibratedTimestampsKHR( m_device, 1, reinterpret_cast<const VkCalibratedTimestampInfoKHR *>( &timestampInfo ), &timestamp, &maxDeviation ) );
30616     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getCalibratedTimestampKHR" );
30617 
30618     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( data_ ) );
30619   }
30620 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
30621 
30622   //=== VK_KHR_maintenance6 ===
30623 
30624   // wrapper function for command vkCmdBindDescriptorSets2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindDescriptorSets2KHR.html
30625   template <typename Dispatch>
bindDescriptorSets2KHR(const VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfo * pBindDescriptorSetsInfo,Dispatch const & d) const30626   VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorSets2KHR( const VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfo * pBindDescriptorSetsInfo,
30627                                                                 Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
30628   {
30629     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30630     d.vkCmdBindDescriptorSets2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
30631                                    reinterpret_cast<const VkBindDescriptorSetsInfo *>( pBindDescriptorSetsInfo ) );
30632   }
30633 
30634 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30635   // wrapper function for command vkCmdBindDescriptorSets2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindDescriptorSets2KHR.html
30636   template <typename Dispatch>
bindDescriptorSets2KHR(const VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfo & bindDescriptorSetsInfo,Dispatch const & d) const30637   VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorSets2KHR( const VULKAN_HPP_NAMESPACE::BindDescriptorSetsInfo & bindDescriptorSetsInfo,
30638                                                                 Dispatch const &                                     d ) const VULKAN_HPP_NOEXCEPT
30639   {
30640     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30641 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30642     VULKAN_HPP_ASSERT( d.vkCmdBindDescriptorSets2KHR && "Function <vkCmdBindDescriptorSets2KHR> requires <VK_KHR_maintenance6> or <VK_VERSION_1_4>" );
30643 #  endif
30644 
30645     d.vkCmdBindDescriptorSets2KHR( m_commandBuffer, reinterpret_cast<const VkBindDescriptorSetsInfo *>( &bindDescriptorSetsInfo ) );
30646   }
30647 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
30648 
30649   // wrapper function for command vkCmdPushConstants2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushConstants2KHR.html
30650   template <typename Dispatch>
pushConstants2KHR(const VULKAN_HPP_NAMESPACE::PushConstantsInfo * pPushConstantsInfo,Dispatch const & d) const30651   VULKAN_HPP_INLINE void CommandBuffer::pushConstants2KHR( const VULKAN_HPP_NAMESPACE::PushConstantsInfo * pPushConstantsInfo,
30652                                                            Dispatch const &                                d ) const VULKAN_HPP_NOEXCEPT
30653   {
30654     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30655     d.vkCmdPushConstants2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ), reinterpret_cast<const VkPushConstantsInfo *>( pPushConstantsInfo ) );
30656   }
30657 
30658 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30659   // wrapper function for command vkCmdPushConstants2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushConstants2KHR.html
30660   template <typename Dispatch>
pushConstants2KHR(const VULKAN_HPP_NAMESPACE::PushConstantsInfo & pushConstantsInfo,Dispatch const & d) const30661   VULKAN_HPP_INLINE void CommandBuffer::pushConstants2KHR( const VULKAN_HPP_NAMESPACE::PushConstantsInfo & pushConstantsInfo,
30662                                                            Dispatch const &                                d ) const VULKAN_HPP_NOEXCEPT
30663   {
30664     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30665 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30666     VULKAN_HPP_ASSERT( d.vkCmdPushConstants2KHR && "Function <vkCmdPushConstants2KHR> requires <VK_KHR_maintenance6> or <VK_VERSION_1_4>" );
30667 #  endif
30668 
30669     d.vkCmdPushConstants2KHR( m_commandBuffer, reinterpret_cast<const VkPushConstantsInfo *>( &pushConstantsInfo ) );
30670   }
30671 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
30672 
30673   // wrapper function for command vkCmdPushDescriptorSet2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushDescriptorSet2KHR.html
30674   template <typename Dispatch>
pushDescriptorSet2KHR(const VULKAN_HPP_NAMESPACE::PushDescriptorSetInfo * pPushDescriptorSetInfo,Dispatch const & d) const30675   VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSet2KHR( const VULKAN_HPP_NAMESPACE::PushDescriptorSetInfo * pPushDescriptorSetInfo,
30676                                                                Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
30677   {
30678     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30679     d.vkCmdPushDescriptorSet2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
30680                                   reinterpret_cast<const VkPushDescriptorSetInfo *>( pPushDescriptorSetInfo ) );
30681   }
30682 
30683 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30684   // wrapper function for command vkCmdPushDescriptorSet2KHR, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushDescriptorSet2KHR.html
30685   template <typename Dispatch>
pushDescriptorSet2KHR(const VULKAN_HPP_NAMESPACE::PushDescriptorSetInfo & pushDescriptorSetInfo,Dispatch const & d) const30686   VULKAN_HPP_INLINE void CommandBuffer::pushDescriptorSet2KHR( const VULKAN_HPP_NAMESPACE::PushDescriptorSetInfo & pushDescriptorSetInfo,
30687                                                                Dispatch const &                                    d ) const VULKAN_HPP_NOEXCEPT
30688   {
30689     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30690 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30691     VULKAN_HPP_ASSERT( d.vkCmdPushDescriptorSet2KHR && "Function <vkCmdPushDescriptorSet2KHR> requires <VK_KHR_maintenance6> or <VK_VERSION_1_4>" );
30692 #  endif
30693 
30694     d.vkCmdPushDescriptorSet2KHR( m_commandBuffer, reinterpret_cast<const VkPushDescriptorSetInfo *>( &pushDescriptorSetInfo ) );
30695   }
30696 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
30697 
30698   // wrapper function for command vkCmdPushDescriptorSetWithTemplate2KHR, see
30699   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushDescriptorSetWithTemplate2KHR.html
30700   template <typename Dispatch>
30701   VULKAN_HPP_INLINE void
pushDescriptorSetWithTemplate2KHR(const VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfo * pPushDescriptorSetWithTemplateInfo,Dispatch const & d) const30702     CommandBuffer::pushDescriptorSetWithTemplate2KHR( const VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfo * pPushDescriptorSetWithTemplateInfo,
30703                                                       Dispatch const &                                                d ) const VULKAN_HPP_NOEXCEPT
30704   {
30705     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30706     d.vkCmdPushDescriptorSetWithTemplate2KHR( static_cast<VkCommandBuffer>( m_commandBuffer ),
30707                                               reinterpret_cast<const VkPushDescriptorSetWithTemplateInfo *>( pPushDescriptorSetWithTemplateInfo ) );
30708   }
30709 
30710 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30711   // wrapper function for command vkCmdPushDescriptorSetWithTemplate2KHR, see
30712   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPushDescriptorSetWithTemplate2KHR.html
30713   template <typename Dispatch>
30714   VULKAN_HPP_INLINE void
pushDescriptorSetWithTemplate2KHR(const VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfo & pushDescriptorSetWithTemplateInfo,Dispatch const & d) const30715     CommandBuffer::pushDescriptorSetWithTemplate2KHR( const VULKAN_HPP_NAMESPACE::PushDescriptorSetWithTemplateInfo & pushDescriptorSetWithTemplateInfo,
30716                                                       Dispatch const &                                                d ) const VULKAN_HPP_NOEXCEPT
30717   {
30718     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30719 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30720     VULKAN_HPP_ASSERT( d.vkCmdPushDescriptorSetWithTemplate2KHR &&
30721                        "Function <vkCmdPushDescriptorSetWithTemplate2KHR> requires <VK_KHR_maintenance6> or <VK_VERSION_1_4>" );
30722 #  endif
30723 
30724     d.vkCmdPushDescriptorSetWithTemplate2KHR( m_commandBuffer,
30725                                               reinterpret_cast<const VkPushDescriptorSetWithTemplateInfo *>( &pushDescriptorSetWithTemplateInfo ) );
30726   }
30727 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
30728 
30729   // wrapper function for command vkCmdSetDescriptorBufferOffsets2EXT, see
30730   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDescriptorBufferOffsets2EXT.html
30731   template <typename Dispatch>
30732   VULKAN_HPP_INLINE void
setDescriptorBufferOffsets2EXT(const VULKAN_HPP_NAMESPACE::SetDescriptorBufferOffsetsInfoEXT * pSetDescriptorBufferOffsetsInfo,Dispatch const & d) const30733     CommandBuffer::setDescriptorBufferOffsets2EXT( const VULKAN_HPP_NAMESPACE::SetDescriptorBufferOffsetsInfoEXT * pSetDescriptorBufferOffsetsInfo,
30734                                                    Dispatch const &                                                d ) const VULKAN_HPP_NOEXCEPT
30735   {
30736     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30737     d.vkCmdSetDescriptorBufferOffsets2EXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
30738                                            reinterpret_cast<const VkSetDescriptorBufferOffsetsInfoEXT *>( pSetDescriptorBufferOffsetsInfo ) );
30739   }
30740 
30741 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30742   // wrapper function for command vkCmdSetDescriptorBufferOffsets2EXT, see
30743   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdSetDescriptorBufferOffsets2EXT.html
30744   template <typename Dispatch>
30745   VULKAN_HPP_INLINE void
setDescriptorBufferOffsets2EXT(const VULKAN_HPP_NAMESPACE::SetDescriptorBufferOffsetsInfoEXT & setDescriptorBufferOffsetsInfo,Dispatch const & d) const30746     CommandBuffer::setDescriptorBufferOffsets2EXT( const VULKAN_HPP_NAMESPACE::SetDescriptorBufferOffsetsInfoEXT & setDescriptorBufferOffsetsInfo,
30747                                                    Dispatch const &                                                d ) const VULKAN_HPP_NOEXCEPT
30748   {
30749     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30750 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30751     VULKAN_HPP_ASSERT( d.vkCmdSetDescriptorBufferOffsets2EXT && "Function <vkCmdSetDescriptorBufferOffsets2EXT> requires <VK_KHR_maintenance6>" );
30752 #  endif
30753 
30754     d.vkCmdSetDescriptorBufferOffsets2EXT( m_commandBuffer, reinterpret_cast<const VkSetDescriptorBufferOffsetsInfoEXT *>( &setDescriptorBufferOffsetsInfo ) );
30755   }
30756 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
30757 
30758   // wrapper function for command vkCmdBindDescriptorBufferEmbeddedSamplers2EXT, see
30759   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindDescriptorBufferEmbeddedSamplers2EXT.html
30760   template <typename Dispatch>
bindDescriptorBufferEmbeddedSamplers2EXT(const VULKAN_HPP_NAMESPACE::BindDescriptorBufferEmbeddedSamplersInfoEXT * pBindDescriptorBufferEmbeddedSamplersInfo,Dispatch const & d) const30761   VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorBufferEmbeddedSamplers2EXT(
30762     const VULKAN_HPP_NAMESPACE::BindDescriptorBufferEmbeddedSamplersInfoEXT * pBindDescriptorBufferEmbeddedSamplersInfo,
30763     Dispatch const &                                                          d ) const VULKAN_HPP_NOEXCEPT
30764   {
30765     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30766     d.vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(
30767       static_cast<VkCommandBuffer>( m_commandBuffer ),
30768       reinterpret_cast<const VkBindDescriptorBufferEmbeddedSamplersInfoEXT *>( pBindDescriptorBufferEmbeddedSamplersInfo ) );
30769   }
30770 
30771 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30772   // wrapper function for command vkCmdBindDescriptorBufferEmbeddedSamplers2EXT, see
30773   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBindDescriptorBufferEmbeddedSamplers2EXT.html
30774   template <typename Dispatch>
bindDescriptorBufferEmbeddedSamplers2EXT(const VULKAN_HPP_NAMESPACE::BindDescriptorBufferEmbeddedSamplersInfoEXT & bindDescriptorBufferEmbeddedSamplersInfo,Dispatch const & d) const30775   VULKAN_HPP_INLINE void CommandBuffer::bindDescriptorBufferEmbeddedSamplers2EXT(
30776     const VULKAN_HPP_NAMESPACE::BindDescriptorBufferEmbeddedSamplersInfoEXT & bindDescriptorBufferEmbeddedSamplersInfo,
30777     Dispatch const &                                                          d ) const VULKAN_HPP_NOEXCEPT
30778   {
30779     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30780 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30781     VULKAN_HPP_ASSERT( d.vkCmdBindDescriptorBufferEmbeddedSamplers2EXT &&
30782                        "Function <vkCmdBindDescriptorBufferEmbeddedSamplers2EXT> requires <VK_KHR_maintenance6>" );
30783 #  endif
30784 
30785     d.vkCmdBindDescriptorBufferEmbeddedSamplers2EXT(
30786       m_commandBuffer, reinterpret_cast<const VkBindDescriptorBufferEmbeddedSamplersInfoEXT *>( &bindDescriptorBufferEmbeddedSamplersInfo ) );
30787   }
30788 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
30789 
30790   //=== VK_NV_cluster_acceleration_structure ===
30791 
30792   // wrapper function for command vkGetClusterAccelerationStructureBuildSizesNV, see
30793   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetClusterAccelerationStructureBuildSizesNV.html
30794   template <typename Dispatch>
getClusterAccelerationStructureBuildSizesNV(const VULKAN_HPP_NAMESPACE::ClusterAccelerationStructureInputInfoNV * pInfo,VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR * pSizeInfo,Dispatch const & d) const30795   VULKAN_HPP_INLINE void Device::getClusterAccelerationStructureBuildSizesNV( const VULKAN_HPP_NAMESPACE::ClusterAccelerationStructureInputInfoNV * pInfo,
30796                                                                               VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR *        pSizeInfo,
30797                                                                               Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
30798   {
30799     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30800     d.vkGetClusterAccelerationStructureBuildSizesNV( static_cast<VkDevice>( m_device ),
30801                                                      reinterpret_cast<const VkClusterAccelerationStructureInputInfoNV *>( pInfo ),
30802                                                      reinterpret_cast<VkAccelerationStructureBuildSizesInfoKHR *>( pSizeInfo ) );
30803   }
30804 
30805 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30806   // wrapper function for command vkGetClusterAccelerationStructureBuildSizesNV, see
30807   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetClusterAccelerationStructureBuildSizesNV.html
30808   template <typename Dispatch>
30809   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR
getClusterAccelerationStructureBuildSizesNV(const VULKAN_HPP_NAMESPACE::ClusterAccelerationStructureInputInfoNV & info,Dispatch const & d) const30810     Device::getClusterAccelerationStructureBuildSizesNV( const VULKAN_HPP_NAMESPACE::ClusterAccelerationStructureInputInfoNV & info,
30811                                                          Dispatch const &                                                      d ) const VULKAN_HPP_NOEXCEPT
30812   {
30813     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30814 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30815     VULKAN_HPP_ASSERT( d.vkGetClusterAccelerationStructureBuildSizesNV &&
30816                        "Function <vkGetClusterAccelerationStructureBuildSizesNV> requires <VK_NV_cluster_acceleration_structure>" );
30817 #  endif
30818 
30819     VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR sizeInfo;
30820     d.vkGetClusterAccelerationStructureBuildSizesNV( m_device,
30821                                                      reinterpret_cast<const VkClusterAccelerationStructureInputInfoNV *>( &info ),
30822                                                      reinterpret_cast<VkAccelerationStructureBuildSizesInfoKHR *>( &sizeInfo ) );
30823 
30824     return sizeInfo;
30825   }
30826 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
30827 
30828   // wrapper function for command vkCmdBuildClusterAccelerationStructureIndirectNV, see
30829   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBuildClusterAccelerationStructureIndirectNV.html
30830   template <typename Dispatch>
30831   VULKAN_HPP_INLINE void
buildClusterAccelerationStructureIndirectNV(const VULKAN_HPP_NAMESPACE::ClusterAccelerationStructureCommandsInfoNV * pCommandInfos,Dispatch const & d) const30832     CommandBuffer::buildClusterAccelerationStructureIndirectNV( const VULKAN_HPP_NAMESPACE::ClusterAccelerationStructureCommandsInfoNV * pCommandInfos,
30833                                                                 Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
30834   {
30835     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30836     d.vkCmdBuildClusterAccelerationStructureIndirectNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
30837                                                         reinterpret_cast<const VkClusterAccelerationStructureCommandsInfoNV *>( pCommandInfos ) );
30838   }
30839 
30840 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30841   // wrapper function for command vkCmdBuildClusterAccelerationStructureIndirectNV, see
30842   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBuildClusterAccelerationStructureIndirectNV.html
30843   template <typename Dispatch>
30844   VULKAN_HPP_INLINE void
buildClusterAccelerationStructureIndirectNV(const VULKAN_HPP_NAMESPACE::ClusterAccelerationStructureCommandsInfoNV & commandInfos,Dispatch const & d) const30845     CommandBuffer::buildClusterAccelerationStructureIndirectNV( const VULKAN_HPP_NAMESPACE::ClusterAccelerationStructureCommandsInfoNV & commandInfos,
30846                                                                 Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
30847   {
30848     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30849 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30850     VULKAN_HPP_ASSERT( d.vkCmdBuildClusterAccelerationStructureIndirectNV &&
30851                        "Function <vkCmdBuildClusterAccelerationStructureIndirectNV> requires <VK_NV_cluster_acceleration_structure>" );
30852 #  endif
30853 
30854     d.vkCmdBuildClusterAccelerationStructureIndirectNV( m_commandBuffer,
30855                                                         reinterpret_cast<const VkClusterAccelerationStructureCommandsInfoNV *>( &commandInfos ) );
30856   }
30857 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
30858 
30859   //=== VK_NV_partitioned_acceleration_structure ===
30860 
30861   // wrapper function for command vkGetPartitionedAccelerationStructuresBuildSizesNV, see
30862   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPartitionedAccelerationStructuresBuildSizesNV.html
30863   template <typename Dispatch>
30864   VULKAN_HPP_INLINE void
getPartitionedAccelerationStructuresBuildSizesNV(const VULKAN_HPP_NAMESPACE::PartitionedAccelerationStructureInstancesInputNV * pInfo,VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR * pSizeInfo,Dispatch const & d) const30865     Device::getPartitionedAccelerationStructuresBuildSizesNV( const VULKAN_HPP_NAMESPACE::PartitionedAccelerationStructureInstancesInputNV * pInfo,
30866                                                               VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR *                 pSizeInfo,
30867                                                               Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
30868   {
30869     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30870     d.vkGetPartitionedAccelerationStructuresBuildSizesNV( static_cast<VkDevice>( m_device ),
30871                                                           reinterpret_cast<const VkPartitionedAccelerationStructureInstancesInputNV *>( pInfo ),
30872                                                           reinterpret_cast<VkAccelerationStructureBuildSizesInfoKHR *>( pSizeInfo ) );
30873   }
30874 
30875 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30876   // wrapper function for command vkGetPartitionedAccelerationStructuresBuildSizesNV, see
30877   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPartitionedAccelerationStructuresBuildSizesNV.html
30878   template <typename Dispatch>
30879   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR
getPartitionedAccelerationStructuresBuildSizesNV(const VULKAN_HPP_NAMESPACE::PartitionedAccelerationStructureInstancesInputNV & info,Dispatch const & d) const30880     Device::getPartitionedAccelerationStructuresBuildSizesNV( const VULKAN_HPP_NAMESPACE::PartitionedAccelerationStructureInstancesInputNV & info,
30881                                                               Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
30882   {
30883     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30884 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30885     VULKAN_HPP_ASSERT( d.vkGetPartitionedAccelerationStructuresBuildSizesNV &&
30886                        "Function <vkGetPartitionedAccelerationStructuresBuildSizesNV> requires <VK_NV_partitioned_acceleration_structure>" );
30887 #  endif
30888 
30889     VULKAN_HPP_NAMESPACE::AccelerationStructureBuildSizesInfoKHR sizeInfo;
30890     d.vkGetPartitionedAccelerationStructuresBuildSizesNV( m_device,
30891                                                           reinterpret_cast<const VkPartitionedAccelerationStructureInstancesInputNV *>( &info ),
30892                                                           reinterpret_cast<VkAccelerationStructureBuildSizesInfoKHR *>( &sizeInfo ) );
30893 
30894     return sizeInfo;
30895   }
30896 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
30897 
30898   // wrapper function for command vkCmdBuildPartitionedAccelerationStructuresNV, see
30899   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBuildPartitionedAccelerationStructuresNV.html
30900   template <typename Dispatch>
30901   VULKAN_HPP_INLINE void
buildPartitionedAccelerationStructuresNV(const VULKAN_HPP_NAMESPACE::BuildPartitionedAccelerationStructureInfoNV * pBuildInfo,Dispatch const & d) const30902     CommandBuffer::buildPartitionedAccelerationStructuresNV( const VULKAN_HPP_NAMESPACE::BuildPartitionedAccelerationStructureInfoNV * pBuildInfo,
30903                                                              Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
30904   {
30905     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30906     d.vkCmdBuildPartitionedAccelerationStructuresNV( static_cast<VkCommandBuffer>( m_commandBuffer ),
30907                                                      reinterpret_cast<const VkBuildPartitionedAccelerationStructureInfoNV *>( pBuildInfo ) );
30908   }
30909 
30910 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30911   // wrapper function for command vkCmdBuildPartitionedAccelerationStructuresNV, see
30912   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdBuildPartitionedAccelerationStructuresNV.html
30913   template <typename Dispatch>
30914   VULKAN_HPP_INLINE void
buildPartitionedAccelerationStructuresNV(const VULKAN_HPP_NAMESPACE::BuildPartitionedAccelerationStructureInfoNV & buildInfo,Dispatch const & d) const30915     CommandBuffer::buildPartitionedAccelerationStructuresNV( const VULKAN_HPP_NAMESPACE::BuildPartitionedAccelerationStructureInfoNV & buildInfo,
30916                                                              Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
30917   {
30918     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30919 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30920     VULKAN_HPP_ASSERT( d.vkCmdBuildPartitionedAccelerationStructuresNV &&
30921                        "Function <vkCmdBuildPartitionedAccelerationStructuresNV> requires <VK_NV_partitioned_acceleration_structure>" );
30922 #  endif
30923 
30924     d.vkCmdBuildPartitionedAccelerationStructuresNV( m_commandBuffer, reinterpret_cast<const VkBuildPartitionedAccelerationStructureInfoNV *>( &buildInfo ) );
30925   }
30926 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
30927 
30928   //=== VK_EXT_device_generated_commands ===
30929 
30930   // wrapper function for command vkGetGeneratedCommandsMemoryRequirementsEXT, see
30931   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetGeneratedCommandsMemoryRequirementsEXT.html
30932   template <typename Dispatch>
getGeneratedCommandsMemoryRequirementsEXT(const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoEXT * pInfo,VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,Dispatch const & d) const30933   VULKAN_HPP_INLINE void Device::getGeneratedCommandsMemoryRequirementsEXT( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoEXT * pInfo,
30934                                                                             VULKAN_HPP_NAMESPACE::MemoryRequirements2 * pMemoryRequirements,
30935                                                                             Dispatch const &                            d ) const VULKAN_HPP_NOEXCEPT
30936   {
30937     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30938     d.vkGetGeneratedCommandsMemoryRequirementsEXT( static_cast<VkDevice>( m_device ),
30939                                                    reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoEXT *>( pInfo ),
30940                                                    reinterpret_cast<VkMemoryRequirements2 *>( pMemoryRequirements ) );
30941   }
30942 
30943 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
30944   // wrapper function for command vkGetGeneratedCommandsMemoryRequirementsEXT, see
30945   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetGeneratedCommandsMemoryRequirementsEXT.html
30946   template <typename Dispatch>
30947   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::MemoryRequirements2
getGeneratedCommandsMemoryRequirementsEXT(const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoEXT & info,Dispatch const & d) const30948     Device::getGeneratedCommandsMemoryRequirementsEXT( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoEXT & info,
30949                                                        Dispatch const &                                                         d ) const VULKAN_HPP_NOEXCEPT
30950   {
30951     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30952 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30953     VULKAN_HPP_ASSERT( d.vkGetGeneratedCommandsMemoryRequirementsEXT &&
30954                        "Function <vkGetGeneratedCommandsMemoryRequirementsEXT> requires <VK_EXT_device_generated_commands>" );
30955 #  endif
30956 
30957     VULKAN_HPP_NAMESPACE::MemoryRequirements2 memoryRequirements;
30958     d.vkGetGeneratedCommandsMemoryRequirementsEXT( m_device,
30959                                                    reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoEXT *>( &info ),
30960                                                    reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
30961 
30962     return memoryRequirements;
30963   }
30964 
30965   // wrapper function for command vkGetGeneratedCommandsMemoryRequirementsEXT, see
30966   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetGeneratedCommandsMemoryRequirementsEXT.html
30967   template <typename X, typename Y, typename... Z, typename Dispatch>
30968   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...>
getGeneratedCommandsMemoryRequirementsEXT(const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoEXT & info,Dispatch const & d) const30969     Device::getGeneratedCommandsMemoryRequirementsEXT( const VULKAN_HPP_NAMESPACE::GeneratedCommandsMemoryRequirementsInfoEXT & info,
30970                                                        Dispatch const &                                                         d ) const VULKAN_HPP_NOEXCEPT
30971   {
30972     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30973 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
30974     VULKAN_HPP_ASSERT( d.vkGetGeneratedCommandsMemoryRequirementsEXT &&
30975                        "Function <vkGetGeneratedCommandsMemoryRequirementsEXT> requires <VK_EXT_device_generated_commands>" );
30976 #  endif
30977 
30978     VULKAN_HPP_NAMESPACE::StructureChain<X, Y, Z...> structureChain;
30979     VULKAN_HPP_NAMESPACE::MemoryRequirements2 &      memoryRequirements = structureChain.template get<VULKAN_HPP_NAMESPACE::MemoryRequirements2>();
30980     d.vkGetGeneratedCommandsMemoryRequirementsEXT( m_device,
30981                                                    reinterpret_cast<const VkGeneratedCommandsMemoryRequirementsInfoEXT *>( &info ),
30982                                                    reinterpret_cast<VkMemoryRequirements2 *>( &memoryRequirements ) );
30983 
30984     return structureChain;
30985   }
30986 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
30987 
30988   // wrapper function for command vkCmdPreprocessGeneratedCommandsEXT, see
30989   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPreprocessGeneratedCommandsEXT.html
30990   template <typename Dispatch>
preprocessGeneratedCommandsEXT(const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT * pGeneratedCommandsInfo,VULKAN_HPP_NAMESPACE::CommandBuffer stateCommandBuffer,Dispatch const & d) const30991   VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsEXT( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT * pGeneratedCommandsInfo,
30992                                                                         VULKAN_HPP_NAMESPACE::CommandBuffer                    stateCommandBuffer,
30993                                                                         Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
30994   {
30995     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
30996     d.vkCmdPreprocessGeneratedCommandsEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
30997                                            reinterpret_cast<const VkGeneratedCommandsInfoEXT *>( pGeneratedCommandsInfo ),
30998                                            static_cast<VkCommandBuffer>( stateCommandBuffer ) );
30999   }
31000 
31001 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31002   // wrapper function for command vkCmdPreprocessGeneratedCommandsEXT, see
31003   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdPreprocessGeneratedCommandsEXT.html
31004   template <typename Dispatch>
preprocessGeneratedCommandsEXT(const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT & generatedCommandsInfo,VULKAN_HPP_NAMESPACE::CommandBuffer stateCommandBuffer,Dispatch const & d) const31005   VULKAN_HPP_INLINE void CommandBuffer::preprocessGeneratedCommandsEXT( const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT & generatedCommandsInfo,
31006                                                                         VULKAN_HPP_NAMESPACE::CommandBuffer                    stateCommandBuffer,
31007                                                                         Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
31008   {
31009     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31010 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
31011     VULKAN_HPP_ASSERT( d.vkCmdPreprocessGeneratedCommandsEXT && "Function <vkCmdPreprocessGeneratedCommandsEXT> requires <VK_EXT_device_generated_commands>" );
31012 #  endif
31013 
31014     d.vkCmdPreprocessGeneratedCommandsEXT(
31015       m_commandBuffer, reinterpret_cast<const VkGeneratedCommandsInfoEXT *>( &generatedCommandsInfo ), static_cast<VkCommandBuffer>( stateCommandBuffer ) );
31016   }
31017 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
31018 
31019   // wrapper function for command vkCmdExecuteGeneratedCommandsEXT, see
31020   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdExecuteGeneratedCommandsEXT.html
31021   template <typename Dispatch>
executeGeneratedCommandsEXT(VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed,const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT * pGeneratedCommandsInfo,Dispatch const & d) const31022   VULKAN_HPP_INLINE void CommandBuffer::executeGeneratedCommandsEXT( VULKAN_HPP_NAMESPACE::Bool32                           isPreprocessed,
31023                                                                      const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT * pGeneratedCommandsInfo,
31024                                                                      Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
31025   {
31026     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31027     d.vkCmdExecuteGeneratedCommandsEXT( static_cast<VkCommandBuffer>( m_commandBuffer ),
31028                                         static_cast<VkBool32>( isPreprocessed ),
31029                                         reinterpret_cast<const VkGeneratedCommandsInfoEXT *>( pGeneratedCommandsInfo ) );
31030   }
31031 
31032 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31033   // wrapper function for command vkCmdExecuteGeneratedCommandsEXT, see
31034   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCmdExecuteGeneratedCommandsEXT.html
31035   template <typename Dispatch>
executeGeneratedCommandsEXT(VULKAN_HPP_NAMESPACE::Bool32 isPreprocessed,const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT & generatedCommandsInfo,Dispatch const & d) const31036   VULKAN_HPP_INLINE void CommandBuffer::executeGeneratedCommandsEXT( VULKAN_HPP_NAMESPACE::Bool32                           isPreprocessed,
31037                                                                      const VULKAN_HPP_NAMESPACE::GeneratedCommandsInfoEXT & generatedCommandsInfo,
31038                                                                      Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
31039   {
31040     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31041 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
31042     VULKAN_HPP_ASSERT( d.vkCmdExecuteGeneratedCommandsEXT && "Function <vkCmdExecuteGeneratedCommandsEXT> requires <VK_EXT_device_generated_commands>" );
31043 #  endif
31044 
31045     d.vkCmdExecuteGeneratedCommandsEXT(
31046       m_commandBuffer, static_cast<VkBool32>( isPreprocessed ), reinterpret_cast<const VkGeneratedCommandsInfoEXT *>( &generatedCommandsInfo ) );
31047   }
31048 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
31049 
31050   // wrapper function for command vkCreateIndirectCommandsLayoutEXT, see
31051   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIndirectCommandsLayoutEXT.html
31052   template <typename Dispatch>
31053   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
createIndirectCommandsLayoutEXT(const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT * pIndirectCommandsLayout,Dispatch const & d) const31054     Device::createIndirectCommandsLayoutEXT( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoEXT * pCreateInfo,
31055                                              const VULKAN_HPP_NAMESPACE::AllocationCallbacks *                 pAllocator,
31056                                              VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT *                 pIndirectCommandsLayout,
31057                                              Dispatch const &                                                  d ) const VULKAN_HPP_NOEXCEPT
31058   {
31059     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31060     return static_cast<Result>( d.vkCreateIndirectCommandsLayoutEXT( static_cast<VkDevice>( m_device ),
31061                                                                      reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoEXT *>( pCreateInfo ),
31062                                                                      reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
31063                                                                      reinterpret_cast<VkIndirectCommandsLayoutEXT *>( pIndirectCommandsLayout ) ) );
31064   }
31065 
31066 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31067   // wrapper function for command vkCreateIndirectCommandsLayoutEXT, see
31068   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIndirectCommandsLayoutEXT.html
31069   template <typename Dispatch>
31070   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT>::type
createIndirectCommandsLayoutEXT(const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoEXT & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const31071                        Device::createIndirectCommandsLayoutEXT( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoEXT & createInfo,
31072                                              Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>         allocator,
31073                                              Dispatch const &                                                  d ) const
31074   {
31075     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31076 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
31077     VULKAN_HPP_ASSERT( d.vkCreateIndirectCommandsLayoutEXT && "Function <vkCreateIndirectCommandsLayoutEXT> requires <VK_EXT_device_generated_commands>" );
31078 #  endif
31079 
31080     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT indirectCommandsLayout;
31081     VULKAN_HPP_NAMESPACE::Result                    result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateIndirectCommandsLayoutEXT(
31082       m_device,
31083       reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoEXT *>( &createInfo ),
31084       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
31085       reinterpret_cast<VkIndirectCommandsLayoutEXT *>( &indirectCommandsLayout ) ) );
31086     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutEXT" );
31087 
31088     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( indirectCommandsLayout ) );
31089   }
31090 
31091 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
31092   // wrapper function for command vkCreateIndirectCommandsLayoutEXT, see
31093   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIndirectCommandsLayoutEXT.html
31094   template <typename Dispatch>
31095   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT, Dispatch>>::type
createIndirectCommandsLayoutEXTUnique(const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoEXT & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const31096                        Device::createIndirectCommandsLayoutEXTUnique( const VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutCreateInfoEXT & createInfo,
31097                                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>         allocator,
31098                                                    Dispatch const &                                                  d ) const
31099   {
31100     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31101 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
31102     VULKAN_HPP_ASSERT( d.vkCreateIndirectCommandsLayoutEXT && "Function <vkCreateIndirectCommandsLayoutEXT> requires <VK_EXT_device_generated_commands>" );
31103 #    endif
31104 
31105     VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT indirectCommandsLayout;
31106     VULKAN_HPP_NAMESPACE::Result                    result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateIndirectCommandsLayoutEXT(
31107       m_device,
31108       reinterpret_cast<const VkIndirectCommandsLayoutCreateInfoEXT *>( &createInfo ),
31109       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
31110       reinterpret_cast<VkIndirectCommandsLayoutEXT *>( &indirectCommandsLayout ) ) );
31111     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectCommandsLayoutEXTUnique" );
31112 
31113     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result,
31114                                                                 UniqueHandle<VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT, Dispatch>(
31115                                                                   indirectCommandsLayout, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
31116   }
31117 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
31118 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
31119 
31120   // wrapper function for command vkDestroyIndirectCommandsLayoutEXT, see
31121   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyIndirectCommandsLayoutEXT.html
31122   template <typename Dispatch>
destroyIndirectCommandsLayoutEXT(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT indirectCommandsLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const31123   VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutEXT( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT   indirectCommandsLayout,
31124                                                                    const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
31125                                                                    Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
31126   {
31127     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31128     d.vkDestroyIndirectCommandsLayoutEXT( static_cast<VkDevice>( m_device ),
31129                                           static_cast<VkIndirectCommandsLayoutEXT>( indirectCommandsLayout ),
31130                                           reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
31131   }
31132 
31133 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31134   // wrapper function for command vkDestroyIndirectCommandsLayoutEXT, see
31135   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyIndirectCommandsLayoutEXT.html
31136   template <typename Dispatch>
destroyIndirectCommandsLayoutEXT(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT indirectCommandsLayout,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const31137   VULKAN_HPP_INLINE void Device::destroyIndirectCommandsLayoutEXT( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT           indirectCommandsLayout,
31138                                                                    Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
31139                                                                    Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
31140   {
31141     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31142 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
31143     VULKAN_HPP_ASSERT( d.vkDestroyIndirectCommandsLayoutEXT && "Function <vkDestroyIndirectCommandsLayoutEXT> requires <VK_EXT_device_generated_commands>" );
31144 #  endif
31145 
31146     d.vkDestroyIndirectCommandsLayoutEXT(
31147       m_device,
31148       static_cast<VkIndirectCommandsLayoutEXT>( indirectCommandsLayout ),
31149       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
31150   }
31151 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
31152 
31153   // wrapper function for command vkDestroyIndirectCommandsLayoutEXT, see
31154   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyIndirectCommandsLayoutEXT.html
31155   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT indirectCommandsLayout,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const31156   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT   indirectCommandsLayout,
31157                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
31158                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
31159   {
31160     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31161     d.vkDestroyIndirectCommandsLayoutEXT( static_cast<VkDevice>( m_device ),
31162                                           static_cast<VkIndirectCommandsLayoutEXT>( indirectCommandsLayout ),
31163                                           reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
31164   }
31165 
31166 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31167   // wrapper function for command vkDestroyIndirectCommandsLayoutEXT, see
31168   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyIndirectCommandsLayoutEXT.html
31169   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT indirectCommandsLayout,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const31170   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectCommandsLayoutEXT           indirectCommandsLayout,
31171                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
31172                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
31173   {
31174     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31175 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
31176     VULKAN_HPP_ASSERT( d.vkDestroyIndirectCommandsLayoutEXT && "Function <vkDestroyIndirectCommandsLayoutEXT> requires <VK_EXT_device_generated_commands>" );
31177 #  endif
31178 
31179     d.vkDestroyIndirectCommandsLayoutEXT(
31180       m_device,
31181       static_cast<VkIndirectCommandsLayoutEXT>( indirectCommandsLayout ),
31182       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
31183   }
31184 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
31185 
31186   // wrapper function for command vkCreateIndirectExecutionSetEXT, see
31187   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIndirectExecutionSetEXT.html
31188   template <typename Dispatch>
31189   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
createIndirectExecutionSetEXT(const VULKAN_HPP_NAMESPACE::IndirectExecutionSetCreateInfoEXT * pCreateInfo,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT * pIndirectExecutionSet,Dispatch const & d) const31190     Device::createIndirectExecutionSetEXT( const VULKAN_HPP_NAMESPACE::IndirectExecutionSetCreateInfoEXT * pCreateInfo,
31191                                            const VULKAN_HPP_NAMESPACE::AllocationCallbacks *               pAllocator,
31192                                            VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT *                 pIndirectExecutionSet,
31193                                            Dispatch const &                                                d ) const VULKAN_HPP_NOEXCEPT
31194   {
31195     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31196     return static_cast<Result>( d.vkCreateIndirectExecutionSetEXT( static_cast<VkDevice>( m_device ),
31197                                                                    reinterpret_cast<const VkIndirectExecutionSetCreateInfoEXT *>( pCreateInfo ),
31198                                                                    reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ),
31199                                                                    reinterpret_cast<VkIndirectExecutionSetEXT *>( pIndirectExecutionSet ) ) );
31200   }
31201 
31202 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31203   // wrapper function for command vkCreateIndirectExecutionSetEXT, see
31204   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIndirectExecutionSetEXT.html
31205   template <typename Dispatch>
31206   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT>::type
createIndirectExecutionSetEXT(const VULKAN_HPP_NAMESPACE::IndirectExecutionSetCreateInfoEXT & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const31207                        Device::createIndirectExecutionSetEXT( const VULKAN_HPP_NAMESPACE::IndirectExecutionSetCreateInfoEXT & createInfo,
31208                                            Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>       allocator,
31209                                            Dispatch const &                                                d ) const
31210   {
31211     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31212 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
31213     VULKAN_HPP_ASSERT( d.vkCreateIndirectExecutionSetEXT && "Function <vkCreateIndirectExecutionSetEXT> requires <VK_EXT_device_generated_commands>" );
31214 #  endif
31215 
31216     VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT indirectExecutionSet;
31217     VULKAN_HPP_NAMESPACE::Result                  result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateIndirectExecutionSetEXT(
31218       m_device,
31219       reinterpret_cast<const VkIndirectExecutionSetCreateInfoEXT *>( &createInfo ),
31220       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
31221       reinterpret_cast<VkIndirectExecutionSetEXT *>( &indirectExecutionSet ) ) );
31222     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectExecutionSetEXT" );
31223 
31224     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( indirectExecutionSet ) );
31225   }
31226 
31227 #  ifndef VULKAN_HPP_NO_SMART_HANDLE
31228   // wrapper function for command vkCreateIndirectExecutionSetEXT, see
31229   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkCreateIndirectExecutionSetEXT.html
31230   template <typename Dispatch>
31231   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<UniqueHandle<VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT, Dispatch>>::type
createIndirectExecutionSetEXTUnique(const VULKAN_HPP_NAMESPACE::IndirectExecutionSetCreateInfoEXT & createInfo,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const31232                        Device::createIndirectExecutionSetEXTUnique( const VULKAN_HPP_NAMESPACE::IndirectExecutionSetCreateInfoEXT & createInfo,
31233                                                  Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks>       allocator,
31234                                                  Dispatch const &                                                d ) const
31235   {
31236     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31237 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
31238     VULKAN_HPP_ASSERT( d.vkCreateIndirectExecutionSetEXT && "Function <vkCreateIndirectExecutionSetEXT> requires <VK_EXT_device_generated_commands>" );
31239 #    endif
31240 
31241     VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT indirectExecutionSet;
31242     VULKAN_HPP_NAMESPACE::Result                  result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkCreateIndirectExecutionSetEXT(
31243       m_device,
31244       reinterpret_cast<const VkIndirectExecutionSetCreateInfoEXT *>( &createInfo ),
31245       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ),
31246       reinterpret_cast<VkIndirectExecutionSetEXT *>( &indirectExecutionSet ) ) );
31247     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::createIndirectExecutionSetEXTUnique" );
31248 
31249     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result,
31250                                                                 UniqueHandle<VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT, Dispatch>(
31251                                                                   indirectExecutionSet, detail::ObjectDestroy<Device, Dispatch>( *this, allocator, d ) ) );
31252   }
31253 #  endif /* VULKAN_HPP_NO_SMART_HANDLE */
31254 #endif   /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
31255 
31256   // wrapper function for command vkDestroyIndirectExecutionSetEXT, see
31257   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyIndirectExecutionSetEXT.html
31258   template <typename Dispatch>
destroyIndirectExecutionSetEXT(VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT indirectExecutionSet,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const31259   VULKAN_HPP_INLINE void Device::destroyIndirectExecutionSetEXT( VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT     indirectExecutionSet,
31260                                                                  const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
31261                                                                  Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
31262   {
31263     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31264     d.vkDestroyIndirectExecutionSetEXT( static_cast<VkDevice>( m_device ),
31265                                         static_cast<VkIndirectExecutionSetEXT>( indirectExecutionSet ),
31266                                         reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
31267   }
31268 
31269 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31270   // wrapper function for command vkDestroyIndirectExecutionSetEXT, see
31271   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyIndirectExecutionSetEXT.html
31272   template <typename Dispatch>
destroyIndirectExecutionSetEXT(VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT indirectExecutionSet,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const31273   VULKAN_HPP_INLINE void Device::destroyIndirectExecutionSetEXT( VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT             indirectExecutionSet,
31274                                                                  Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
31275                                                                  Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
31276   {
31277     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31278 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
31279     VULKAN_HPP_ASSERT( d.vkDestroyIndirectExecutionSetEXT && "Function <vkDestroyIndirectExecutionSetEXT> requires <VK_EXT_device_generated_commands>" );
31280 #  endif
31281 
31282     d.vkDestroyIndirectExecutionSetEXT(
31283       m_device,
31284       static_cast<VkIndirectExecutionSetEXT>( indirectExecutionSet ),
31285       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
31286   }
31287 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
31288 
31289   // wrapper function for command vkDestroyIndirectExecutionSetEXT, see
31290   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyIndirectExecutionSetEXT.html
31291   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT indirectExecutionSet,const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,Dispatch const & d) const31292   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT     indirectExecutionSet,
31293                                           const VULKAN_HPP_NAMESPACE::AllocationCallbacks * pAllocator,
31294                                           Dispatch const &                                  d ) const VULKAN_HPP_NOEXCEPT
31295   {
31296     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31297     d.vkDestroyIndirectExecutionSetEXT( static_cast<VkDevice>( m_device ),
31298                                         static_cast<VkIndirectExecutionSetEXT>( indirectExecutionSet ),
31299                                         reinterpret_cast<const VkAllocationCallbacks *>( pAllocator ) );
31300   }
31301 
31302 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31303   // wrapper function for command vkDestroyIndirectExecutionSetEXT, see
31304   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkDestroyIndirectExecutionSetEXT.html
31305   template <typename Dispatch>
destroy(VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT indirectExecutionSet,Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,Dispatch const & d) const31306   VULKAN_HPP_INLINE void Device::destroy( VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT             indirectExecutionSet,
31307                                           Optional<const VULKAN_HPP_NAMESPACE::AllocationCallbacks> allocator,
31308                                           Dispatch const &                                          d ) const VULKAN_HPP_NOEXCEPT
31309   {
31310     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31311 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
31312     VULKAN_HPP_ASSERT( d.vkDestroyIndirectExecutionSetEXT && "Function <vkDestroyIndirectExecutionSetEXT> requires <VK_EXT_device_generated_commands>" );
31313 #  endif
31314 
31315     d.vkDestroyIndirectExecutionSetEXT(
31316       m_device,
31317       static_cast<VkIndirectExecutionSetEXT>( indirectExecutionSet ),
31318       reinterpret_cast<const VkAllocationCallbacks *>( static_cast<const VULKAN_HPP_NAMESPACE::AllocationCallbacks *>( allocator ) ) );
31319   }
31320 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
31321 
31322   // wrapper function for command vkUpdateIndirectExecutionSetPipelineEXT, see
31323   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkUpdateIndirectExecutionSetPipelineEXT.html
31324   template <typename Dispatch>
updateIndirectExecutionSetPipelineEXT(VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT indirectExecutionSet,uint32_t executionSetWriteCount,const VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetPipelineEXT * pExecutionSetWrites,Dispatch const & d) const31325   VULKAN_HPP_INLINE void Device::updateIndirectExecutionSetPipelineEXT( VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT indirectExecutionSet,
31326                                                                         uint32_t                                      executionSetWriteCount,
31327                                                                         const VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetPipelineEXT * pExecutionSetWrites,
31328                                                                         Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
31329   {
31330     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31331     d.vkUpdateIndirectExecutionSetPipelineEXT( static_cast<VkDevice>( m_device ),
31332                                                static_cast<VkIndirectExecutionSetEXT>( indirectExecutionSet ),
31333                                                executionSetWriteCount,
31334                                                reinterpret_cast<const VkWriteIndirectExecutionSetPipelineEXT *>( pExecutionSetWrites ) );
31335   }
31336 
31337 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31338   // wrapper function for command vkUpdateIndirectExecutionSetPipelineEXT, see
31339   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkUpdateIndirectExecutionSetPipelineEXT.html
31340   template <typename Dispatch>
updateIndirectExecutionSetPipelineEXT(VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT indirectExecutionSet,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetPipelineEXT> const & executionSetWrites,Dispatch const & d) const31341   VULKAN_HPP_INLINE void Device::updateIndirectExecutionSetPipelineEXT(
31342     VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT                                                              indirectExecutionSet,
31343     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetPipelineEXT> const & executionSetWrites,
31344     Dispatch const &                                                                                           d ) const VULKAN_HPP_NOEXCEPT
31345   {
31346     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31347 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
31348     VULKAN_HPP_ASSERT( d.vkUpdateIndirectExecutionSetPipelineEXT &&
31349                        "Function <vkUpdateIndirectExecutionSetPipelineEXT> requires <VK_EXT_device_generated_commands>" );
31350 #  endif
31351 
31352     d.vkUpdateIndirectExecutionSetPipelineEXT( m_device,
31353                                                static_cast<VkIndirectExecutionSetEXT>( indirectExecutionSet ),
31354                                                executionSetWrites.size(),
31355                                                reinterpret_cast<const VkWriteIndirectExecutionSetPipelineEXT *>( executionSetWrites.data() ) );
31356   }
31357 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
31358 
31359   // wrapper function for command vkUpdateIndirectExecutionSetShaderEXT, see
31360   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkUpdateIndirectExecutionSetShaderEXT.html
31361   template <typename Dispatch>
updateIndirectExecutionSetShaderEXT(VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT indirectExecutionSet,uint32_t executionSetWriteCount,const VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetShaderEXT * pExecutionSetWrites,Dispatch const & d) const31362   VULKAN_HPP_INLINE void Device::updateIndirectExecutionSetShaderEXT( VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT                    indirectExecutionSet,
31363                                                                       uint32_t                                                         executionSetWriteCount,
31364                                                                       const VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetShaderEXT * pExecutionSetWrites,
31365                                                                       Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
31366   {
31367     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31368     d.vkUpdateIndirectExecutionSetShaderEXT( static_cast<VkDevice>( m_device ),
31369                                              static_cast<VkIndirectExecutionSetEXT>( indirectExecutionSet ),
31370                                              executionSetWriteCount,
31371                                              reinterpret_cast<const VkWriteIndirectExecutionSetShaderEXT *>( pExecutionSetWrites ) );
31372   }
31373 
31374 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31375   // wrapper function for command vkUpdateIndirectExecutionSetShaderEXT, see
31376   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkUpdateIndirectExecutionSetShaderEXT.html
31377   template <typename Dispatch>
updateIndirectExecutionSetShaderEXT(VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT indirectExecutionSet,VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetShaderEXT> const & executionSetWrites,Dispatch const & d) const31378   VULKAN_HPP_INLINE void Device::updateIndirectExecutionSetShaderEXT(
31379     VULKAN_HPP_NAMESPACE::IndirectExecutionSetEXT                                                            indirectExecutionSet,
31380     VULKAN_HPP_NAMESPACE::ArrayProxy<const VULKAN_HPP_NAMESPACE::WriteIndirectExecutionSetShaderEXT> const & executionSetWrites,
31381     Dispatch const &                                                                                         d ) const VULKAN_HPP_NOEXCEPT
31382   {
31383     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31384 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
31385     VULKAN_HPP_ASSERT( d.vkUpdateIndirectExecutionSetShaderEXT &&
31386                        "Function <vkUpdateIndirectExecutionSetShaderEXT> requires <VK_EXT_device_generated_commands>" );
31387 #  endif
31388 
31389     d.vkUpdateIndirectExecutionSetShaderEXT( m_device,
31390                                              static_cast<VkIndirectExecutionSetEXT>( indirectExecutionSet ),
31391                                              executionSetWrites.size(),
31392                                              reinterpret_cast<const VkWriteIndirectExecutionSetShaderEXT *>( executionSetWrites.data() ) );
31393   }
31394 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
31395 
31396   //=== VK_NV_cooperative_matrix2 ===
31397 
31398   // wrapper function for command vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV, see
31399   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV.html
31400   template <typename Dispatch>
31401   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getCooperativeMatrixFlexibleDimensionsPropertiesNV(uint32_t * pPropertyCount,VULKAN_HPP_NAMESPACE::CooperativeMatrixFlexibleDimensionsPropertiesNV * pProperties,Dispatch const & d) const31402     PhysicalDevice::getCooperativeMatrixFlexibleDimensionsPropertiesNV( uint32_t *                                                              pPropertyCount,
31403                                                                         VULKAN_HPP_NAMESPACE::CooperativeMatrixFlexibleDimensionsPropertiesNV * pProperties,
31404                                                                         Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
31405   {
31406     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31407     return static_cast<Result>( d.vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(
31408       static_cast<VkPhysicalDevice>( m_physicalDevice ),
31409       pPropertyCount,
31410       reinterpret_cast<VkCooperativeMatrixFlexibleDimensionsPropertiesNV *>( pProperties ) ) );
31411   }
31412 
31413 #ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31414   // wrapper function for command vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV, see
31415   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV.html
31416   template <typename CooperativeMatrixFlexibleDimensionsPropertiesNVAllocator,
31417             typename Dispatch,
31418             typename std::enable_if<std::is_same<typename CooperativeMatrixFlexibleDimensionsPropertiesNVAllocator::value_type,
31419                                                  VULKAN_HPP_NAMESPACE::CooperativeMatrixFlexibleDimensionsPropertiesNV>::value,
31420                                     int>::type>
31421   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<
31422     std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixFlexibleDimensionsPropertiesNV, CooperativeMatrixFlexibleDimensionsPropertiesNVAllocator>>::type
getCooperativeMatrixFlexibleDimensionsPropertiesNV(Dispatch const & d) const31423     PhysicalDevice::getCooperativeMatrixFlexibleDimensionsPropertiesNV( Dispatch const & d ) const
31424   {
31425     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31426 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
31427     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV &&
31428                        "Function <vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV> requires <VK_NV_cooperative_matrix2>" );
31429 #  endif
31430 
31431     std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixFlexibleDimensionsPropertiesNV, CooperativeMatrixFlexibleDimensionsPropertiesNVAllocator> properties;
31432     uint32_t                                                                                                                                     propertyCount;
31433     VULKAN_HPP_NAMESPACE::Result                                                                                                                 result;
31434     do
31435     {
31436       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
31437         d.vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) );
31438       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
31439       {
31440         properties.resize( propertyCount );
31441         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(
31442           m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixFlexibleDimensionsPropertiesNV *>( properties.data() ) ) );
31443       }
31444     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
31445     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixFlexibleDimensionsPropertiesNV" );
31446     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
31447     if ( propertyCount < properties.size() )
31448     {
31449       properties.resize( propertyCount );
31450     }
31451     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
31452   }
31453 
31454   // wrapper function for command vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV, see
31455   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV.html
31456   template <typename CooperativeMatrixFlexibleDimensionsPropertiesNVAllocator,
31457             typename Dispatch,
31458             typename std::enable_if<std::is_same<typename CooperativeMatrixFlexibleDimensionsPropertiesNVAllocator::value_type,
31459                                                  VULKAN_HPP_NAMESPACE::CooperativeMatrixFlexibleDimensionsPropertiesNV>::value,
31460                                     int>::type>
31461   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<
31462     std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixFlexibleDimensionsPropertiesNV, CooperativeMatrixFlexibleDimensionsPropertiesNVAllocator>>::type
getCooperativeMatrixFlexibleDimensionsPropertiesNV(CooperativeMatrixFlexibleDimensionsPropertiesNVAllocator & cooperativeMatrixFlexibleDimensionsPropertiesNVAllocator,Dispatch const & d) const31463     PhysicalDevice::getCooperativeMatrixFlexibleDimensionsPropertiesNV(
31464       CooperativeMatrixFlexibleDimensionsPropertiesNVAllocator & cooperativeMatrixFlexibleDimensionsPropertiesNVAllocator, Dispatch const & d ) const
31465   {
31466     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31467 #  if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
31468     VULKAN_HPP_ASSERT( d.vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV &&
31469                        "Function <vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV> requires <VK_NV_cooperative_matrix2>" );
31470 #  endif
31471 
31472     std::vector<VULKAN_HPP_NAMESPACE::CooperativeMatrixFlexibleDimensionsPropertiesNV, CooperativeMatrixFlexibleDimensionsPropertiesNVAllocator> properties(
31473       cooperativeMatrixFlexibleDimensionsPropertiesNVAllocator );
31474     uint32_t                     propertyCount;
31475     VULKAN_HPP_NAMESPACE::Result result;
31476     do
31477     {
31478       result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
31479         d.vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV( m_physicalDevice, &propertyCount, nullptr ) );
31480       if ( ( result == VULKAN_HPP_NAMESPACE::Result::eSuccess ) && propertyCount )
31481       {
31482         properties.resize( propertyCount );
31483         result = static_cast<VULKAN_HPP_NAMESPACE::Result>( d.vkGetPhysicalDeviceCooperativeMatrixFlexibleDimensionsPropertiesNV(
31484           m_physicalDevice, &propertyCount, reinterpret_cast<VkCooperativeMatrixFlexibleDimensionsPropertiesNV *>( properties.data() ) ) );
31485       }
31486     } while ( result == VULKAN_HPP_NAMESPACE::Result::eIncomplete );
31487     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::PhysicalDevice::getCooperativeMatrixFlexibleDimensionsPropertiesNV" );
31488     VULKAN_HPP_ASSERT( propertyCount <= properties.size() );
31489     if ( propertyCount < properties.size() )
31490     {
31491       properties.resize( propertyCount );
31492     }
31493     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( properties ) );
31494   }
31495 #endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
31496 
31497 #if defined( VK_USE_PLATFORM_METAL_EXT )
31498   //=== VK_EXT_external_memory_metal ===
31499 
31500   // wrapper function for command vkGetMemoryMetalHandleEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryMetalHandleEXT.html
31501   template <typename Dispatch>
getMemoryMetalHandleEXT(const VULKAN_HPP_NAMESPACE::MemoryGetMetalHandleInfoEXT * pGetMetalHandleInfo,void ** pHandle,Dispatch const & d) const31502   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result Device::getMemoryMetalHandleEXT( const VULKAN_HPP_NAMESPACE::MemoryGetMetalHandleInfoEXT * pGetMetalHandleInfo,
31503                                                                                  void **                                                   pHandle,
31504                                                                                  Dispatch const & d ) const VULKAN_HPP_NOEXCEPT
31505   {
31506     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31507     return static_cast<Result>( d.vkGetMemoryMetalHandleEXT(
31508       static_cast<VkDevice>( m_device ), reinterpret_cast<const VkMemoryGetMetalHandleInfoEXT *>( pGetMetalHandleInfo ), pHandle ) );
31509   }
31510 
31511 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31512   // wrapper function for command vkGetMemoryMetalHandleEXT, see https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryMetalHandleEXT.html
31513   template <typename Dispatch>
31514   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<void *>::type
getMemoryMetalHandleEXT(const VULKAN_HPP_NAMESPACE::MemoryGetMetalHandleInfoEXT & getMetalHandleInfo,Dispatch const & d) const31515                        Device::getMemoryMetalHandleEXT( const VULKAN_HPP_NAMESPACE::MemoryGetMetalHandleInfoEXT & getMetalHandleInfo, Dispatch const & d ) const
31516   {
31517     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31518 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
31519     VULKAN_HPP_ASSERT( d.vkGetMemoryMetalHandleEXT && "Function <vkGetMemoryMetalHandleEXT> requires <VK_EXT_external_memory_metal>" );
31520 #    endif
31521 
31522     void *                       handle;
31523     VULKAN_HPP_NAMESPACE::Result result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
31524       d.vkGetMemoryMetalHandleEXT( m_device, reinterpret_cast<const VkMemoryGetMetalHandleInfoEXT *>( &getMetalHandleInfo ), &handle ) );
31525     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryMetalHandleEXT" );
31526 
31527     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( handle ) );
31528   }
31529 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
31530 
31531   // wrapper function for command vkGetMemoryMetalHandlePropertiesEXT, see
31532   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryMetalHandlePropertiesEXT.html
31533   template <typename Dispatch>
31534   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE Result
getMemoryMetalHandlePropertiesEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,const void * pHandle,VULKAN_HPP_NAMESPACE::MemoryMetalHandlePropertiesEXT * pMemoryMetalHandleProperties,Dispatch const & d) const31535     Device::getMemoryMetalHandlePropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,
31536                                                const void *                                           pHandle,
31537                                                VULKAN_HPP_NAMESPACE::MemoryMetalHandlePropertiesEXT * pMemoryMetalHandleProperties,
31538                                                Dispatch const &                                       d ) const VULKAN_HPP_NOEXCEPT
31539   {
31540     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31541     return static_cast<Result>( d.vkGetMemoryMetalHandlePropertiesEXT( static_cast<VkDevice>( m_device ),
31542                                                                        static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
31543                                                                        pHandle,
31544                                                                        reinterpret_cast<VkMemoryMetalHandlePropertiesEXT *>( pMemoryMetalHandleProperties ) ) );
31545   }
31546 
31547 #  ifndef VULKAN_HPP_DISABLE_ENHANCED_MODE
31548   // wrapper function for command vkGetMemoryMetalHandlePropertiesEXT, see
31549   // https://registry.khronos.org/vulkan/specs/latest/man/html/vkGetMemoryMetalHandlePropertiesEXT.html
31550   template <typename HandleType, typename Dispatch>
31551   VULKAN_HPP_NODISCARD VULKAN_HPP_INLINE typename ResultValueType<VULKAN_HPP_NAMESPACE::MemoryMetalHandlePropertiesEXT>::type
getMemoryMetalHandlePropertiesEXT(VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,HandleType const & handle,Dispatch const & d) const31552                        Device::getMemoryMetalHandlePropertiesEXT( VULKAN_HPP_NAMESPACE::ExternalMemoryHandleTypeFlagBits handleType,
31553                                                HandleType const &                                     handle,
31554                                                Dispatch const &                                       d ) const
31555   {
31556     VULKAN_HPP_ASSERT( d.getVkHeaderVersion() == VK_HEADER_VERSION );
31557 #    if ( VULKAN_HPP_DISPATCH_LOADER_DYNAMIC == 1 )
31558     VULKAN_HPP_ASSERT( d.vkGetMemoryMetalHandlePropertiesEXT && "Function <vkGetMemoryMetalHandlePropertiesEXT> requires <VK_EXT_external_memory_metal>" );
31559 #    endif
31560 
31561     VULKAN_HPP_NAMESPACE::MemoryMetalHandlePropertiesEXT memoryMetalHandleProperties;
31562     VULKAN_HPP_NAMESPACE::Result                         result = static_cast<VULKAN_HPP_NAMESPACE::Result>(
31563       d.vkGetMemoryMetalHandlePropertiesEXT( m_device,
31564                                              static_cast<VkExternalMemoryHandleTypeFlagBits>( handleType ),
31565                                              reinterpret_cast<const void *>( &handle ),
31566                                              reinterpret_cast<VkMemoryMetalHandlePropertiesEXT *>( &memoryMetalHandleProperties ) ) );
31567     VULKAN_HPP_NAMESPACE::detail::resultCheck( result, VULKAN_HPP_NAMESPACE_STRING "::Device::getMemoryMetalHandlePropertiesEXT" );
31568 
31569     return VULKAN_HPP_NAMESPACE::detail::createResultValueType( result, std::move( memoryMetalHandleProperties ) );
31570   }
31571 #  endif /* VULKAN_HPP_DISABLE_ENHANCED_MODE */
31572 #endif   /*VK_USE_PLATFORM_METAL_EXT*/
31573 
31574 }  // namespace VULKAN_HPP_NAMESPACE
31575 #endif
31576